コンテンツにスキップ

コードアクション

グラフだけでは足りないとき、Code ボックスがスクリプトを実行します。

7 つの言語が使えます。 いずれも 組み込みの WebAssembly サンドボックス内 で実行されるため、 お使いのマシンにインタープリターは不要で、スクリプトがファイルシステムにアクセスすることもありません。

言語エンジン
TypeScriptQuickJS(型はコンパイル時に除去されます)
JavaScriptQuickJS
PythonPyodide(WebAssembly にコンパイルされた CPython)
LuaWebAssembly 上の Lua 5.4
RubyWebAssembly 上の CRuby
RWebR
C#Roslyn を備えた WebAssembly 上の .NET

デフォルトの言語は TypeScript です。

言語が何であれ、ボックスが公開するものは同じです。

入力valueinput という名前)、code(文字列)
出力result
設定languagecodetimeoutpackages
  • input — 入力ポートで受け取った値です。
  • vars実行変数 です。
  • 各言語の 標準出力console.logprintputscatConsole.WriteLine)は 実行ログ に流れます。
  • 戻り値result ポートに送られます。エラーやタイムアウトは error ポートに送られます。

timeout は秒単位で、デフォルトは 5最大は 60 です。 これを超えたスクリプトは中断され、実行は error ポートへ進みます。

packages フィールドは { nom, version } のリストを受け取ります。 正確なバージョンがキャッシュのキーになります。依存関係は 初回実行時 に解決されてキャッシュされ、 以降の実行では毎回 オフライン でマウントされます(CI でも同じです)。

言語取得元
TypeScript / JavaScriptnpm(全体がまとめてバンドルされます)
PythonPyPI の ピュア Python ホイール
LuaLuaRocks(ピュア Lua のソース)
Rubyピュア Ruby の gem
RCRAN(WebR の WebAssembly リポジトリ経由)
C#なし — .NET 標準ライブラリのみ

コードを書かないほうがよい場合

Section titled “コードを書かないほうがよい場合”

多くの用途はすでに専用のボックスでカバーされており、そのほうが読みやすく、動作も速くなります。

用途ボックス
レスポンスから値を取り出す接続セレクター
文字列を整形するテンプレート変換
リストをフィルター、ソート、集計するリスト
ハッシュ化、エンコード、署名するエンコード
構造を検証するSchema validate

Code ボックスは、本当に固有のロジックのために取っておいてください。