Code-acties
Waar de graaf niet volstaat, voert het vakje Code een script uit.
Er zijn zeven talen beschikbaar, die alle in een meegeleverde WebAssembly-sandbox draaien: u hebt geen interpreter op uw machine nodig, en het script heeft geen toegang tot uw bestandssysteem.
| Taal | Engine |
|---|---|
| TypeScript | QuickJS (typen worden bij het compileren verwijderd) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython gecompileerd naar WebAssembly) |
| Lua | Lua 5.4 in WebAssembly |
| Ruby | CRuby in WebAssembly |
| R | WebR |
| C# | .NET in WebAssembly met Roslyn |
De standaardtaal is TypeScript.
Het gemeenschappelijke contract
Section titled “Het gemeenschappelijke contract”Welke taal u ook kiest, het vakje biedt hetzelfde aan:
| Invoer | value (met de naam input), code (tekenreeks) |
| Uitvoer | result |
| Configuratie | language, code, timeout, packages |
input— de waarde die op de invoerpoort is ontvangen.vars— de runvariabelen.- De standaarduitvoer van de taal (
console.log,print,puts,cat,Console.WriteLine) voedt het uitvoeringslogboek. - De teruggegeven waarde gaat naar de poort
result. Een fout of een overschreden timeout gaat naarerror.
De timeout
Section titled “De timeout”timeout, in seconden: standaard 5, maximaal 60. Een script dat daarboven
komt, wordt afgebroken en de uitvoering gaat naar de poort error.
Externe pakketten
Section titled “Externe pakketten”Het veld packages accepteert een lijst van { naam, versie }. De exacte versies
dienen als cachesleutel: de afhankelijkheden worden bij de eerste uitvoering
opgelost, gecachet, en daarna bij elke volgende uitvoering offline aangekoppeld
— ook in CI.
| Taal | Bron |
|---|---|
| TypeScript / JavaScript | npm (het geheel wordt gebundeld) |
| Python | Pure-Python-wheels van PyPI |
| Lua | LuaRocks (bronnen in pure Lua) |
| Ruby | Pure-Ruby-gems |
| R | CRAN, via de WebAssembly-repository van WebR |
| C# | Geen — uitsluitend de standaardbibliotheek van .NET |
Wanneer u geen code moet schrijven
Section titled “Wanneer u geen code moet schrijven”Veel behoeften zijn al door vakjes gedekt, die leesbaarder en sneller zijn:
| Behoefte | Vakje |
|---|---|
| Een waarde uit een respons halen | Een verbindingsselector |
| Een tekenreeks opmaken | Transformeren |
| Een lijst filteren, sorteren, aggregeren | Lijsten |
| Hashen, encoderen, ondertekenen | Encodering |
| Een structuur controleren | Een schema valideren |
Houd het vakje Code voor de logica die werkelijk specifiek is.