Перейти до вмісту

Дії з кодом

Коли графа не вистачає, блок Code виконує скрипт.

Доступні сім мов, і всі вони виконуються у вбудованій пісочниці WebAssembly: жодного інтерпретатора на вашій машині не потрібно, а скрипт не має доступу до вашої файлової системи.

МоваРушій
TypeScriptQuickJS (типи прибираються під час компіляції)
JavaScriptQuickJS
PythonPyodide (CPython, скомпільований у WebAssembly)
LuaLua 5.4 у WebAssembly
RubyCRuby у WebAssembly
RWebR
C#.NET у WebAssembly з Roslyn

Мова за замовчуванням — TypeScript.

Хоч би якою була мова, блок надає те саме:

Входиvalue (має назву input), code (рядок)
Виходиresult
Конфігураціяlanguage, code, timeout, packages
  • input — значення, отримане на вхідному порту.
  • varsзмінні запуску.
  • Стандартний вивід мови (console.log, print, puts, cat, Console.WriteLine) живить журнал виконання.
  • Повернене значення вирушає на порт result. Помилка або перевищення часу очікування йде на error.

timeout у секундах: типово 5, максимум 60. Скрипт, який його перевищує, переривається, а виконання йде на порт error.

Поле packages приймає перелік { ім'я, версія }. Точні версії слугують ключем кешу: залежності розв’язуються під час першого виконання, кешуються, а потім під час кожного наступного виконання під’єднуються офлайн — зокрема й у CI.

МоваДжерело
TypeScript / JavaScriptnpm (усе запаковується разом)
PythonСуто пайтонівські колеса з PyPI
LuaLuaRocks (суто Lua-джерела)
RubyСуто рубінові gem-и
RCRAN через репозиторій WebAssembly від WebR
C#Немає — лише стандартна бібліотека .NET

Коли не варто писати код

Section titled “Коли не варто писати код”

Багато потреб уже покривають блоки — читабельніші й швидші:

ПотребаБлок
Вилучити значення з відповідіСелектор зв’язку
Відформатувати рядокШаблон
Відфільтрувати, відсортувати, агрегувати списокСписки
Захешувати, закодувати, підписатиКодування
Перевірити структуруПеревірка схеми

Тримайте блок Code для справді специфічної логіки.