Kódműveletek
Amikor a gráf nem elég, a Kód blokk lefuttat egy szkriptet.
Hét nyelv áll rendelkezésre, mindegyik beépített WebAssembly-sandboxban fut: a gépen nincs szükség értelmezőre, és a szkript nem éri el a fájlrendszert.
| Nyelv | Motor |
|---|---|
| TypeScript | QuickJS (a típusok a fordításnál eltűnnek) |
| JavaScript | QuickJS |
| Python | Pyodide (WebAssemblyre fordított CPython) |
| Lua | Lua 5.4 WebAssemblyben |
| Ruby | CRuby WebAssemblyben |
| R | WebR |
| C# | .NET WebAssemblyben, Roslynnal |
Az alapértelmezett nyelv a TypeScript.
A közös szerződés
Section titled “A közös szerződés”A nyelvtől függetlenül a blokk ugyanazt teszi közzé:
| Bemenetek | value (a neve input), code (karakterlánc) |
| Kimenetek | result |
| Beállítások | language, code, timeout, packages |
input— a bemeneti porton kapott érték.vars— a futásváltozók.- A nyelv standard kimenete (
console.log,print,puts,cat,Console.WriteLine) a futtatási naplót táplálja. - A visszaadott érték a
resultportra kerül. A hiba vagy az időtúllépés azerrorportra.
Az időkorlát
Section titled “Az időkorlát”A timeout másodpercben értendő: alapértelmezés szerint 5, legfeljebb 60.
Az ezt túllépő szkript megszakad, a futtatás pedig az error portra kerül.
A külső csomagok
Section titled “A külső csomagok”A packages mező { name, version } elemekből álló listát fogad el. A pontos
verziók a gyorsítótár kulcsául szolgálnak: a függőségek az első futtatáskor
oldódnak fel, gyorsítótárba kerülnek, majd minden további futtatásnál offline
csatolódnak be — CI-ben is.
| Nyelv | Forrás |
|---|---|
| TypeScript / JavaScript | npm (a teljes készlet egy bundle-be kerül) |
| Python | Tisztán Python wheelek a PyPI-ról |
| Lua | LuaRocks (tisztán Lua források) |
| Ruby | Tisztán Ruby gemek |
| R | CRAN, a WebR WebAssembly-tárházán keresztül |
| C# | Nincs — csak a .NET standard könyvtára |
Amikor nem kell kódot írni
Section titled “Amikor nem kell kódot írni”Sok igényt már lefednek blokkok, amelyek olvashatóbbak és gyorsabbak:
| Igény | Blokk |
|---|---|
| Érték kinyerése egy válaszból | Egy élválasztó |
| Karakterlánc formázása | Transform template |
| Lista szűrése, rendezése, összesítése | Listák |
| Hasítás, kódolás, aláírás | Kódolás |
| Struktúra ellenőrzése | Schema validate |
A Kód blokkot a valóban egyedi logikára érdemes fenntartani.