class Opal::CliRunners::Nodejs

def self.call(data)

def self.call(data)
  (data[:options] ||= {})[:env] = { 'NODE_PATH' => node_modules }
  argv = data[:argv].dup.to_a
  argv.unshift('--') if argv.any?
  opts = Shellwords.shellwords(ENV['NODE_OPTS'] || '')
  SystemRunner.call(data) do |tempfile|
    [
      'node',
      '--require', "#{DIR}/source-map-support-node",
      *opts,
      tempfile.path,
      *argv
    ]
  end
rescue Errno::ENOENT
  raise MissingNodeJS, 'Please install Node.js to be able to run Opal scripts.'
end

def self.node_modules

Ensure stdlib node_modules is among NODE_PATHs
def self.node_modules
  ENV['NODE_PATH'].to_s.split(OS.env_sep).tap do |paths|
    paths << NODE_PATH unless paths.include? NODE_PATH
  end.join(OS.env_sep)
end