diff --git a/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py b/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py index 09525bf9b..1149e0088 100644 --- a/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py +++ b/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py @@ -114,6 +114,7 @@ def run(self, args, cwd=None): "target", "format", "main_fields", + "sources_content", ] # Multi-value types (--external:axios --external:aws-sdk) diff --git a/tests/integration/workflows/nodejs_npm_esbuild/test_nodejs_npm_with_esbuild.py b/tests/integration/workflows/nodejs_npm_esbuild/test_nodejs_npm_with_esbuild.py index f7fd167f8..914d562a0 100644 --- a/tests/integration/workflows/nodejs_npm_esbuild/test_nodejs_npm_with_esbuild.py +++ b/tests/integration/workflows/nodejs_npm_esbuild/test_nodejs_npm_with_esbuild.py @@ -1,3 +1,4 @@ +import json import os import shutil import tempfile @@ -414,6 +415,29 @@ def test_esbuild_produces_mjs_output_files(self, runtime): output_files = set(os.listdir(self.artifacts_dir)) self.assertEqual(expected_files, output_files) + @parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)]) + def test_esbuild_produces_sourcemap_without_source_contents(self, runtime): + source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild") + options = {"entry_points": ["included.js"], "sourcemap": True, "sources_content": "false"} + + self.builder.build( + source_dir, + self.artifacts_dir, + self.scratch_dir, + os.path.join(source_dir, "package.json"), + runtime=runtime, + options=options, + experimental_flags=[], + executable_search_paths=[self.binpath], + ) + + expected_files = {"included.js", "included.js.map"} + output_files = set(os.listdir(self.artifacts_dir)) + with open(Path(self.artifacts_dir, "included.js.map")) as f: + sourcemap = json.load(f) + self.assertNotIn("sourcesContent", sourcemap) + self.assertEqual(expected_files, output_files) + @parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)]) def test_esbuild_can_build_in_source(self, runtime): options = {"entry_points": ["included.js"]} diff --git a/tests/unit/workflows/nodejs_npm_esbuild/test_esbuild.py b/tests/unit/workflows/nodejs_npm_esbuild/test_esbuild.py index f62fc3e54..304719b09 100644 --- a/tests/unit/workflows/nodejs_npm_esbuild/test_esbuild.py +++ b/tests/unit/workflows/nodejs_npm_esbuild/test_esbuild.py @@ -196,6 +196,7 @@ def test_builds_args_from_config(self, osutils_mock): bundler_config = { "minify": True, "sourcemap": False, + "sources_content": "false", "format": "esm", "target": "node14", "loader": [".proto=text", ".json=js"], @@ -216,6 +217,7 @@ def test_builds_args_from_config(self, osutils_mock): "--target=node14", "--format=esm", "--main-fields=module,main", + "--sources-content=false", "--external:aws-sdk", "--external:axios", "--loader:.proto=text",