Code TypeScript
TypeScript est le langage par défaut de la boîte Code. Les annotations de type sont retirées à la compilation, puis le code s’exécute dans le moteur QuickJS.
| Symbole | Rôle |
|---|---|
input | La valeur reçue sur le port d’entrée |
vars | Un instantané en lecture seule des variables de run |
__vars | Une vue en lecture / écriture : get, set, has, delete, clear, keys, toObject |
console.log / .info / .warn / .error | Écrit dans le journal de l’exécution |
fetch(...) | Appel HTTP, routé par le pare-feu |
return | La valeur renvoyée part sur le port result |
Le corps est enveloppé dans une fonction asynchrone : return et await
fonctionnent au niveau supérieur.
Exemple
Section titled “Exemple”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 };Bibliothèque intégrée
Section titled “Bibliothèque intégrée”Disponible en variable globale et via require(), sans rien déclarer dans
packages :
| Global | Paquet |
|---|---|
_, 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 };Un require() sur un module non disponible lève une erreur explicite.
Attendre et appeler
Section titled “Attendre et appeler”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;L’appel passe par le pare-feu comme n’importe quel autre trafic, et il est interrompu à l’arrêt de l’exécution ou au dépassement du délai.
Paquets externes
Section titled “Paquets externes”Déclarez-les dans packages (npm) ; ils sont empaquetés une fois puis montés
hors ligne.
Compatibilité Postman et Bruno
Section titled “Compatibilité Postman et Bruno”Le même environnement expose les couches pm.* et bru.* — voir
Code JavaScript.