Codice TypeScript
TypeScript è il linguaggio predefinito del riquadro Code. Le annotazioni di tipo vengono rimosse in fase di compilazione, poi il codice si esegue nel motore QuickJS.
| Simbolo | Ruolo |
|---|---|
input | Il valore ricevuto sulla porta di input |
vars | Un’istantanea in sola lettura delle variabili di run |
__vars | Una vista in lettura / scrittura: get, set, has, delete, clear, keys, toObject |
console.log / .info / .warn / .error | Scrive nel log dell’esecuzione |
fetch(...) | Chiamata HTTP, instradata dal firewall |
return | Il valore restituito parte sulla porta result |
Il corpo è racchiuso in una funzione asincrona: return e await
funzionano al livello superiore.
Esempio
Section titled “Esempio”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 };Libreria integrata
Section titled “Libreria integrata”Disponibile come variabile globale e tramite require(), senza dichiarare
nulla in packages:
| Globale | Pacchetto |
|---|---|
_, 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() su un modulo non disponibile solleva un errore esplicito.
Attendere e chiamare
Section titled “Attendere e chiamare”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;La chiamata passa dal firewall come qualsiasi altro traffico, e viene interrotta all’arresto dell’esecuzione o al superamento del timeout.
Pacchetti esterni
Section titled “Pacchetti esterni”Vanno dichiarati in packages (npm); vengono impacchettati una volta e poi
montati offline.
Compatibilità Postman e Bruno
Section titled “Compatibilità Postman e Bruno”Lo stesso ambiente espone i livelli pm.* e bru.* — si veda
Codice JavaScript.