Akce s kódem
Když graf nestačí, blok Kód spustí skript.
K dispozici je sedm jazyků a všechny běží ve vestavěném sandboxu WebAssembly: na vašem počítači není potřeba žádný interpret a skript nemá přístup k vašemu systému souborů.
| Jazyk | Engine |
|---|---|
| TypeScript | QuickJS (typy se při kompilaci odstraní) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython zkompilovaný do WebAssembly) |
| Lua | Lua 5.4 ve WebAssembly |
| Ruby | CRuby ve WebAssembly |
| R | WebR |
| C# | .NET ve WebAssembly s Roslynem |
Výchozím jazykem je TypeScript.
Společný kontrakt
Section titled “Společný kontrakt”Bez ohledu na jazyk nabízí blok vždy totéž:
| Vstupy | value (pojmenovaný input), code (řetězec) |
| Výstupy | result |
| Konfigurace | language, code, timeout, packages |
input— hodnota přijatá na vstupním portu.vars— proměnné běhu.- Standardní výstup daného jazyka (
console.log,print,puts,cat,Console.WriteLine) plní log běhu. - Návratová hodnota odchází na port
result. Chyba nebo překročení časového limitu odchází na porterror.
Časový limit
Section titled “Časový limit”timeout, v sekundách: 5 ve výchozím stavu, 60 nejvýše. Skript, který
limit překročí, je přerušen a běh odchází na port error.
Externí balíčky
Section titled “Externí balíčky”Pole packages přijímá seznam položek { name, version }. Přesné verze slouží
jako klíč mezipaměti: závislosti se vyřeší při prvním běhu, uloží se do
mezipaměti a při každém dalším běhu se připojí offline — včetně průběžné
integrace.
| Jazyk | Zdroj |
|---|---|
| TypeScript / JavaScript | npm (vše se zabalí dohromady) |
| Python | Balíčky wheel v čistém Pythonu z PyPI |
| Lua | LuaRocks (zdrojové kódy v čistém Lua) |
| Ruby | Gemy v čistém Ruby |
| R | CRAN, přes repozitář WebAssembly projektu WebR |
| C# | Žádný — pouze standardní knihovna .NET |
Kdy kód nepsat
Section titled “Kdy kód nepsat”Řadu potřeb už pokrývají hotové bloky, které jsou čitelnější a rychlejší:
| Potřeba | Blok |
|---|---|
| Získat hodnotu z odpovědi | Selektor propojení |
| Naformátovat řetězec | Transform template |
| Filtrovat, řadit a agregovat seznam | Seznamy |
| Hashovat, kódovat, podepisovat | Kódování |
| Zkontrolovat strukturu | Schema validate |
Blok Kód si nechte pro logiku, která je skutečně specifická.