Zum Inhalt springen

TypeScript-Code

TypeScript ist die Standard-Sprache des Bausteins Code. Die Typannotationen werden bei der Kompilierung entfernt, anschließend läuft der Code in der QuickJS-Engine.

SymbolRolle
inputDer am Eingangsport empfangene Wert
varsEin schreibgeschützter Schnappschuss der Run-Variablen
__varsEine Lese-/Schreib-Ansicht: get, set, has, delete, clear, keys, toObject
console.log / .info / .warn / .errorSchreibt ins Ausführungsprotokoll
fetch(...)HTTP-Aufruf, geleitet über die Firewall
returnDer zurückgegebene Wert geht auf den Port result

Der Rumpf wird in eine asynchrone Funktion eingebettet: return und await funktionieren auf oberster Ebene.

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 };

Verfügbar als globale Variable und über require(), ohne etwas in packages zu deklarieren:

GlobalPaket
_, 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 };

Ein require() für ein nicht verfügbares Modul löst einen expliziten Fehler aus.

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

Der Aufruf läuft wie jeder andere Verkehr über die Firewall und wird beim Abbruch der Ausführung oder bei Überschreitung des Zeitlimits unterbrochen.

Deklarieren Sie sie in packages (npm); sie werden einmalig gebündelt und anschließend offline eingebunden.

Dieselbe Umgebung stellt die Schichten pm.* und bru.* bereit – siehe JavaScript-Code.