Akcije koda
Kada graf nije dovoljan, kutija Code izvršava skriptu.
Dostupno je sedam jezika, svi izvršavani u ugrađenom WebAssembly peskovniku: na vašoj mašini nije potreban nikakav interpreter, a skripta nema pristup vašem sistemu datoteka.
| Jezik | Mehanizam |
|---|---|
| TypeScript | QuickJS (tipovi se uklanjaju pri kompilaciji) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython kompajliran u WebAssembly) |
| Lua | Lua 5.4 u WebAssembly |
| Ruby | CRuby u WebAssembly |
| R | WebR |
| C# | .NET u WebAssembly sa Roslynom |
Podrazumevani jezik je TypeScript.
Zajednički ugovor
Section titled “Zajednički ugovor”Bez obzira na jezik, kutija izlaže isto:
| Ulazi | value (nazvan input), code (niska) |
| Izlazi | result |
| Konfiguracija | language, code, timeout, packages |
input— vrednost primljena na ulaznom portu.vars— promenljive izvršavanja.- Standardni izlaz jezika (
console.log,print,puts,cat,Console.WriteLine) puni zapis izvršavanja. - Vraćena vrednost odlazi na port
result. Greška ili prekoračenje vremenskog ograničenja odlazi naerror.
Vremensko ograničenje
Section titled “Vremensko ograničenje”timeout, u sekundama: podrazumevano 5, najviše 60. Skripta koja ga
prekorači se prekida, a izvršavanje odlazi na port error.
Spoljašnji paketi
Section titled “Spoljašnji paketi”Polje packages prihvata listu { ime, verzija }. Tačne verzije služe kao ključ
keša: zavisnosti se razrešavaju pri prvom izvršavanju, keširaju, pa se pri
svakom narednom izvršavanju postavljaju van mreže — uključujući i u CI-ju.
| Jezik | Izvor |
|---|---|
| TypeScript / JavaScript | npm (sve se pakuje) |
| Python | Čisto Python wheel paketi sa PyPI-ja |
| Lua | LuaRocks (čisti Lua izvori) |
| Ruby | Čisto Ruby gem paketi |
| R | CRAN, preko WebR WebAssembly repozitorijuma |
| C# | Nijedan — samo standardna .NET biblioteka |
Kada ne pisati kod
Section titled “Kada ne pisati kod”Mnoge potrebe već pokrivaju kutije, koje su čitljivije i brže:
| Potreba | Kutija |
|---|---|
| Izdvajanje vrednosti iz odgovora | Selektor veze |
| Formatiranje niske | Transformacija |
| Filtriranje, sortiranje, agregacija liste | Liste |
| Heširanje, kodiranje, potpisivanje | Kodiranje |
| Provera strukture | Validacija šeme |
Kutiju Code sačuvajte za logiku koja je zaista specifična.