Actions de code
Quand le graphe ne suffit pas, la boîte Code exécute un script.
Sept langages sont disponibles, tous exécutés dans un bac à sable WebAssembly embarqué : aucun interpréteur n’est requis sur votre machine, et le script n’a pas accès à votre système de fichiers.
| Langage | Moteur |
|---|---|
| TypeScript | QuickJS (types retirés à la compilation) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython compilé en WebAssembly) |
| Lua | Lua 5.4 en WebAssembly |
| Ruby | CRuby en WebAssembly |
| R | WebR |
| C# | .NET en WebAssembly avec Roslyn |
Le langage par défaut est TypeScript.
Le contrat commun
Section titled “Le contrat commun”Quel que soit le langage, la boîte expose la même chose :
| Entrées | value (nommée input), code (chaîne) |
| Sorties | result |
| Configuration | language, code, timeout, packages |
input— la valeur reçue sur le port d’entrée.vars— les variables de run.- La sortie standard du langage (
console.log,print,puts,cat,Console.WriteLine) alimente le journal de l’exécution. - La valeur renvoyée part sur le port
result. Une erreur ou un dépassement de délai part surerror.
Le délai d’expiration
Section titled “Le délai d’expiration”timeout, en secondes : 5 par défaut, 60 au maximum. Un script
qui dépasse est interrompu et l’exécution part sur le port error.
Les paquets externes
Section titled “Les paquets externes”Le champ packages accepte une liste de { nom, version }. Les versions
exactes servent de clé de cache : les dépendances sont résolues à la première exécution, mises en cache, puis montées hors ligne à chaque exécution
suivante — y compris en CI.
| Langage | Source |
|---|---|
| TypeScript / JavaScript | npm (l’ensemble est empaqueté) |
| Python | Roues pur Python depuis PyPI |
| Lua | LuaRocks (sources pur Lua) |
| Ruby | Gems pur Ruby |
| R | CRAN, via le dépôt WebAssembly de WebR |
| C# | Aucun — la bibliothèque standard .NET uniquement |
Quand ne pas écrire de code
Section titled “Quand ne pas écrire de code”Beaucoup de besoins sont déjà couverts par des boîtes, plus lisibles et plus rapides :
| Besoin | Boîte |
|---|---|
| Extraire une valeur d’une réponse | Un sélecteur de liaison |
| Formater une chaîne | Transformer |
| Filtrer, trier, agréger une liste | Listes |
| Hacher, encoder, signer | Encodage |
| Vérifier une structure | Valider un schéma |
Gardez la boîte Code pour la logique réellement spécifique.