Перейти до вмісту

Код TypeScript

TypeScript — мова за замовчуванням для блоку Code. Анотації типів прибираються під час компіляції, після чого код виконується в рушії QuickJS.

СимволРоль
inputЗначення, отримане на вхідному порту
varsЗнімок змінних запуску лише для читання
__varsПодання для читання й запису: get, set, has, delete, clear, keys, toObject
console.log / .info / .warn / .errorПише до журналу виконання
fetch(...)Виклик HTTP, спрямований через брандмауер
returnПовернене значення вирушає на порт result

Тіло огортається в асинхронну функцію: return і await працюють на верхньому рівні.

interface Commande {
id: number;
montant: number;
statut: 'payee' | 'attente' | 'annulee';
}
const commandes = input as Commande[];
const payees = commandes.filter((c) => c.statut === 'payee');
const total = payees.reduce((s, c) => s + c.montant, 0);
console.log(`${payees.length} commandes payées, total ${total}`);
__vars.set('totalPaye', total);
return { nombre: payees.length, total };

Доступна як глобальна змінна і через require(), нічого не оголошуючи в packages:

Глобальна зміннаПакет
_, lodashlodash
momentmoment
uuiduuid
nanoidnanoid
CryptoJScrypto-js
Ajvajv
ajvFormatsajv-formats
chai, expect, assertchai
cheeriocheerio
xml2jsxml2js
const signature = CryptoJS.HmacSHA256(input.corps, vars.secret).toString();
return { signature };

require() для недоступного модуля породжує явну помилку.

const reponse = await fetch(`${vars.baseUrl}/sante`);
const corps = await reponse.json();
if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);
return corps;

Виклик проходить через брандмауер, як і будь-який інший трафік, і переривається під час зупинки виконання або перевищення часу очікування.

Оголосіть їх у packages (npm); вони пакуються один раз, а потім під’єднуються офлайн.

Сумісність із Postman і Bruno

Section titled “Сумісність із Postman і Bruno”

Те саме середовище надає шари pm.* і bru.* — див. Код JavaScript.