ashiina/lambda-local

Error on importing event even with ESM flag

Opened this issue · 0 comments

Context

Just tried to use this package for local lambda development on my project, which is in ES module.

Version: 2.2.0.
Command that I run:

lambda-local --esm -l entry.js -t 600 --envfile .env -e event/index.js

Here's my event file.

// event/index.js
export const eventData = {
    message: "Hello"
};

Current behaviour

Here's the error that I get.

require() of ES Module /<my_path>/event/index.js from /<my_path>/node_modules/lambda-local/build/cli.js not supported.\nInstead change the require of index.js in /<my_path>/node_modules/lambda-local/build/cli.js to a dynamic import() which is available in all CommonJS modules

Expected behaviour

Use import() for event when --esm flag is provided.

Possible Solution

I have implement a temporary fix on my local, which is hard-coded for ES module. Would like to request on a code change in upcoming release to handle this scenario.

Here's the reference code changes.

// node_modules/lambda-local/build/cli.js
// line 135
var event = async function () {
    if (program.watch)
        return null;
    return await import(utils.getAbsolutePath(eventPath));
};