Code-Aktionen
Wenn der Graph nicht ausreicht, führt der Baustein Code ein Skript aus.
Sieben Sprachen stehen zur Verfügung, alle ausgeführt in einer eingebetteten WebAssembly-Sandbox: Auf Ihrem Rechner ist kein Interpreter erforderlich, und das Skript hat keinen Zugriff auf Ihr Dateisystem.
| Sprache | Engine |
|---|---|
| TypeScript | QuickJS (Typen werden bei der Kompilierung entfernt) |
| JavaScript | QuickJS |
| Python | Pyodide (zu WebAssembly kompiliertes CPython) |
| Lua | Lua 5.4 in WebAssembly |
| Ruby | CRuby in WebAssembly |
| R | WebR |
| C# | .NET in WebAssembly mit Roslyn |
Die Standardsprache ist TypeScript.
Der gemeinsame Vertrag
Section titled “Der gemeinsame Vertrag”Unabhängig von der Sprache stellt der Baustein dasselbe bereit:
| Eingänge | value (benannt input), code (Zeichenkette) |
| Ausgänge | result |
| Konfiguration | language, code, timeout, packages |
input— der auf dem Eingangsport empfangene Wert.vars— die Run-Variablen.- Die Standardausgabe der Sprache (
console.log,print,puts,cat,Console.WriteLine) speist das Ausführungslog. - Der zurückgegebene Wert geht an den Port
result. Ein Fehler oder eine Zeitüberschreitung geht anerror.
Das Zeitlimit
Section titled “Das Zeitlimit”timeout, in Sekunden: 5 als Standard, 60 als Maximum. Ein Skript,
das dies überschreitet, wird abgebrochen, und die Ausführung geht an den Port
error.
Externe Pakete
Section titled “Externe Pakete”Das Feld packages akzeptiert eine Liste aus { name, version }. Die
exakten Versionen dienen als Cache-Schlüssel: Die Abhängigkeiten werden
bei der ersten Ausführung aufgelöst, zwischengespeichert und bei jeder
folgenden Ausführung offline eingebunden — auch in der CI.
| Sprache | Quelle |
|---|---|
| TypeScript / JavaScript | npm (das gesamte Ökosystem ist gebündelt) |
| Python | Reine Python-Wheels von PyPI |
| Lua | LuaRocks (reine Lua-Quellen) |
| Ruby | Reine Ruby-Gems |
| R | CRAN, über das WebAssembly-Repository von WebR |
| C# | Keine — nur die .NET-Standardbibliothek |
Wann Sie keinen Code schreiben sollten
Section titled “Wann Sie keinen Code schreiben sollten”Viele Anforderungen sind bereits durch Bausteine abgedeckt, die lesbarer und schneller sind:
| Bedarf | Baustein |
|---|---|
| Einen Wert aus einer Antwort extrahieren | Ein Verbindungs-Selektor |
| Eine Zeichenkette formatieren | Transformer |
| Eine Liste filtern, sortieren, aggregieren | Listen |
| Hashen, kodieren, signieren | Kodierung |
| Eine Struktur prüfen | Ein Schema validieren |
Heben Sie den Baustein Code für wirklich spezifische Logik auf.