Akcije koda
Kada graf nije dovoljan, kutija Code izvodi skriptu.
Dostupno je sedam jezika, svi izvedeni u ugrađenom WebAssembly pješčaniku: na vašem računalu nije potreban nikakav interpreter, a skripta nema pristup vašem datotečnom sustavu.
| Jezik | Pogon |
|---|---|
| TypeScript | QuickJS (tipovi se uklanjaju pri prevođenju) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython preveden u WebAssembly) |
| Lua | Lua 5.4 u WebAssemblyju |
| Ruby | CRuby u WebAssemblyju |
| R | WebR |
| C# | .NET u WebAssemblyju s Roslynom |
Zadani je jezik TypeScript.
Zajednički ugovor
Section titled “Zajednički ugovor”Bez obzira na jezik, kutija izlaže isto:
| Ulazi | value (nazvan input), code (niz) |
| Izlazi | result |
| Konfiguracija | language, code, timeout, packages |
input— vrijednost primljena na ulaznom portu.vars— varijable izvođenja.- Standardni izlaz jezika (
console.log,print,puts,cat,Console.WriteLine) puni zapisnik izvođenja. - Vraćena vrijednost odlazi na port
result. Pogreška ili prekoračenje vremena odlazi naerror.
Vremensko ograničenje
Section titled “Vremensko ograničenje”timeout, u sekundama: zadano 5, najviše 60. Skripta koja to prekorači
prekida se, a izvođenje odlazi na port error.
Vanjski paketi
Section titled “Vanjski paketi”Polje packages prihvaća popis oblika { name, version }. Točne verzije služe
kao ključ predmemorije: ovisnosti se razrješavaju pri prvom izvođenju,
spremaju u predmemoriju, a zatim se pri svakom sljedećem izvođenju postavljaju
izvan mreže — uključujući u CI-ju.
| Jezik | Izvor |
|---|---|
| TypeScript / JavaScript | npm (sve se pakira zajedno) |
| Python | Čisto Python kotači s PyPI-ja |
| Lua | LuaRocks (čisto Lua izvori) |
| Ruby | Čisto Ruby gemovi |
| R | CRAN, preko WebR-ova WebAssembly repozitorija |
| C# | Nijedan — samo standardna .NET biblioteka |
Kada ne pisati kod
Section titled “Kada ne pisati kod”Mnoge su potrebe već pokrivene kutijama, koje su čitljivije i brže:
| Potreba | Kutija |
|---|---|
| Izdvojiti vrijednost iz odgovora | Selektor veze |
| Oblikovati niz | Transformacija |
| Filtrirati, sortirati, agregirati popis | Popisi |
| Sažeti, kodirati, potpisati | Kodiranje |
| Provjeriti strukturu | Validirati shemu |
Kutiju Code čuvajte za doista specifičnu logiku.