Ir al contenido

Acciones de código

Cuando el grafo no basta, la caja Código ejecuta un script.

Hay siete lenguajes disponibles, todos ejecutados en un entorno aislado WebAssembly incorporado: no se requiere ningún intérprete en su máquina y el script no tiene acceso a su sistema de archivos.

LenguajeMotor
TypeScriptQuickJS (los tipos se eliminan en la compilación)
JavaScriptQuickJS
PythonPyodide (CPython compilado a WebAssembly)
LuaLua 5.4 en WebAssembly
RubyCRuby en WebAssembly
RWebR
C#.NET en WebAssembly con Roslyn

El lenguaje por defecto es TypeScript.

Sea cual sea el lenguaje, la caja expone lo mismo:

Entradasvalue (llamada input), code (cadena)
Salidasresult
Configuraciónlanguage, code, timeout, packages
  • input — el valor recibido en el puerto de entrada.
  • vars — las variables de ejecución.
  • La salida estándar del lenguaje (console.log, print, puts, cat, Console.WriteLine) alimenta el registro de la ejecución.
  • El valor devuelto sale por el puerto result. Un error o un tiempo de espera agotado sale por error.

timeout, en segundos: 5 por defecto, 60 como máximo. Un script que se pasa se interrumpe y la ejecución sale por el puerto error.

El campo packages acepta una lista de { nombre, versión }. Las versiones exactas sirven como clave de caché: las dependencias se resuelven en la primera ejecución, se guardan en caché y después se montan sin conexión en cada ejecución siguiente, incluso en CI.

LenguajeOrigen
TypeScript / JavaScriptnpm (el conjunto se empaqueta)
PythonRuedas de Python puro desde PyPI
LuaLuaRocks (fuentes de Lua puro)
RubyGems de Ruby puro
RCRAN, mediante el repositorio WebAssembly de WebR
C#Ninguno: solo la biblioteca estándar de .NET

Muchas necesidades ya están cubiertas por cajas, más legibles y más rápidas:

NecesidadCaja
Extraer un valor de una respuestaUn selector de enlace
Formatear una cadenaTransformar
Filtrar, ordenar, agregar una listaListas
Hacer hash, codificar, firmarCodificación
Comprobar una estructuraValidar un esquema

Reserve la caja Código para la lógica realmente específica.