TypeScript-code
TypeScript is de standaardtaal van het vakje Code. De typeannotaties worden bij het compileren verwijderd, en daarna draait de code in de QuickJS-engine.
De API
Section titled “De API”| Symbool | Rol |
|---|---|
input | De waarde die op de invoerpoort is ontvangen |
vars | Een momentopname alleen-lezen van de runvariabelen |
__vars | Een weergave met lezen en schrijven: get, set, has, delete, clear, keys, toObject |
console.log / .info / .warn / .error | Schrijft naar het uitvoeringslogboek |
fetch(...) | HTTP-aanroep, gerouteerd door de firewall |
return | De teruggegeven waarde gaat naar de poort result |
De body wordt in een asynchrone functie gewikkeld: return en await werken op
het bovenste niveau.
Voorbeeld
Section titled “Voorbeeld”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 };Ingebouwde bibliotheek
Section titled “Ingebouwde bibliotheek”Beschikbaar als globale variabele en via require(), zonder dat u iets in
packages hoeft te declareren:
| Globaal | Pakket |
|---|---|
_, 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 };Een require() op een module die niet beschikbaar is, werpt een expliciete fout.
Wachten en aanroepen
Section titled “Wachten en aanroepen”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;De aanroep gaat door de firewall net als al het andere verkeer, en wordt afgebroken wanneer de uitvoering stopt of de timeout wordt overschreden.
Externe pakketten
Section titled “Externe pakketten”Declareer ze in packages (npm); ze worden één keer gebundeld en daarna offline
aangekoppeld.
Compatibiliteit met Postman en Bruno
Section titled “Compatibiliteit met Postman en Bruno”Dezelfde omgeving biedt de lagen pm.* en bru.* — zie
JavaScript-code.