Class: Daytona::SandboxJsCodeToolbox
- Inherits:
-
Object
- Object
- Daytona::SandboxJsCodeToolbox
- Defined in:
- lib/daytona/code_toolbox/sandbox_js_code_toolbox.rb
Instance Method Summary collapse
Instance Method Details
#get_run_command(code, params = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/daytona/code_toolbox/sandbox_js_code_toolbox.rb', line 7 def get_run_command(code, params = nil) # Prepend argv fix: node - places '-' at argv[1]; splice it out to match legacy node -e behaviour # Encode the provided code in base64 base64_code = Base64.strict_encode64("process.argv.splice(1, 1);\n" + code) # Build command-line arguments string argv = '' argv = params.argv.join(' ') if params&.argv && !params.argv.empty? # Pipe the base64-encoded code via stdin to avoid OS ARG_MAX limits on large payloads # Use node - to read from stdin (node /dev/stdin does not work when stdin is a pipe) "printf '%s' '#{base64_code}' | base64 -d | node - #{argv}" end |