Pular para o conteúdo

Ações de código

Quando o grafo não basta, a caixa Código executa um script.

Estão disponíveis sete linguagens, todas executadas numa sandbox WebAssembly integrada: não é necessário nenhum interpretador na sua máquina e o script não tem acesso ao seu sistema de ficheiros.

LinguagemMotor
TypeScriptQuickJS (os tipos são retirados na compilação)
JavaScriptQuickJS
PythonPyodide (CPython compilado para WebAssembly)
LuaLua 5.4 em WebAssembly
RubyCRuby em WebAssembly
RWebR
C#.NET em WebAssembly com Roslyn

A linguagem predefinida é TypeScript.

Qualquer que seja a linguagem, a caixa expõe a mesma coisa:

Entradasvalue (chamada input), code (cadeia)
Saídasresult
Configuraçãolanguage, code, timeout, packages
  • input — o valor recebido na porta de entrada.
  • vars — as variáveis de execução.
  • A saída standard da linguagem (console.log, print, puts, cat, Console.WriteLine) alimenta o registo da execução.
  • O valor devolvido sai pela porta result. Um erro ou uma expiração do tempo limite sai por error.

timeout, em segundos: 5 por predefinição, 60 no máximo. Um script que o exceda é interrompido e a execução sai pela porta error.

O campo packages aceita uma lista de { name, version }. As versões exatas servem de chave de cache: as dependências são resolvidas na primeira execução, guardadas em cache e depois montadas offline em cada execução seguinte — incluindo na CI.

LinguagemOrigem
TypeScript / JavaScriptnpm (o conjunto é empacotado)
PythonWheels puramente Python do PyPI
LuaLuaRocks (fontes puramente Lua)
RubyGems puramente Ruby
RCRAN, através do repositório WebAssembly do WebR
C#Nenhum — apenas a biblioteca standard do .NET

Muitas necessidades já estão cobertas por caixas, mais legíveis e mais rápidas:

NecessidadeCaixa
Extrair um valor de uma respostaUm seletor de ligação
Formatar uma cadeiaTransformar
Filtrar, ordenar, agregar uma listaListas
Fazer hash, codificar, assinarCodificação
Verificar uma estruturaValidar um esquema

Guarde a caixa Código para a lógica realmente específica.