Kod TypeScript
TypeScript jest domyślnym językiem bloku Kod. Adnotacje typów są usuwane na etapie kompilacji, a następnie kod wykonuje się w silniku QuickJS.
| Symbol | Rola |
|---|---|
input | Wartość odebrana na porcie wejściowym |
vars | Migawka zmiennych uruchomienia tylko do odczytu |
__vars | Widok do odczytu i zapisu: get, set, has, delete, clear, keys, toObject |
console.log / .info / .warn / .error | Zapisuje w dzienniku wykonania |
fetch(...) | Wywołanie HTTP, kierowane przez zaporę |
return | Zwrócona wartość trafia na port result |
Treść jest opakowana w funkcję asynchroniczną: return i await działają na
najwyższym poziomie.
Przykład
Section titled “Przykład”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 };Wbudowana biblioteka
Section titled “Wbudowana biblioteka”Dostępna jako zmienna globalna oraz przez require(), bez deklarowania
czegokolwiek w packages:
| Global | Pakiet |
|---|---|
_, 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() na module, który nie jest dostępny, zgłasza jednoznaczny błąd.
Oczekiwanie i wywołania
Section titled “Oczekiwanie i wywołania”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;Wywołanie przechodzi przez zaporę tak jak każdy inny ruch i zostaje przerwane przy zatrzymaniu wykonania albo przy przekroczeniu limitu czasu.
Pakiety zewnętrzne
Section titled “Pakiety zewnętrzne”Deklaruje się je w packages (npm); są pakowane raz, a potem montowane
offline.
Zgodność z Postmanem i Bruno
Section titled “Zgodność z Postmanem i Bruno”To samo środowisko udostępnia warstwy pm.* i bru.* — zob.
Kod JavaScript.