Skip to content

Commit f0bc378

Browse files
authored
feat: Add support for mjs files with esbuild (#427)
* feat: Add support for mjs files with esbuild * Black reformat
1 parent cefc331 commit f0bc378

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ def run(self, args, cwd=None):
120120
SUPPORTED_ESBUILD_APIS_MULTI_VALUE = [
121121
"external",
122122
"loader",
123+
"out_extension",
123124
]
124125

125126

tests/integration/workflows/nodejs_npm_esbuild/test_nodejs_npm_with_esbuild.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import tempfile
44
from pathlib import Path
55
from unittest import TestCase
6-
from unittest.mock import patch
76

87
from aws_lambda_builders.builder import LambdaBuilder
98
from aws_lambda_builders.exceptions import WorkflowFailedError
@@ -388,3 +387,23 @@ def test_includes_sourcemap_if_requested(self, runtime):
388387
expected_files = {"included.js", "included.js.map"}
389388
output_files = set(os.listdir(self.artifacts_dir))
390389
self.assertEqual(expected_files, output_files)
390+
391+
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
392+
def test_esbuild_produces_mjs_output_files(self, runtime):
393+
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild")
394+
options = {"entry_points": ["included.js"], "sourcemap": True, "out_extension": [".js=.mjs"]}
395+
396+
self.builder.build(
397+
source_dir,
398+
self.artifacts_dir,
399+
self.scratch_dir,
400+
os.path.join(source_dir, "package.json"),
401+
runtime=runtime,
402+
options=options,
403+
experimental_flags=[],
404+
executable_search_paths=[self.binpath],
405+
)
406+
407+
expected_files = {"included.mjs", "included.mjs.map"}
408+
output_files = set(os.listdir(self.artifacts_dir))
409+
self.assertEqual(expected_files, output_files)

tests/unit/workflows/nodejs_npm_esbuild/test_esbuild.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ def test_builds_args_from_config(self, osutils_mock):
200200
"target": "node14",
201201
"loader": [".proto=text", ".json=js"],
202202
"external": ["aws-sdk", "axios"],
203+
"out_extension": [".js=.mjs"],
203204
"main_fields": "module,main",
204205
}
205206

@@ -219,6 +220,7 @@ def test_builds_args_from_config(self, osutils_mock):
219220
"--external:axios",
220221
"--loader:.proto=text",
221222
"--loader:.json=js",
223+
"--out-extension:.js=.mjs",
222224
],
223225
)
224226

0 commit comments

Comments
 (0)