Pular para o conteúdo

Código TypeScript

O TypeScript é a linguagem predefinida da caixa Código. As anotações de tipo são retiradas na compilação e o código é depois executado no motor QuickJS.

SímboloFunção
inputO valor recebido na porta de entrada
varsUm instantâneo apenas de leitura das variáveis de execução
__varsUma vista de leitura / escrita: get, set, has, delete, clear, keys, toObject
console.log / .info / .warn / .errorEscreve no registo da execução
fetch(...)Chamada HTTP, encaminhada pela firewall
returnO valor devolvido sai pela porta result

O corpo é envolvido numa função assíncrona: return e await funcionam ao nível superior.

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

Disponível como variável global e através de require(), sem nada declarar em packages:

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

Um require() sobre um módulo não disponível lança um erro explícito.

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

A chamada passa pela firewall como qualquer outro tráfego, e é interrompida quando a execução para ou quando o tempo limite é excedido.

Declare-os em packages (npm); são empacotados uma vez e depois montados offline.

O mesmo ambiente expõe as camadas pm.* e bru.* — ver Código JavaScript.