Cod TypeScript
TypeScript este limbajul implicit al cutiei Code. Adnotările de tip sunt eliminate la compilare, apoi codul se execută în motorul QuickJS.
API-ul
Section titled “API-ul”| Simbol | Rol |
|---|---|
input | Valoarea primită pe portul de intrare |
vars | Un instantaneu numai pentru citire al variabilelor de rulare |
__vars | O vizualizare de citire / scriere: get, set, has, delete, clear, keys, toObject |
console.log / .info / .warn / .error | Scrie în jurnalul execuției |
fetch(...) | Apel HTTP, dirijat de firewall |
return | Valoarea returnată pleacă pe portul result |
Corpul este învelit într-o funcție asincronă: return și await funcționează
la nivelul superior.
Exemplu
Section titled “Exemplu”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 };Bibliotecă integrată
Section titled “Bibliotecă integrată”Disponibilă ca variabilă globală și prin require(), fără să declarați nimic
în packages:
| Global | Pachet |
|---|---|
_, 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() pe un modul indisponibil ridică o eroare explicită.
Așteptare și apel
Section titled “Așteptare și apel”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;Apelul trece prin firewall ca orice alt trafic și este întrerupt la oprirea execuției sau la depășirea termenului.
Pachete externe
Section titled “Pachete externe”Declarați-le în packages (npm); sunt împachetate o singură dată, apoi montate
offline.
Compatibilitate Postman și Bruno
Section titled “Compatibilitate Postman și Bruno”Același mediu expune straturile pm.* și bru.* — vedeți
Cod JavaScript.