Kode TypeScript
TypeScript adalah bahasa bawaan kotak Kode. Anotasi tipenya dibuang saat kompilasi, lalu kodenya dijalankan di dalam mesin QuickJS.
API-nya
Section titled “API-nya”| Simbol | Peran |
|---|---|
input | Nilai yang diterima di port masukannya |
vars | Sebuah potret baca-saja dari variabel run |
__vars | Sebuah tampilan baca / tulis: get, set, has, delete, clear, keys, toObject |
console.log / .info / .warn / .error | Menulis ke dalam log eksekusinya |
fetch(...) | Panggilan HTTP, yang dirutekan lewat firewall |
return | Nilai yang dikembalikan berangkat lewat port result |
Badannya dibungkus di dalam sebuah fungsi asinkron: return dan await
berfungsi di tingkat teratas.
Contoh
Section titled “Contoh”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 };Pustaka bawaan
Section titled “Pustaka bawaan”Tersedia sebagai variabel global dan melalui require(), tanpa perlu
mendeklarasikan apa pun di dalam packages:
| Global | Paket |
|---|---|
_, 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 };Sebuah require() terhadap modul yang tidak tersedia akan melemparkan galat
yang jelas.
Menunggu dan memanggil
Section titled “Menunggu dan memanggil”const reponse = await fetch(`${vars.baseUrl}/sante`);const corps = await reponse.json();if (corps.statut !== 'ok') throw new Error(`état ${corps.statut}`);return corps;Panggilannya melewati firewall sebagaimana lalu lintas lainnya, dan panggilan itu dihentikan ketika eksekusinya dihentikan atau batas waktunya terlampaui.
Paket eksternal
Section titled “Paket eksternal”Deklarasikan di dalam packages (npm); paketnya dibundel sekali lalu dipasang
tanpa koneksi.
Kompatibilitas Postman dan Bruno
Section titled “Kompatibilitas Postman dan Bruno”Lingkungan yang sama mengekspos lapisan pm.* dan bru.* — lihat
Kode JavaScript.