Aksi kode
Ketika grafnya tidak lagi memadai, kotak Kode menjalankan sebuah skrip.
Tersedia tujuh bahasa, semuanya dijalankan di dalam kotak pasir WebAssembly bawaan: tidak ada interpreter yang perlu dipasang di mesin Anda, dan skripnya tidak memiliki akses ke sistem file Anda.
| Bahasa | Mesin |
|---|---|
| TypeScript | QuickJS (tipe dibuang saat kompilasi) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython yang dikompilasi ke WebAssembly) |
| Lua | Lua 5.4 dalam WebAssembly |
| Ruby | CRuby dalam WebAssembly |
| R | WebR |
| C# | .NET dalam WebAssembly dengan Roslyn |
Bahasa bawaannya adalah TypeScript.
Kontrak bersamanya
Section titled “Kontrak bersamanya”Apa pun bahasanya, kotaknya mengekspos hal yang sama:
| Masukan | value (dinamai input), code (string) |
| Keluaran | result |
| Konfigurasi | language, code, timeout, packages |
input— nilai yang diterima di port masukannya.vars— variabel run.- Keluaran standar bahasanya (
console.log,print,puts,cat,Console.WriteLine) memasok log eksekusinya. - Nilai yang dikembalikan berangkat lewat port
result. Sebuah galat atau pelampauan batas waktu berangkat lewaterror.
Batas waktu
Section titled “Batas waktu”timeout, dalam detik: 5 secara bawaan, maksimum 60. Skrip yang
melampauinya akan dihentikan dan eksekusinya berangkat lewat port error.
Paket eksternal
Section titled “Paket eksternal”Kolom packages menerima sebuah daftar { nama, versi }. Versi persisnya
berfungsi sebagai kunci cache: dependensinya diselesaikan pada eksekusi
pertama, disimpan dalam cache, lalu dipasang tanpa koneksi pada setiap
eksekusi berikutnya — termasuk di CI.
| Bahasa | Sumber |
|---|---|
| TypeScript / JavaScript | npm (semuanya dibundel) |
| Python | Wheel murni Python dari PyPI |
| Lua | LuaRocks (sumber murni Lua) |
| Ruby | Gem murni Ruby |
| R | CRAN, lewat repositori WebAssembly milik WebR |
| C# | Tidak ada — hanya pustaka standar .NET |
Kapan tidak perlu menulis kode
Section titled “Kapan tidak perlu menulis kode”Banyak kebutuhan sudah tercakup oleh kotak-kotak yang lebih mudah dibaca dan lebih cepat:
| Kebutuhan | Kotak |
|---|---|
| Mengekstrak sebuah nilai dari respons | Sebuah selektor sambungan |
| Memformat sebuah string | Transform |
| Menyaring, mengurutkan, mengagregasi sebuah daftar | Daftar |
| Melakukan hashing, encoding, penandatanganan | Encoding |
| Memeriksa sebuah struktur | Memvalidasi sebuah skema |
Simpanlah kotak Kode untuk logika yang benar-benar khusus.