summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-07-17 17:17:58 -0400
committerGitHub <noreply@github.com>2023-07-17 17:17:58 -0400
commitb09af6a4244356485054948499dba5f94d8814f4 (patch)
tree1663deddf06f2267caaffc1084e7e15af48196ac /cli
parent298e4149368b23fee573fa27f1a00e0c50828c8c (diff)
fix(npm): support dynamic import of Deno TS from npm package (#19858)
Closes #19843
Diffstat (limited to 'cli')
-rw-r--r--cli/tests/integration/npm_tests.rs7
-rw-r--r--cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/add.ts3
-rw-r--r--cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.out2
-rw-r--r--cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.ts8
-rw-r--r--cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/subtract.mts3
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/index.js3
-rw-r--r--cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/package.json5
7 files changed, 30 insertions, 1 deletions
diff --git a/cli/tests/integration/npm_tests.rs b/cli/tests/integration/npm_tests.rs
index 2f998e3a2..f1ba0cdfa 100644
--- a/cli/tests/integration/npm_tests.rs
+++ b/cli/tests/integration/npm_tests.rs
@@ -107,9 +107,14 @@ itest!(cjs_require_esm_mjs_error {
itest!(require_esm_error {
args: "run --allow-read --quiet node/require_esm_error/main.ts",
output: "node/require_esm_error/main.out",
+ exit_code: 1,
+});
+
+itest!(dynamic_import_deno_ts_from_npm {
+ args: "run --allow-read --quiet npm/dynamic_import_deno_ts_from_npm/main.ts",
+ output: "npm/dynamic_import_deno_ts_from_npm/main.out",
envs: env_vars_for_npm_tests(),
http_server: true,
- exit_code: 1,
});
itest!(translate_cjs_to_esm {
diff --git a/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/add.ts b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/add.ts
new file mode 100644
index 000000000..3b399665d
--- /dev/null
+++ b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/add.ts
@@ -0,0 +1,3 @@
+export function add(a: number, b: number) {
+ return a + b;
+}
diff --git a/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.out b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.out
new file mode 100644
index 000000000..81d7aba8a
--- /dev/null
+++ b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.out
@@ -0,0 +1,2 @@
+3
+-1
diff --git a/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.ts b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.ts
new file mode 100644
index 000000000..4d5deec48
--- /dev/null
+++ b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/main.ts
@@ -0,0 +1,8 @@
+import { dynamicImport } from "npm:@denotest/dynamic-import";
+
+const { add } = await dynamicImport(new URL("./add.ts", import.meta.url));
+console.log(add(1, 2));
+const { subtract } = await dynamicImport(
+ new URL("./subtract.mts", import.meta.url),
+);
+console.log(subtract(1, 2));
diff --git a/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/subtract.mts b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/subtract.mts
new file mode 100644
index 000000000..4bf634170
--- /dev/null
+++ b/cli/tests/testdata/npm/dynamic_import_deno_ts_from_npm/subtract.mts
@@ -0,0 +1,3 @@
+export function subtract(a: number, b: number) {
+ return a - b;
+}
diff --git a/cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/index.js b/cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/index.js
new file mode 100644
index 000000000..4dc3831f9
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/index.js
@@ -0,0 +1,3 @@
+export function dynamicImport(url) {
+ return import(url);
+}
diff --git a/cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/package.json b/cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/package.json
new file mode 100644
index 000000000..fa970177c
--- /dev/null
+++ b/cli/tests/testdata/npm/registry/@denotest/dynamic-import/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/dynamic-import",
+ "type": "module",
+ "version": "1.0.0"
+}