Код 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 працюють на
верхньому рівні.
Приклад
Section titled “Приклад”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 };Вбудована бібліотека
Section titled “Вбудована бібліотека”Доступна як глобальна змінна і через require(), нічого не оголошуючи в
packages:
| Глобальна змінна | Пакет |
|---|---|
_, lodash | lodash |
moment | moment |
uuid | uuid |
nanoid | nanoid |
CryptoJS | crypto-js |
Ajv | ajv |
ajvFormats | ajv-formats |
chai, expect, assert | chai |
cheerio | cheerio |
xml2js | xml2js |
const signature = CryptoJS.HmacSHA256(input.corps, vars.secret).toString();return { signature };require() для недоступного модуля породжує явну помилку.
Очікування та виклики
Section titled “Очікування та виклики”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;Виклик проходить через брандмауер, як і будь-який інший трафік, і переривається під час зупинки виконання або перевищення часу очікування.
Зовнішні пакети
Section titled “Зовнішні пакети”Оголосіть їх у packages (npm); вони пакуються один раз, а потім
під’єднуються офлайн.
Сумісність із Postman і Bruno
Section titled “Сумісність із Postman і Bruno”Те саме середовище надає шари pm.* і bru.* — див.
Код JavaScript.