From f9007d3386bbe9f709ce413ac0cf099b86d4c4bf Mon Sep 17 00:00:00 2001 From: snek Date: Tue, 10 Sep 2024 13:12:36 -0700 Subject: feat: require(esm) (#25501) implement require(esm) using `op_import_sync` from deno_core. possible future changes: - cts and mts - replace Deno.core.evalContext to optimize esm syntax detection Fixes: https://github.com/denoland/deno/issues/25487 --- tests/testdata/node/require_esm/esm.js | 1 + tests/testdata/node/require_esm/main.out | 1 + tests/testdata/node/require_esm/main.ts | 5 +++++ tests/testdata/node/require_esm_error/esm.js | 1 - tests/testdata/node/require_esm_error/main.out | 3 --- tests/testdata/node/require_esm_error/main.ts | 5 ----- 6 files changed, 7 insertions(+), 9 deletions(-) create mode 100644 tests/testdata/node/require_esm/esm.js create mode 100644 tests/testdata/node/require_esm/main.out create mode 100644 tests/testdata/node/require_esm/main.ts delete mode 100644 tests/testdata/node/require_esm_error/esm.js delete mode 100644 tests/testdata/node/require_esm_error/main.out delete mode 100644 tests/testdata/node/require_esm_error/main.ts (limited to 'tests/testdata/node') diff --git a/tests/testdata/node/require_esm/esm.js b/tests/testdata/node/require_esm/esm.js new file mode 100644 index 000000000..0613f1911 --- /dev/null +++ b/tests/testdata/node/require_esm/esm.js @@ -0,0 +1 @@ +export class Test {} diff --git a/tests/testdata/node/require_esm/main.out b/tests/testdata/node/require_esm/main.out new file mode 100644 index 000000000..aab0d5c28 --- /dev/null +++ b/tests/testdata/node/require_esm/main.out @@ -0,0 +1 @@ +[Module: null prototype] { Test: [class Test] } diff --git a/tests/testdata/node/require_esm/main.ts b/tests/testdata/node/require_esm/main.ts new file mode 100644 index 000000000..67ac808f0 --- /dev/null +++ b/tests/testdata/node/require_esm/main.ts @@ -0,0 +1,5 @@ +import { createRequire } from "node:module"; + +const require = createRequire(import.meta.url); + +console.log(require("./esm.js")); diff --git a/tests/testdata/node/require_esm_error/esm.js b/tests/testdata/node/require_esm_error/esm.js deleted file mode 100644 index 0613f1911..000000000 --- a/tests/testdata/node/require_esm_error/esm.js +++ /dev/null @@ -1 +0,0 @@ -export class Test {} diff --git a/tests/testdata/node/require_esm_error/main.out b/tests/testdata/node/require_esm_error/main.out deleted file mode 100644 index 3db23ff24..000000000 --- a/tests/testdata/node/require_esm_error/main.out +++ /dev/null @@ -1,3 +0,0 @@ -error: Uncaught (in promise) Error: require() of ES Module [WILDCARD]esm.js from [WILDCARD]main.ts not supported. Instead change the require to a dynamic import() which is available in all CommonJS modules. - at [WILDCARD] - at file:///[WILDCARD]/require_esm_error/main.ts:5:1 diff --git a/tests/testdata/node/require_esm_error/main.ts b/tests/testdata/node/require_esm_error/main.ts deleted file mode 100644 index 612e91714..000000000 --- a/tests/testdata/node/require_esm_error/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { createRequire } from "node:module"; - -const require = createRequire(import.meta.url); - -require("./esm.js"); -- cgit v1.2.3