Kodehandlinger
Når grafen ikke er nok, kjører Kode-boksen et skript.
Sju språk er tilgjengelige, og alle kjører i en innebygd WebAssembly-sandkasse: det kreves ingen tolk på maskinen din, og skriptet har ikke tilgang til filsystemet ditt.
| Språk | Motor |
|---|---|
| TypeScript | QuickJS (typene fjernes ved kompilering) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython kompilert til WebAssembly) |
| Lua | Lua 5.4 i WebAssembly |
| Ruby | CRuby i WebAssembly |
| R | WebR |
| C# | .NET i WebAssembly med Roslyn |
Standardspråket er TypeScript.
Den felles kontrakten
Section titled “Den felles kontrakten”Uansett språk eksponerer boksen det samme:
| Inndata | value (kalt input), code (streng) |
| Utdata | result |
| Konfigurasjon | language, code, timeout, packages |
input— verdien som kommer inn på inngangsporten.vars— run-variablene.- Standardutskriften i språket (
console.log,print,puts,cat,Console.WriteLine) mater kjøringsloggen. - Verdien som returneres, går ut på
result-porten. En feil eller et tidsavbrudd går ut påerror.
Tidsavbruddet
Section titled “Tidsavbruddet”timeout, i sekunder: 5 som standard, 60 på det høyeste. Et skript som
bruker lenger tid, blir avbrutt, og kjøringen går ut på error-porten.
Eksterne pakker
Section titled “Eksterne pakker”Feltet packages godtar en liste med { name, version }. De eksakte versjonene
fungerer som buffernøkkel: avhengighetene løses opp ved første kjøring,
bufres, og monteres deretter offline ved hver påfølgende kjøring — også i CI.
| Språk | Kilde |
|---|---|
| TypeScript / JavaScript | npm (alt pakkes sammen) |
| Python | Wheels i ren Python fra PyPI |
| Lua | LuaRocks (kilder i ren Lua) |
| Ruby | Gems i ren Ruby |
| R | CRAN, via WebAssembly-repoet til WebR |
| C# | Ingen — bare .NET-standardbiblioteket |
Når du ikke bør skrive kode
Section titled “Når du ikke bør skrive kode”Mange behov dekkes allerede av bokser som er både mer lesbare og raskere:
| Behov | Boks |
|---|---|
| Hente ut en verdi fra et svar | En forbindelsesselektor |
| Formatere en streng | Transform template |
| Filtrere, sortere, aggregere en liste | Lister |
| Hashe, kode, signere | Koding |
| Sjekke en struktur | Schema validate |
Spar Kode-boksen til logikk som faktisk er spesiell.