Gå til indhold

Kodeknuder

Når grafen ikke slår til, kører boksen Code et script.

Syv sprog står til rådighed, og de udføres alle i en indbygget WebAssembly-sandbox: der kræves ingen fortolker på din maskine, og scriptet har ikke adgang til dit filsystem.

SprogMotor
TypeScriptQuickJS (typer fjernes ved kompilering)
JavaScriptQuickJS
PythonPyodide (CPython kompileret til WebAssembly)
LuaLua 5.4 i WebAssembly
RubyCRuby i WebAssembly
RWebR
C#.NET i WebAssembly med Roslyn

Standardsproget er TypeScript.

Uanset sproget stiller boksen det samme til rådighed:

Indgangevalue (kaldet input), code (streng)
Udgangeresult
Konfigurationlanguage, code, timeout, packages
  • input — den værdi, der er modtaget på indgangsporten.
  • varskørselsvariablerne.
  • Sprogets standardoutput (console.log, print, puts, cat, Console.WriteLine) fodrer kørselsloggen.
  • Den returnerede værdi går ud på porten result. En fejl eller en overskredet frist går ud på error.

timeout, i sekunder: 5 som standard, 60 højst. Et script, der overskrider den, afbrydes, og kørslen går ud på porten error.

Feltet packages accepterer en liste af { nom, version }. De nøjagtige versioner fungerer som cachenøgle: afhængighederne opløses ved første kørsel, lægges i cache og monteres derefter offline ved hver efterfølgende kørsel — også i CI.

SprogKilde
TypeScript / JavaScriptnpm (det hele pakkes ind)
PythonRen Python-wheels fra PyPI
LuaLuaRocks (kilder i ren Lua)
RubyRene Ruby-gems
RCRAN, via WebR’s WebAssembly-repositorium
C#Ingen — udelukkende .NET-standardbiblioteket

Mange behov er allerede dækket af bokse, som både er mere læsbare og hurtigere:

BehovBoks
Udtrække en værdi fra et svarEn forbindelsesselektor
Formatere en strengTransformér
Filtrere, sortere, aggregere en listeLister
Hashe, kode, signereKodning
Kontrollere en strukturSchema validate

Gem boksen Code til den logik, der virkelig er speciel.