Kód TypeScript
TypeScript je výchozí jazyk bloku Kód. Typové anotace se při kompilaci odstraní a kód se pak spustí v enginu QuickJS.
| Symbol | Role |
|---|---|
input | Hodnota přijatá na vstupním portu |
vars | Snímek proměnných běhu jen pro čtení |
__vars | Pohled pro čtení i zápis: get, set, has, delete, clear, keys, toObject |
console.log / .info / .warn / .error | Zapisuje do logu běhu |
fetch(...) | Volání HTTP směrované firewallem |
return | Návratová hodnota odchází na port result |
Tělo je obalené v asynchronní funkci: return a await fungují na nejvyšší
úrovni.
Příklad
Section titled “Příklad”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 };Vestavěná knihovna
Section titled “Vestavěná knihovna”K dispozici jako globální proměnná i přes require(), bez jakékoli
deklarace v packages:
| Globální proměnná | Balíček |
|---|---|
_, 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 };Volání require() na modul, který k dispozici není, vyvolá výslovnou chybu.
Čekání a volání
Section titled “Čekání a volání”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;Volání prochází firewallem stejně jako jakýkoli jiný provoz a přeruší se při zastavení běhu nebo při překročení časového limitu.
Externí balíčky
Section titled “Externí balíčky”Deklarujte je v packages (npm); zabalí se jednou a poté se připojují offline.
Kompatibilita s Postmanem a Bruno
Section titled “Kompatibilita s Postmanem a Bruno”Totéž prostředí nabízí vrstvy pm.* a bru.* — viz
Kód JavaScript.