diff options
| author | David Sherret <dsherret@users.noreply.github.com> | 2023-12-01 15:12:10 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-01 20:12:10 +0000 |
| commit | a1d823e27d1b605b5658fddc1c9273667f0e9e84 (patch) | |
| tree | 213f35fb40b5c70832b1d9473947b3de48d4ec9e /cli/tests/testdata | |
| parent | d8e8497eb3049f58632e4d7507090ef9915b3af6 (diff) | |
feat(compile): support discovering modules for more dynamic arguments (#21381)
This PR causes Deno to include more files in the graph based on how a
template literal looks that's provided to a dynamic import:
```ts
const file = await import(`./dir/${expr}`);
```
In this case, it will search the `dir` directory and descendant
directories for any .js/jsx/etc modules and include them in the graph.
To opt out of this behaviour, move the template literal to a separate
line:
```ts
const specifier = `./dir/${expr}`
const file = await import(specifier);
```
Diffstat (limited to 'cli/tests/testdata')
9 files changed, 36 insertions, 1 deletions
diff --git a/cli/tests/testdata/compile/dynamic_imports_tmp_lit/main.info.out b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/main.info.out new file mode 100644 index 000000000..57d730a64 --- /dev/null +++ b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/main.info.out @@ -0,0 +1,10 @@ +local: [WILDCARD]main.js +type: JavaScript +dependencies: 4 unique +size: [WILDCARD] + +file:///[WILDCARD]/dynamic_imports_tmp_lit/main.js ([WILDCARD]) +├── file:///[WILDCARD]/dynamic_imports_tmp_lit/sub/a.js ([WILDCARD]) +├── file:///[WILDCARD]/dynamic_imports_tmp_lit/sub/b.ts ([WILDCARD]) +├── file:///[WILDCARD]/dynamic_imports_tmp_lit/other/data.json ([WILDCARD]) +└── file:///[WILDCARD]/dynamic_imports_tmp_lit/other/sub/data2.json ([WILDCARD]) diff --git a/cli/tests/testdata/compile/dynamic_imports_tmp_lit/main.js b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/main.js new file mode 100644 index 000000000..3bda59772 --- /dev/null +++ b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/main.js @@ -0,0 +1,14 @@ +const fileNames = [ + "a.js", + "b.ts", +]; + +for (const fileName of fileNames) { + await import(`./sub/${fileName}`); +} + +const jsonFileNames = ["data.json", "sub/data2.json"]; +for (const fileName of jsonFileNames) { + const mod = await import(`./other/${fileName}`, { with: { type: "json" } }); + console.log(mod.default); +} diff --git a/cli/tests/testdata/compile/dynamic_imports_tmp_lit/other/data.json b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/other/data.json new file mode 100644 index 000000000..0131e01e4 --- /dev/null +++ b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/other/data.json @@ -0,0 +1,3 @@ +{ + "data": 5 +} diff --git a/cli/tests/testdata/compile/dynamic_imports_tmp_lit/other/sub/data2.json b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/other/sub/data2.json new file mode 100644 index 000000000..858a13cdd --- /dev/null +++ b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/other/sub/data2.json @@ -0,0 +1,3 @@ +{ + "data": 1 +} diff --git a/cli/tests/testdata/compile/dynamic_imports_tmp_lit/sub/a.js b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/sub/a.js new file mode 100644 index 000000000..7b2a34601 --- /dev/null +++ b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/sub/a.js @@ -0,0 +1 @@ +console.log("a"); diff --git a/cli/tests/testdata/compile/dynamic_imports_tmp_lit/sub/b.ts b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/sub/b.ts new file mode 100644 index 000000000..6d012e7f1 --- /dev/null +++ b/cli/tests/testdata/compile/dynamic_imports_tmp_lit/sub/b.ts @@ -0,0 +1 @@ +console.log("b"); diff --git a/cli/tests/testdata/doc/lint_success_html.out b/cli/tests/testdata/doc/lint_success_html.out index 8c4c2d187..9503a335f 100644 --- a/cli/tests/testdata/doc/lint_success_html.out +++ b/cli/tests/testdata/doc/lint_success_html.out @@ -1 +1 @@ -Written 7 files to "./docs/" +Written 9 files to "./docs/" diff --git a/cli/tests/testdata/jsr/registry/@denotest/deps/1.0.0_meta.json b/cli/tests/testdata/jsr/registry/@denotest/deps/1.0.0_meta.json index f60c65026..914e4bd73 100644 --- a/cli/tests/testdata/jsr/registry/@denotest/deps/1.0.0_meta.json +++ b/cli/tests/testdata/jsr/registry/@denotest/deps/1.0.0_meta.json @@ -5,11 +5,13 @@ "moduleGraph1": { "/mod.ts": { "dependencies": [{ + "type": "static", "kind": "import", "range": [[0, 0], [0, 59]], "specifier": "jsr:@denotest/module_graph@1/other", "specifierRange": [[0, 22], [0, 58]] }, { + "type": "static", "kind": "import", "range": [[1, 0], [1, 57]], "specifier": "jsr:@denotest/no_module_graph@^0.1", diff --git a/cli/tests/testdata/jsr/registry/@denotest/module_graph/1.4.0_meta.json b/cli/tests/testdata/jsr/registry/@denotest/module_graph/1.4.0_meta.json index 8745d72b9..ff105b58a 100644 --- a/cli/tests/testdata/jsr/registry/@denotest/module_graph/1.4.0_meta.json +++ b/cli/tests/testdata/jsr/registry/@denotest/module_graph/1.4.0_meta.json @@ -7,6 +7,7 @@ "/mod.ts": { "dependencies": [{ "kind": "import", + "type": "static", "range": [[0, 0], [0, 35]], "specifier": "./other.ts", "specifierRange": [[0, 22], [0, 34]] |
