Aller au contenu

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.

JezikMehanizam
TypeScriptQuickJS (tipovi se uklanjaju pri kompilaciji)
JavaScriptQuickJS
PythonPyodide (CPython kompajliran u WebAssembly)
LuaLua 5.4 u WebAssembly
RubyCRuby u WebAssembly
RWebR
C#.NET u WebAssembly sa Roslynom

Podrazumevani jezik je TypeScript.

Bez obzira na jezik, kutija izlaže isto:

Ulazivalue (nazvan input), code (niska)
Izlaziresult
Konfiguracijalanguage, code, timeout, packages
  • input — vrednost primljena na ulaznom portu.
  • varspromenljive 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 na error.

timeout, u sekundama: podrazumevano 5, najviše 60. Skripta koja ga prekorači se prekida, a izvršavanje odlazi na port error.

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.

JezikIzvor
TypeScript / JavaScriptnpm (sve se pakuje)
PythonČisto Python wheel paketi sa PyPI-ja
LuaLuaRocks (čisti Lua izvori)
RubyČisto Ruby gem paketi
RCRAN, preko WebR WebAssembly repozitorijuma
C#Nijedan — samo standardna .NET biblioteka

Mnoge potrebe već pokrivaju kutije, koje su čitljivije i brže:

PotrebaKutija
Izdvajanje vrednosti iz odgovoraSelektor veze
Formatiranje niskeTransformacija
Filtriranje, sortiranje, agregacija listeListe
Heširanje, kodiranje, potpisivanjeKodiranje
Provera struktureValidacija šeme

Kutiju Code sačuvajte za logiku koja je zaista specifična.