Sha256: 3b7471ffa9b2132484c8311888a5d4a6d27ded64025f925f9ebfffc95300a741

Contents?: true

Size: 1.19 KB

Versions: 107

Compression:

Stored size: 1.19 KB

Contents

class Jets::PolyFun
  class NodeExecutor < BaseExecutor
    # Code for wrapper script that mimics lambda execution. Wrapper script usage:
    #
    #   node WRAPPER_SCRIPT EVENT
    #
    # Example:
    #
    #   node /tmp/jets/demo/executor/20180804-12816-imqb9/lambda_executor.js '{}'
    #
    def code
      if async_syntax?
        async_code
      else
        callback_code
      end
    end

    # https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html
    def async_syntax?
      app_path = Jets.root + @task.handler_path.sub('handlers/', 'app/')
      source_code = IO.read(app_path)
      source_code.match(/=\s*async.*\(/)
    end

    def async_code
      <<-EOL
var event = process.argv[2]
event = JSON.parse(event)
var context = {}

var app = require("./#{@task.meth}.js")
app.#{handler}(event, context).then(resp => console.log(JSON.stringify(resp)))
EOL
    end


    def callback_code
      <<-EOL
function callback(error, response) {
  var text = JSON.stringify(response)
  console.log(text)
}

var event = process.argv[2]
event = JSON.parse(event)
var context = {}

var app = require("./#{@task.meth}.js")
var resp = app.#{handler}(event, context, callback)
EOL
    end
  end
end

Version data entries

107 entries across 107 versions & 1 rubygems

Version Path
jets-1.6.1 lib/jets/poly_fun/node_executor.rb
jets-1.6.0 lib/jets/poly_fun/node_executor.rb
jets-1.5.10 lib/jets/poly_fun/node_executor.rb
jets-1.5.9 lib/jets/poly_fun/node_executor.rb
jets-1.5.8 lib/jets/poly_fun/node_executor.rb
jets-1.5.7 lib/jets/poly_fun/node_executor.rb
jets-1.5.6 lib/jets/poly_fun/node_executor.rb
jets-1.5.5 lib/jets/poly_fun/node_executor.rb
jets-1.5.4 lib/jets/poly_fun/node_executor.rb
jets-1.5.3 lib/jets/poly_fun/node_executor.rb
jets-1.5.2 lib/jets/poly_fun/node_executor.rb
jets-1.5.1 lib/jets/poly_fun/node_executor.rb
jets-1.5.0 lib/jets/poly_fun/node_executor.rb
jets-1.4.11 lib/jets/poly_fun/node_executor.rb
jets-1.4.10 lib/jets/poly_fun/node_executor.rb
jets-1.4.9 lib/jets/poly_fun/node_executor.rb
jets-1.4.8 lib/jets/poly_fun/node_executor.rb
jets-1.4.7 lib/jets/poly_fun/node_executor.rb
jets-1.4.6 lib/jets/poly_fun/node_executor.rb
jets-1.4.5 lib/jets/poly_fun/node_executor.rb