From 826e42a5b5880c974ae019a7a21aade6a718062c Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 1 Nov 2024 12:27:00 -0400 Subject: fix: improved support for cjs and cts modules (#26558) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * cts support * better cjs/cts type checking * deno compile cjs/cts support * More efficient detect cjs (going towards stabilization) * Determination of whether .js, .ts, .jsx, or .tsx is cjs or esm is only done after loading * Support `import x = require(...);` Co-authored-by: Bartek IwaƄczuk --- tests/integration/run_tests.rs | 3 +- .../npm/@denotest/type-commonjs/1.0.0/index.js | 6 +++- .../check/css_import/exists_run_with_check.out | 2 +- tests/specs/compile/cjs/__test__.jsonc | 24 +++++++++++++++ tests/specs/compile/cjs/add.cjs | 1 + tests/specs/compile/cjs/divide.cts | 1 + tests/specs/compile/cjs/main.js | 5 ++++ tests/specs/compile/cjs/multiply.cts | 4 +++ tests/specs/compile/cjs/output.out | 2 ++ tests/specs/compile/cjs/reexport.cjs | 1 + tests/specs/compile/detect_cjs/__test__.jsonc | 11 ++++--- tests/specs/compile/detect_cjs/add.js | 2 +- tests/specs/compile/detect_cjs/compile.out | 1 - tests/specs/compile/detect_cjs/output.out | 3 +- tests/specs/compile/detect_cjs/package.json | 5 +++- tests/specs/compile/detect_cjs/subtract.ts | 2 ++ .../specs/npm/require_type_commonjs/__test__.jsonc | 3 +- tests/specs/npm/require_type_commonjs/main.out | 5 +--- tests/specs/npm/require_type_commonjs/main.ts | 3 +- .../npm/typescript_file_in_package/__test__.jsonc | 4 +-- .../specs/npm/typescript_file_in_package/main.out | 3 ++ tests/specs/npm/typescript_file_in_package/main.ts | 5 ++++ .../typescript_file_in_package/main.out | 6 ---- .../typescript_file_in_package/main.ts | 5 ---- tests/specs/run/cjs/main_module/__test__.jsonc | 4 +++ tests/specs/run/cjs/main_module/main.cjs | 1 + tests/specs/run/cjs/main_module/main.out | 5 ++++ .../run/cjs/reexport_non_analyzable/__test__.jsonc | 9 ++++++ .../run/cjs/reexport_non_analyzable/deno.json | 3 ++ .../specs/run/cjs/reexport_non_analyzable/main.ts | 3 ++ .../reexport_non_analyzable/node_modules/foo.cjs | 5 ++++ tests/specs/run/cjs/unprepared/__test__.jsonc | 4 +++ tests/specs/run/cjs/unprepared/file.cjs | 7 +++++ tests/specs/run/cjs/unprepared/main.out | 1 + tests/specs/run/cjs/unprepared/main.ts | 7 +++++ tests/specs/run/cjs/unprepared/output.cjs | 3 ++ .../run/cjs_reexport_non_analyzable/__test__.jsonc | 9 ------ .../run/cjs_reexport_non_analyzable/deno.json | 3 -- .../specs/run/cjs_reexport_non_analyzable/main.ts | 3 -- .../node_modules/foo.cjs | 5 ---- tests/specs/run/cts/cjs_import_cts/__test__.jsonc | 13 +++++++++ tests/specs/run/cts/cjs_import_cts/add.cts | 3 ++ tests/specs/run/cts/cjs_import_cts/check.out | 17 +++++++++++ tests/specs/run/cts/cjs_import_cts/main.js | 3 ++ tests/specs/run/cts/cjs_import_cts/main.out | 1 + tests/specs/run/cts/cjs_import_cts/subtract.cjs | 3 ++ .../run/cts/import_export_equals/__test__.jsonc | 17 +++++++++++ tests/specs/run/cts/import_export_equals/add.cts | 3 ++ tests/specs/run/cts/import_export_equals/main.cts | 3 ++ tests/specs/run/cts/import_export_equals/main.out | 2 ++ tests/specs/run/cts/import_export_equals/mod.mts | 3 ++ .../run/cts/import_export_equals/mod.mts.check.out | 5 ++++ .../specs/run/cts/import_export_equals/mod.mts.out | 1 + tests/specs/run/cts/main/__test__.jsonc | 4 +++ tests/specs/run/cts/main/import_main.cjs | 1 + tests/specs/run/cts/main/main.cts | 5 ++++ tests/specs/run/cts/main/main.out | 1 + .../run/package_json_type/commonjs/__test__.jsonc | 34 ---------------------- tests/specs/run/package_json_type/commonjs/add.js | 3 -- .../commonjs/basic/__test__.jsonc | 34 ++++++++++++++++++++++ .../run/package_json_type/commonjs/basic/add.js | 3 ++ .../package_json_type/commonjs/basic/deno.jsonc | 5 ++++ .../commonjs/basic/import_import_meta.js | 3 ++ .../commonjs/basic/import_meta.js | 1 + .../package_json_type/commonjs/basic/main_cjs.js | 2 ++ .../package_json_type/commonjs/basic/main_esm.js | 3 ++ .../commonjs/basic/main_esm_import_meta.js | 2 ++ .../commonjs/basic/main_esm_import_meta.out | 2 ++ .../package_json_type/commonjs/basic/main_mix.js | 6 ++++ .../package_json_type/commonjs/basic/main_mix.out | 13 +++++++++ .../commonjs/basic/not_import_meta.js | 8 +++++ .../package_json_type/commonjs/basic/package.json | 3 ++ .../run/package_json_type/commonjs/basic/tla.js | 2 ++ .../run/package_json_type/commonjs/deno.jsonc | 5 ---- .../commonjs/import_import_meta.js | 3 -- .../run/package_json_type/commonjs/import_meta.js | 1 - .../package_json_type/commonjs/jsx/__test__.jsonc | 5 ++++ .../run/package_json_type/commonjs/jsx/add.js | 3 ++ .../run/package_json_type/commonjs/jsx/deno.jsonc | 10 +++++++ .../run/package_json_type/commonjs/jsx/main.jsx | 7 +++++ .../run/package_json_type/commonjs/jsx/main.out | 4 +++ .../package_json_type/commonjs/jsx/package.json | 7 +++++ .../run/package_json_type/commonjs/jsx/tsx.tsx | 5 ++++ .../run/package_json_type/commonjs/main_cjs.js | 2 -- .../run/package_json_type/commonjs/main_esm.js | 3 -- .../commonjs/main_esm_import_meta.js | 2 -- .../commonjs/main_esm_import_meta.out | 2 -- .../run/package_json_type/commonjs/main_mix.js | 6 ---- .../run/package_json_type/commonjs/main_mix.out | 13 --------- .../package_json_type/commonjs/not_import_meta.js | 8 ----- .../run/package_json_type/commonjs/package.json | 3 -- tests/specs/run/package_json_type/commonjs/tla.js | 2 -- tests/specs/run/remote_cjs_main/output.out | 2 +- tests/specs/run/require_esm/main.out | 2 +- .../npm/deno_run_cowsay_no_permissions.out | 2 +- 95 files changed, 343 insertions(+), 142 deletions(-) create mode 100644 tests/specs/compile/cjs/__test__.jsonc create mode 100644 tests/specs/compile/cjs/add.cjs create mode 100644 tests/specs/compile/cjs/divide.cts create mode 100644 tests/specs/compile/cjs/main.js create mode 100644 tests/specs/compile/cjs/multiply.cts create mode 100644 tests/specs/compile/cjs/output.out create mode 100644 tests/specs/compile/cjs/reexport.cjs create mode 100644 tests/specs/compile/detect_cjs/subtract.ts create mode 100644 tests/specs/npm/typescript_file_in_package/main.out create mode 100644 tests/specs/npm/typescript_file_in_package/main.ts delete mode 100644 tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.out delete mode 100644 tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.ts create mode 100644 tests/specs/run/cjs/main_module/__test__.jsonc create mode 100644 tests/specs/run/cjs/main_module/main.cjs create mode 100644 tests/specs/run/cjs/main_module/main.out create mode 100644 tests/specs/run/cjs/reexport_non_analyzable/__test__.jsonc create mode 100644 tests/specs/run/cjs/reexport_non_analyzable/deno.json create mode 100644 tests/specs/run/cjs/reexport_non_analyzable/main.ts create mode 100644 tests/specs/run/cjs/reexport_non_analyzable/node_modules/foo.cjs create mode 100644 tests/specs/run/cjs/unprepared/__test__.jsonc create mode 100644 tests/specs/run/cjs/unprepared/file.cjs create mode 100644 tests/specs/run/cjs/unprepared/main.out create mode 100644 tests/specs/run/cjs/unprepared/main.ts create mode 100644 tests/specs/run/cjs/unprepared/output.cjs delete mode 100644 tests/specs/run/cjs_reexport_non_analyzable/__test__.jsonc delete mode 100644 tests/specs/run/cjs_reexport_non_analyzable/deno.json delete mode 100644 tests/specs/run/cjs_reexport_non_analyzable/main.ts delete mode 100644 tests/specs/run/cjs_reexport_non_analyzable/node_modules/foo.cjs create mode 100644 tests/specs/run/cts/cjs_import_cts/__test__.jsonc create mode 100644 tests/specs/run/cts/cjs_import_cts/add.cts create mode 100644 tests/specs/run/cts/cjs_import_cts/check.out create mode 100644 tests/specs/run/cts/cjs_import_cts/main.js create mode 100644 tests/specs/run/cts/cjs_import_cts/main.out create mode 100644 tests/specs/run/cts/cjs_import_cts/subtract.cjs create mode 100644 tests/specs/run/cts/import_export_equals/__test__.jsonc create mode 100644 tests/specs/run/cts/import_export_equals/add.cts create mode 100644 tests/specs/run/cts/import_export_equals/main.cts create mode 100644 tests/specs/run/cts/import_export_equals/main.out create mode 100644 tests/specs/run/cts/import_export_equals/mod.mts create mode 100644 tests/specs/run/cts/import_export_equals/mod.mts.check.out create mode 100644 tests/specs/run/cts/import_export_equals/mod.mts.out create mode 100644 tests/specs/run/cts/main/__test__.jsonc create mode 100644 tests/specs/run/cts/main/import_main.cjs create mode 100644 tests/specs/run/cts/main/main.cts create mode 100644 tests/specs/run/cts/main/main.out delete mode 100644 tests/specs/run/package_json_type/commonjs/__test__.jsonc delete mode 100644 tests/specs/run/package_json_type/commonjs/add.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/__test__.jsonc create mode 100644 tests/specs/run/package_json_type/commonjs/basic/add.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/deno.jsonc create mode 100644 tests/specs/run/package_json_type/commonjs/basic/import_import_meta.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/import_meta.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/main_cjs.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/main_esm.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.out create mode 100644 tests/specs/run/package_json_type/commonjs/basic/main_mix.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/main_mix.out create mode 100644 tests/specs/run/package_json_type/commonjs/basic/not_import_meta.js create mode 100644 tests/specs/run/package_json_type/commonjs/basic/package.json create mode 100644 tests/specs/run/package_json_type/commonjs/basic/tla.js delete mode 100644 tests/specs/run/package_json_type/commonjs/deno.jsonc delete mode 100644 tests/specs/run/package_json_type/commonjs/import_import_meta.js delete mode 100644 tests/specs/run/package_json_type/commonjs/import_meta.js create mode 100644 tests/specs/run/package_json_type/commonjs/jsx/__test__.jsonc create mode 100644 tests/specs/run/package_json_type/commonjs/jsx/add.js create mode 100644 tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc create mode 100644 tests/specs/run/package_json_type/commonjs/jsx/main.jsx create mode 100644 tests/specs/run/package_json_type/commonjs/jsx/main.out create mode 100644 tests/specs/run/package_json_type/commonjs/jsx/package.json create mode 100644 tests/specs/run/package_json_type/commonjs/jsx/tsx.tsx delete mode 100644 tests/specs/run/package_json_type/commonjs/main_cjs.js delete mode 100644 tests/specs/run/package_json_type/commonjs/main_esm.js delete mode 100644 tests/specs/run/package_json_type/commonjs/main_esm_import_meta.js delete mode 100644 tests/specs/run/package_json_type/commonjs/main_esm_import_meta.out delete mode 100644 tests/specs/run/package_json_type/commonjs/main_mix.js delete mode 100644 tests/specs/run/package_json_type/commonjs/main_mix.out delete mode 100644 tests/specs/run/package_json_type/commonjs/not_import_meta.js delete mode 100644 tests/specs/run/package_json_type/commonjs/package.json delete mode 100644 tests/specs/run/package_json_type/commonjs/tla.js (limited to 'tests') diff --git a/tests/integration/run_tests.rs b/tests/integration/run_tests.rs index db9f79556..a07dd56c8 100644 --- a/tests/integration/run_tests.rs +++ b/tests/integration/run_tests.rs @@ -3605,7 +3605,8 @@ fn running_declaration_files() { temp_dir.write(file, ""); context .new_command() - .args_vec(["run", file]) + // todo(dsherret): investigate why --allow-read is required here + .args_vec(["run", "--allow-read", file]) .run() .skip_output_check() .assert_exit_code(0); diff --git a/tests/registry/npm/@denotest/type-commonjs/1.0.0/index.js b/tests/registry/npm/@denotest/type-commonjs/1.0.0/index.js index cb0ff5c3b..d3f80a049 100644 --- a/tests/registry/npm/@denotest/type-commonjs/1.0.0/index.js +++ b/tests/registry/npm/@denotest/type-commonjs/1.0.0/index.js @@ -1 +1,5 @@ -export {}; +// this module is declared as CommonJS, but during loading we'll +// discover it's ESM and load it fine +export function add(a, b) { + return a + b; +} diff --git a/tests/specs/check/css_import/exists_run_with_check.out b/tests/specs/check/css_import/exists_run_with_check.out index 1a1dafeb7..315769e40 100644 --- a/tests/specs/check/css_import/exists_run_with_check.out +++ b/tests/specs/check/css_import/exists_run_with_check.out @@ -1,3 +1,3 @@ -error: Expected a JavaScript or TypeScript module, but identified a Unknown module. Importing these types of modules is currently not supported. +error: Expected a JavaScript or TypeScript module, but identified a Css module. Importing these types of modules is currently not supported. Specifier: file:///[WILDLINE]/app.css at file:///[WILDLINE]/exists.ts:2:8 diff --git a/tests/specs/compile/cjs/__test__.jsonc b/tests/specs/compile/cjs/__test__.jsonc new file mode 100644 index 000000000..9bdcf4724 --- /dev/null +++ b/tests/specs/compile/cjs/__test__.jsonc @@ -0,0 +1,24 @@ +{ + "tempDir": true, + "steps": [{ + "if": "unix", + "args": "compile --output main main.js", + "output": "[WILDCARD]" + }, { + "if": "unix", + "commandName": "./main", + "args": [], + "output": "output.out", + "exitCode": 0 + }, { + "if": "windows", + "args": "compile --output main.exe main.js", + "output": "[WILDCARD]" + }, { + "if": "windows", + "commandName": "./main.exe", + "args": [], + "output": "output.out", + "exitCode": 0 + }] +} diff --git a/tests/specs/compile/cjs/add.cjs b/tests/specs/compile/cjs/add.cjs new file mode 100644 index 000000000..bf9060126 --- /dev/null +++ b/tests/specs/compile/cjs/add.cjs @@ -0,0 +1 @@ +module.exports = (a, b) => a + b; diff --git a/tests/specs/compile/cjs/divide.cts b/tests/specs/compile/cjs/divide.cts new file mode 100644 index 000000000..d89a600a4 --- /dev/null +++ b/tests/specs/compile/cjs/divide.cts @@ -0,0 +1 @@ +module.exports.divide = (a: number, b: number) => a / b; diff --git a/tests/specs/compile/cjs/main.js b/tests/specs/compile/cjs/main.js new file mode 100644 index 000000000..c2a8c7be0 --- /dev/null +++ b/tests/specs/compile/cjs/main.js @@ -0,0 +1,5 @@ +import { add } from "./reexport.cjs"; +import { multiply } from "./multiply.cts"; + +console.log(add(1, 2)); +console.log(multiply(2, 3)); diff --git a/tests/specs/compile/cjs/multiply.cts b/tests/specs/compile/cjs/multiply.cts new file mode 100644 index 000000000..3c0618cfc --- /dev/null +++ b/tests/specs/compile/cjs/multiply.cts @@ -0,0 +1,4 @@ +/// +exports.multiply = function (a: number, b: number): number { + return require("./divide.cts").divide(a, 1 / b); +}; diff --git a/tests/specs/compile/cjs/output.out b/tests/specs/compile/cjs/output.out new file mode 100644 index 000000000..2559e5c49 --- /dev/null +++ b/tests/specs/compile/cjs/output.out @@ -0,0 +1,2 @@ +3 +6 diff --git a/tests/specs/compile/cjs/reexport.cjs b/tests/specs/compile/cjs/reexport.cjs new file mode 100644 index 000000000..af7cecfdf --- /dev/null +++ b/tests/specs/compile/cjs/reexport.cjs @@ -0,0 +1 @@ +module.exports.add = require("./add.cjs"); diff --git a/tests/specs/compile/detect_cjs/__test__.jsonc b/tests/specs/compile/detect_cjs/__test__.jsonc index 32bebb7a5..0abf121f0 100644 --- a/tests/specs/compile/detect_cjs/__test__.jsonc +++ b/tests/specs/compile/detect_cjs/__test__.jsonc @@ -1,24 +1,27 @@ { "tempDir": true, "steps": [{ + "args": "install", + "output": "[WILDCARD]" + }, { "if": "unix", - "args": "compile --allow-read --output main main.js", + "args": "compile --output main main.js", "output": "compile.out" }, { "if": "unix", "commandName": "./main", "args": [], "output": "output.out", - "exitCode": 1 + "exitCode": 0 }, { "if": "windows", - "args": "compile --allow-read --output main.exe main.js", + "args": "compile --output main.exe main.js", "output": "compile.out" }, { "if": "windows", "commandName": "./main.exe", "args": [], "output": "output.out", - "exitCode": 1 + "exitCode": 0 }] } diff --git a/tests/specs/compile/detect_cjs/add.js b/tests/specs/compile/detect_cjs/add.js index 2a886fbc1..94b0263f0 100644 --- a/tests/specs/compile/detect_cjs/add.js +++ b/tests/specs/compile/detect_cjs/add.js @@ -1,3 +1,3 @@ module.exports.add = function (a, b) { - return a + b; + return require("./subtract.ts").subtract(a, -b); }; diff --git a/tests/specs/compile/detect_cjs/compile.out b/tests/specs/compile/detect_cjs/compile.out index 6509b7f29..913e363c3 100644 --- a/tests/specs/compile/detect_cjs/compile.out +++ b/tests/specs/compile/detect_cjs/compile.out @@ -1,3 +1,2 @@ -Warning --unstable-detect-cjs is not properly supported in deno compile. The compiled executable may encounter runtime errors. Check file:///[WILDLINE]/main.js Compile file:///[WILDLINE] diff --git a/tests/specs/compile/detect_cjs/output.out b/tests/specs/compile/detect_cjs/output.out index e1c27b8dc..00750edc0 100644 --- a/tests/specs/compile/detect_cjs/output.out +++ b/tests/specs/compile/detect_cjs/output.out @@ -1,2 +1 @@ -error: Uncaught SyntaxError: The requested module './add.js' does not provide an export named 'add' - at (file:///[WILDLINE]) +3 diff --git a/tests/specs/compile/detect_cjs/package.json b/tests/specs/compile/detect_cjs/package.json index 5bbefffba..6e65b32ed 100644 --- a/tests/specs/compile/detect_cjs/package.json +++ b/tests/specs/compile/detect_cjs/package.json @@ -1,3 +1,6 @@ { - "type": "commonjs" + "type": "commonjs", + "dependencies": { + "@types/node": "*" + } } diff --git a/tests/specs/compile/detect_cjs/subtract.ts b/tests/specs/compile/detect_cjs/subtract.ts new file mode 100644 index 000000000..e4f6760b7 --- /dev/null +++ b/tests/specs/compile/detect_cjs/subtract.ts @@ -0,0 +1,2 @@ +/// +module.exports.subtract = (a: number, b: number) => a - b; diff --git a/tests/specs/npm/require_type_commonjs/__test__.jsonc b/tests/specs/npm/require_type_commonjs/__test__.jsonc index c9ba97ff5..a71173ce3 100644 --- a/tests/specs/npm/require_type_commonjs/__test__.jsonc +++ b/tests/specs/npm/require_type_commonjs/__test__.jsonc @@ -1,5 +1,4 @@ { "args": "run --allow-read --quiet main.ts", - "output": "main.out", - "exitCode": 1 + "output": "main.out" } diff --git a/tests/specs/npm/require_type_commonjs/main.out b/tests/specs/npm/require_type_commonjs/main.out index d715db8a9..00750edc0 100644 --- a/tests/specs/npm/require_type_commonjs/main.out +++ b/tests/specs/npm/require_type_commonjs/main.out @@ -1,4 +1 @@ -error: 'import', and 'export' cannot be used outside of module code at file://[WILDCARD]/@denotest/type-commonjs/1.0.0/index.js:1:1 - - export {}; - ~~~~~~ +3 diff --git a/tests/specs/npm/require_type_commonjs/main.ts b/tests/specs/npm/require_type_commonjs/main.ts index 243eb216e..95ec6099e 100644 --- a/tests/specs/npm/require_type_commonjs/main.ts +++ b/tests/specs/npm/require_type_commonjs/main.ts @@ -1 +1,2 @@ -import "npm:@denotest/type-commonjs"; +import { add } from "npm:@denotest/type-commonjs"; +console.log(add(1, 2)); diff --git a/tests/specs/npm/typescript_file_in_package/__test__.jsonc b/tests/specs/npm/typescript_file_in_package/__test__.jsonc index 08979ed25..7b5c5e1b6 100644 --- a/tests/specs/npm/typescript_file_in_package/__test__.jsonc +++ b/tests/specs/npm/typescript_file_in_package/__test__.jsonc @@ -1,5 +1,5 @@ { - "args": "run typescript_file_in_package/main.ts", - "output": "typescript_file_in_package/main.out", + "args": "run main.ts", + "output": "main.out", "exitCode": 1 } diff --git a/tests/specs/npm/typescript_file_in_package/main.out b/tests/specs/npm/typescript_file_in_package/main.out new file mode 100644 index 000000000..58290a873 --- /dev/null +++ b/tests/specs/npm/typescript_file_in_package/main.out @@ -0,0 +1,3 @@ +Download http://localhost:4260/@denotest%2ftypescript-file +Download http://localhost:4260/@denotest/typescript-file/1.0.0.tgz +error: TypeScript files are not supported in npm packages: file:///[WILDCARD]/@denotest/typescript-file/1.0.0/index.ts diff --git a/tests/specs/npm/typescript_file_in_package/main.ts b/tests/specs/npm/typescript_file_in_package/main.ts new file mode 100644 index 000000000..aefc38ebe --- /dev/null +++ b/tests/specs/npm/typescript_file_in_package/main.ts @@ -0,0 +1,5 @@ +// We don't support typescript files in npm packages because we don't +// want to encourage people distributing npm packages that aren't JavaScript. +import { getValue } from "npm:@denotest/typescript-file"; + +console.log(getValue()); diff --git a/tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.out b/tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.out deleted file mode 100644 index b3faa8790..000000000 --- a/tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.out +++ /dev/null @@ -1,6 +0,0 @@ -Download http://localhost:4260/@denotest%2ftypescript-file -Download http://localhost:4260/@denotest/typescript-file/1.0.0.tgz -error: Could not resolve 'npm:@denotest/typescript-file@1.0.0'. - -Caused by: - TypeScript files are not supported in npm packages: file:///[WILDCARD]/@denotest/typescript-file/1.0.0/index.ts diff --git a/tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.ts b/tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.ts deleted file mode 100644 index aefc38ebe..000000000 --- a/tests/specs/npm/typescript_file_in_package/typescript_file_in_package/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -// We don't support typescript files in npm packages because we don't -// want to encourage people distributing npm packages that aren't JavaScript. -import { getValue } from "npm:@denotest/typescript-file"; - -console.log(getValue()); diff --git a/tests/specs/run/cjs/main_module/__test__.jsonc b/tests/specs/run/cjs/main_module/__test__.jsonc new file mode 100644 index 000000000..e756a6362 --- /dev/null +++ b/tests/specs/run/cjs/main_module/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --allow-read main.cjs", + "output": "main.out" +} diff --git a/tests/specs/run/cjs/main_module/main.cjs b/tests/specs/run/cjs/main_module/main.cjs new file mode 100644 index 000000000..2a4c57ab1 --- /dev/null +++ b/tests/specs/run/cjs/main_module/main.cjs @@ -0,0 +1 @@ +console.log(require.main); diff --git a/tests/specs/run/cjs/main_module/main.out b/tests/specs/run/cjs/main_module/main.out new file mode 100644 index 000000000..93b86d27e --- /dev/null +++ b/tests/specs/run/cjs/main_module/main.out @@ -0,0 +1,5 @@ +Module { + id: ".", + [WILDCARD] + filename: "[WILDCARD]main.cjs", +[WILDCARD] \ No newline at end of file diff --git a/tests/specs/run/cjs/reexport_non_analyzable/__test__.jsonc b/tests/specs/run/cjs/reexport_non_analyzable/__test__.jsonc new file mode 100644 index 000000000..81f29b685 --- /dev/null +++ b/tests/specs/run/cjs/reexport_non_analyzable/__test__.jsonc @@ -0,0 +1,9 @@ +{ + "tempDir": true, + "steps": [ + { + "args": "run -A main.ts", + "output": "" + } + ] +} diff --git a/tests/specs/run/cjs/reexport_non_analyzable/deno.json b/tests/specs/run/cjs/reexport_non_analyzable/deno.json new file mode 100644 index 000000000..fde86a1ef --- /dev/null +++ b/tests/specs/run/cjs/reexport_non_analyzable/deno.json @@ -0,0 +1,3 @@ +{ + "nodeModulesDir": "manual" +} diff --git a/tests/specs/run/cjs/reexport_non_analyzable/main.ts b/tests/specs/run/cjs/reexport_non_analyzable/main.ts new file mode 100644 index 000000000..a9e32af4e --- /dev/null +++ b/tests/specs/run/cjs/reexport_non_analyzable/main.ts @@ -0,0 +1,3 @@ +import assert from "./node_modules/foo.cjs"; + +assert.equal(1 + 1, 2); diff --git a/tests/specs/run/cjs/reexport_non_analyzable/node_modules/foo.cjs b/tests/specs/run/cjs/reexport_non_analyzable/node_modules/foo.cjs new file mode 100644 index 000000000..924d8a96a --- /dev/null +++ b/tests/specs/run/cjs/reexport_non_analyzable/node_modules/foo.cjs @@ -0,0 +1,5 @@ +try { + module.exports = require("nonexistent"); +} catch(_e) { + module.exports = require("assert"); +} diff --git a/tests/specs/run/cjs/unprepared/__test__.jsonc b/tests/specs/run/cjs/unprepared/__test__.jsonc new file mode 100644 index 000000000..f816bad86 --- /dev/null +++ b/tests/specs/run/cjs/unprepared/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run -A main.ts", + "output": "main.out" +} diff --git a/tests/specs/run/cjs/unprepared/file.cjs b/tests/specs/run/cjs/unprepared/file.cjs new file mode 100644 index 000000000..ba0c6fa6f --- /dev/null +++ b/tests/specs/run/cjs/unprepared/file.cjs @@ -0,0 +1,7 @@ +// non-analyzable +const moduleName = "./output.cjs"; +function getModuleName() { + return moduleName; +} + +require(getModuleName()); diff --git a/tests/specs/run/cjs/unprepared/main.out b/tests/specs/run/cjs/unprepared/main.out new file mode 100644 index 000000000..e965047ad --- /dev/null +++ b/tests/specs/run/cjs/unprepared/main.out @@ -0,0 +1 @@ +Hello diff --git a/tests/specs/run/cjs/unprepared/main.ts b/tests/specs/run/cjs/unprepared/main.ts new file mode 100644 index 000000000..5630b4fbc --- /dev/null +++ b/tests/specs/run/cjs/unprepared/main.ts @@ -0,0 +1,7 @@ +// non-analyzable +const moduleName = "./output.cjs"; +function getModuleName() { + return moduleName; +} + +await import(getModuleName()); diff --git a/tests/specs/run/cjs/unprepared/output.cjs b/tests/specs/run/cjs/unprepared/output.cjs new file mode 100644 index 000000000..54ed3702f --- /dev/null +++ b/tests/specs/run/cjs/unprepared/output.cjs @@ -0,0 +1,3 @@ +console.log("Hello"); + +module.exports = 1; diff --git a/tests/specs/run/cjs_reexport_non_analyzable/__test__.jsonc b/tests/specs/run/cjs_reexport_non_analyzable/__test__.jsonc deleted file mode 100644 index 81f29b685..000000000 --- a/tests/specs/run/cjs_reexport_non_analyzable/__test__.jsonc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "tempDir": true, - "steps": [ - { - "args": "run -A main.ts", - "output": "" - } - ] -} diff --git a/tests/specs/run/cjs_reexport_non_analyzable/deno.json b/tests/specs/run/cjs_reexport_non_analyzable/deno.json deleted file mode 100644 index fde86a1ef..000000000 --- a/tests/specs/run/cjs_reexport_non_analyzable/deno.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "nodeModulesDir": "manual" -} diff --git a/tests/specs/run/cjs_reexport_non_analyzable/main.ts b/tests/specs/run/cjs_reexport_non_analyzable/main.ts deleted file mode 100644 index a9e32af4e..000000000 --- a/tests/specs/run/cjs_reexport_non_analyzable/main.ts +++ /dev/null @@ -1,3 +0,0 @@ -import assert from "./node_modules/foo.cjs"; - -assert.equal(1 + 1, 2); diff --git a/tests/specs/run/cjs_reexport_non_analyzable/node_modules/foo.cjs b/tests/specs/run/cjs_reexport_non_analyzable/node_modules/foo.cjs deleted file mode 100644 index 924d8a96a..000000000 --- a/tests/specs/run/cjs_reexport_non_analyzable/node_modules/foo.cjs +++ /dev/null @@ -1,5 +0,0 @@ -try { - module.exports = require("nonexistent"); -} catch(_e) { - module.exports = require("assert"); -} diff --git a/tests/specs/run/cts/cjs_import_cts/__test__.jsonc b/tests/specs/run/cts/cjs_import_cts/__test__.jsonc new file mode 100644 index 000000000..2205183d0 --- /dev/null +++ b/tests/specs/run/cts/cjs_import_cts/__test__.jsonc @@ -0,0 +1,13 @@ +{ + "tests": { + "no_check": { + "args": "run --allow-read main.js", + "output": "main.out" + }, + "check": { + "args": "check main.js", + "output": "check.out", + "exitCode": 1 + } + } +} diff --git a/tests/specs/run/cts/cjs_import_cts/add.cts b/tests/specs/run/cts/cjs_import_cts/add.cts new file mode 100644 index 000000000..2a886fbc1 --- /dev/null +++ b/tests/specs/run/cts/cjs_import_cts/add.cts @@ -0,0 +1,3 @@ +module.exports.add = function (a, b) { + return a + b; +}; diff --git a/tests/specs/run/cts/cjs_import_cts/check.out b/tests/specs/run/cts/cjs_import_cts/check.out new file mode 100644 index 000000000..a27e8d7af --- /dev/null +++ b/tests/specs/run/cts/cjs_import_cts/check.out @@ -0,0 +1,17 @@ +Check file:///[WILDLINE]main.js +error: TS2580 [ERROR]: Cannot find name 'module'. +module.exports.add = function (a, b) { +~~~~~~ + at file:///[WILDLINE] + +TS7006 [ERROR]: Parameter 'a' implicitly has an 'any' type. +module.exports.add = function (a, b) { + ^ + at file:///[WILDLINE] + +TS7006 [ERROR]: Parameter 'b' implicitly has an 'any' type. +module.exports.add = function (a, b) { + ^ + at file:///[WILDLINE] + +Found 3 errors. diff --git a/tests/specs/run/cts/cjs_import_cts/main.js b/tests/specs/run/cts/cjs_import_cts/main.js new file mode 100644 index 000000000..9546a0fea --- /dev/null +++ b/tests/specs/run/cts/cjs_import_cts/main.js @@ -0,0 +1,3 @@ +import { subtract } from "./subtract.cjs"; + +console.log(subtract(1, 2)); diff --git a/tests/specs/run/cts/cjs_import_cts/main.out b/tests/specs/run/cts/cjs_import_cts/main.out new file mode 100644 index 000000000..3a2e3f498 --- /dev/null +++ b/tests/specs/run/cts/cjs_import_cts/main.out @@ -0,0 +1 @@ +-1 diff --git a/tests/specs/run/cts/cjs_import_cts/subtract.cjs b/tests/specs/run/cts/cjs_import_cts/subtract.cjs new file mode 100644 index 000000000..7dee54346 --- /dev/null +++ b/tests/specs/run/cts/cjs_import_cts/subtract.cjs @@ -0,0 +1,3 @@ +module.exports.subtract = function (a, b) { + return require("./add.cts").add(a, -b); +}; diff --git a/tests/specs/run/cts/import_export_equals/__test__.jsonc b/tests/specs/run/cts/import_export_equals/__test__.jsonc new file mode 100644 index 000000000..6a5c6db42 --- /dev/null +++ b/tests/specs/run/cts/import_export_equals/__test__.jsonc @@ -0,0 +1,17 @@ +{ + "tests": { + "main": { + "args": "run --check --allow-read=. main.cts", + "output": "main.out" + }, + "mts": { + "args": "run --allow-read=. mod.mts", + "output": "mod.mts.out" + }, + "mts_check": { + "args": "check mod.mts", + "output": "mod.mts.check.out", + "exitCode": 1 + } + } +} diff --git a/tests/specs/run/cts/import_export_equals/add.cts b/tests/specs/run/cts/import_export_equals/add.cts new file mode 100644 index 000000000..adf3503ac --- /dev/null +++ b/tests/specs/run/cts/import_export_equals/add.cts @@ -0,0 +1,3 @@ +export = function (a: number, b: number) { + return a + b; +}; diff --git a/tests/specs/run/cts/import_export_equals/main.cts b/tests/specs/run/cts/import_export_equals/main.cts new file mode 100644 index 000000000..e5c45f92e --- /dev/null +++ b/tests/specs/run/cts/import_export_equals/main.cts @@ -0,0 +1,3 @@ +import add = require("./add.cts"); + +console.log(add(1, 2)); diff --git a/tests/specs/run/cts/import_export_equals/main.out b/tests/specs/run/cts/import_export_equals/main.out new file mode 100644 index 000000000..e7a973a7d --- /dev/null +++ b/tests/specs/run/cts/import_export_equals/main.out @@ -0,0 +1,2 @@ +Check file:///[WILDLINE]/main.cts +3 diff --git a/tests/specs/run/cts/import_export_equals/mod.mts b/tests/specs/run/cts/import_export_equals/mod.mts new file mode 100644 index 000000000..5fbbd6c6a --- /dev/null +++ b/tests/specs/run/cts/import_export_equals/mod.mts @@ -0,0 +1,3 @@ +import add from "./add.cts"; + +console.log(add(1, "test")); diff --git a/tests/specs/run/cts/import_export_equals/mod.mts.check.out b/tests/specs/run/cts/import_export_equals/mod.mts.check.out new file mode 100644 index 000000000..870353901 --- /dev/null +++ b/tests/specs/run/cts/import_export_equals/mod.mts.check.out @@ -0,0 +1,5 @@ +Check file:///[WILDLINE]/mod.mts +error: TS2345 [ERROR]: Argument of type 'string' is not assignable to parameter of type 'number'. +console.log(add(1, "test")); + ~~~~~~ + at file:///[WILDLINE]/mod.mts:3:20 diff --git a/tests/specs/run/cts/import_export_equals/mod.mts.out b/tests/specs/run/cts/import_export_equals/mod.mts.out new file mode 100644 index 000000000..208465a08 --- /dev/null +++ b/tests/specs/run/cts/import_export_equals/mod.mts.out @@ -0,0 +1 @@ +1test diff --git a/tests/specs/run/cts/main/__test__.jsonc b/tests/specs/run/cts/main/__test__.jsonc new file mode 100644 index 000000000..0157b44e9 --- /dev/null +++ b/tests/specs/run/cts/main/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --allow-read main.cts", + "output": "main.out" +} diff --git a/tests/specs/run/cts/main/import_main.cjs b/tests/specs/run/cts/main/import_main.cjs new file mode 100644 index 000000000..f61e0da2a --- /dev/null +++ b/tests/specs/run/cts/main/import_main.cjs @@ -0,0 +1 @@ +require("./main.cts").sayHello(); diff --git a/tests/specs/run/cts/main/main.cts b/tests/specs/run/cts/main/main.cts new file mode 100644 index 000000000..0b0330686 --- /dev/null +++ b/tests/specs/run/cts/main/main.cts @@ -0,0 +1,5 @@ +module.exports.sayHello = function () { + console.log("Hello"); +}; + +require("./import_main.cjs"); diff --git a/tests/specs/run/cts/main/main.out b/tests/specs/run/cts/main/main.out new file mode 100644 index 000000000..e965047ad --- /dev/null +++ b/tests/specs/run/cts/main/main.out @@ -0,0 +1 @@ +Hello diff --git a/tests/specs/run/package_json_type/commonjs/__test__.jsonc b/tests/specs/run/package_json_type/commonjs/__test__.jsonc deleted file mode 100644 index 85b7219fa..000000000 --- a/tests/specs/run/package_json_type/commonjs/__test__.jsonc +++ /dev/null @@ -1,34 +0,0 @@ -{ - "tests": { - "main_cjs": { - "args": "run --allow-read=. main_cjs.js", - "output": "3\n" - }, - "main_esm": { - "args": "run --allow-read=. main_esm.js", - "output": "3\n" - }, - "main_mix": { - "args": "run --allow-read=. main_mix.js", - "output": "main_mix.out", - "exitCode": 1 - }, - "import_import_meta": { - "args": "run import_import_meta.js", - "output": "[WILDLINE]/import_meta.js\n" - }, - "main_import_meta": { - "args": "run main_esm_import_meta.js", - "output": "main_esm_import_meta.out", - "exitCode": 1 - }, - "not_import_meta": { - "args": "run --allow-read=. not_import_meta.js", - "output": "3\n" - }, - "tla": { - "args": "run --allow-read=. tla.js", - "output": "loaded\n" - } - } -} diff --git a/tests/specs/run/package_json_type/commonjs/add.js b/tests/specs/run/package_json_type/commonjs/add.js deleted file mode 100644 index 2a886fbc1..000000000 --- a/tests/specs/run/package_json_type/commonjs/add.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports.add = function (a, b) { - return a + b; -}; diff --git a/tests/specs/run/package_json_type/commonjs/basic/__test__.jsonc b/tests/specs/run/package_json_type/commonjs/basic/__test__.jsonc new file mode 100644 index 000000000..85b7219fa --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/__test__.jsonc @@ -0,0 +1,34 @@ +{ + "tests": { + "main_cjs": { + "args": "run --allow-read=. main_cjs.js", + "output": "3\n" + }, + "main_esm": { + "args": "run --allow-read=. main_esm.js", + "output": "3\n" + }, + "main_mix": { + "args": "run --allow-read=. main_mix.js", + "output": "main_mix.out", + "exitCode": 1 + }, + "import_import_meta": { + "args": "run import_import_meta.js", + "output": "[WILDLINE]/import_meta.js\n" + }, + "main_import_meta": { + "args": "run main_esm_import_meta.js", + "output": "main_esm_import_meta.out", + "exitCode": 1 + }, + "not_import_meta": { + "args": "run --allow-read=. not_import_meta.js", + "output": "3\n" + }, + "tla": { + "args": "run --allow-read=. tla.js", + "output": "loaded\n" + } + } +} diff --git a/tests/specs/run/package_json_type/commonjs/basic/add.js b/tests/specs/run/package_json_type/commonjs/basic/add.js new file mode 100644 index 000000000..2a886fbc1 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/add.js @@ -0,0 +1,3 @@ +module.exports.add = function (a, b) { + return a + b; +}; diff --git a/tests/specs/run/package_json_type/commonjs/basic/deno.jsonc b/tests/specs/run/package_json_type/commonjs/basic/deno.jsonc new file mode 100644 index 000000000..35f64c86f --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/deno.jsonc @@ -0,0 +1,5 @@ +{ + "unstable": [ + "detect-cjs" + ] +} diff --git a/tests/specs/run/package_json_type/commonjs/basic/import_import_meta.js b/tests/specs/run/package_json_type/commonjs/basic/import_import_meta.js new file mode 100644 index 000000000..f07518985 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/import_import_meta.js @@ -0,0 +1,3 @@ +import { value } from "./import_meta.js"; + +console.log(value); diff --git a/tests/specs/run/package_json_type/commonjs/basic/import_meta.js b/tests/specs/run/package_json_type/commonjs/basic/import_meta.js new file mode 100644 index 000000000..2bdbc30fe --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/import_meta.js @@ -0,0 +1 @@ +export const value = import.meta.url; diff --git a/tests/specs/run/package_json_type/commonjs/basic/main_cjs.js b/tests/specs/run/package_json_type/commonjs/basic/main_cjs.js new file mode 100644 index 000000000..365e8e06f --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/main_cjs.js @@ -0,0 +1,2 @@ +const { add } = require("./add"); +console.log(add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/basic/main_esm.js b/tests/specs/run/package_json_type/commonjs/basic/main_esm.js new file mode 100644 index 000000000..8c55f673b --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/main_esm.js @@ -0,0 +1,3 @@ +import { add } from "./add.js"; + +console.log(add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.js b/tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.js new file mode 100644 index 000000000..f1dff20b5 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.js @@ -0,0 +1,2 @@ +console.log(import.meta.url); +console.log(require("./add")); diff --git a/tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.out b/tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.out new file mode 100644 index 000000000..e177defff --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/main_esm_import_meta.out @@ -0,0 +1,2 @@ +[WILDLINE]main_esm_import_meta.js +error: Uncaught (in promise) ReferenceError: require is not defined[WILDCARD] diff --git a/tests/specs/run/package_json_type/commonjs/basic/main_mix.js b/tests/specs/run/package_json_type/commonjs/basic/main_mix.js new file mode 100644 index 000000000..2a2c2c62a --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/main_mix.js @@ -0,0 +1,6 @@ +import { add } from "./add.js"; + +console.log(add(1, 2)); + +// will error +console.log(require("./add").add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/basic/main_mix.out b/tests/specs/run/package_json_type/commonjs/basic/main_mix.out new file mode 100644 index 000000000..78f421644 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/main_mix.out @@ -0,0 +1,13 @@ +3 +error: Uncaught (in promise) ReferenceError: require is not defined +console.log(require("./add").add(1, 2)); + ^ + at file:///[WILDLINE]main_mix.js:[WILDLINE] + + info: Deno supports CommonJS modules in .cjs files, or when there's a package.json + with "type": "commonjs" option and --unstable-detect-cjs flag is used. + hint: Rewrite this module to ESM, + or change the file extension to .cjs, + or add package.json next to the file with "type": "commonjs" option + and pass --unstable-detect-cjs flag. + docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/package_json_type/commonjs/basic/not_import_meta.js b/tests/specs/run/package_json_type/commonjs/basic/not_import_meta.js new file mode 100644 index 000000000..216b900df --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/not_import_meta.js @@ -0,0 +1,8 @@ +try { + console.log(test.import.meta.url); +} catch { + // ignore +} + +// should work because this is not an ESM file +console.log(require("./add").add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/basic/package.json b/tests/specs/run/package_json_type/commonjs/basic/package.json new file mode 100644 index 000000000..5bbefffba --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/tests/specs/run/package_json_type/commonjs/basic/tla.js b/tests/specs/run/package_json_type/commonjs/basic/tla.js new file mode 100644 index 000000000..978578de4 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/basic/tla.js @@ -0,0 +1,2 @@ +await new Promise((r) => r()); +console.log("loaded"); diff --git a/tests/specs/run/package_json_type/commonjs/deno.jsonc b/tests/specs/run/package_json_type/commonjs/deno.jsonc deleted file mode 100644 index 35f64c86f..000000000 --- a/tests/specs/run/package_json_type/commonjs/deno.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "unstable": [ - "detect-cjs" - ] -} diff --git a/tests/specs/run/package_json_type/commonjs/import_import_meta.js b/tests/specs/run/package_json_type/commonjs/import_import_meta.js deleted file mode 100644 index f07518985..000000000 --- a/tests/specs/run/package_json_type/commonjs/import_import_meta.js +++ /dev/null @@ -1,3 +0,0 @@ -import { value } from "./import_meta.js"; - -console.log(value); diff --git a/tests/specs/run/package_json_type/commonjs/import_meta.js b/tests/specs/run/package_json_type/commonjs/import_meta.js deleted file mode 100644 index 2bdbc30fe..000000000 --- a/tests/specs/run/package_json_type/commonjs/import_meta.js +++ /dev/null @@ -1 +0,0 @@ -export const value = import.meta.url; diff --git a/tests/specs/run/package_json_type/commonjs/jsx/__test__.jsonc b/tests/specs/run/package_json_type/commonjs/jsx/__test__.jsonc new file mode 100644 index 000000000..f815fd72c --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/jsx/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "tempDir": true, + "args": "run -A --quiet main.jsx", + "output": "main.out" +} diff --git a/tests/specs/run/package_json_type/commonjs/jsx/add.js b/tests/specs/run/package_json_type/commonjs/jsx/add.js new file mode 100644 index 000000000..2a886fbc1 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/jsx/add.js @@ -0,0 +1,3 @@ +module.exports.add = function (a, b) { + return a + b; +}; diff --git a/tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc b/tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc new file mode 100644 index 000000000..192ddb98c --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/jsx/deno.jsonc @@ -0,0 +1,10 @@ +{ + "nodeModulesDir": "auto", + "compilerOptions": { + "jsx": "react-jsx", + "jsxImportSource": "react" + }, + "unstable": [ + "detect-cjs" + ] +} diff --git a/tests/specs/run/package_json_type/commonjs/jsx/main.jsx b/tests/specs/run/package_json_type/commonjs/jsx/main.jsx new file mode 100644 index 000000000..1922fce1b --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/jsx/main.jsx @@ -0,0 +1,7 @@ +const { add } = require("./add.js"); + +console.log(add(1, 2)); + +console.log(
!= null); + +require("./tsx.tsx"); diff --git a/tests/specs/run/package_json_type/commonjs/jsx/main.out b/tests/specs/run/package_json_type/commonjs/jsx/main.out new file mode 100644 index 000000000..cdcf04541 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/jsx/main.out @@ -0,0 +1,4 @@ +3 +true +4 +true diff --git a/tests/specs/run/package_json_type/commonjs/jsx/package.json b/tests/specs/run/package_json_type/commonjs/jsx/package.json new file mode 100644 index 000000000..88afcdcd9 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/jsx/package.json @@ -0,0 +1,7 @@ +{ + "type": "commonjs", + "dependencies": { + "@types/react": "*", + "react": "*" + } +} diff --git a/tests/specs/run/package_json_type/commonjs/jsx/tsx.tsx b/tests/specs/run/package_json_type/commonjs/jsx/tsx.tsx new file mode 100644 index 000000000..ad8f0c0a9 --- /dev/null +++ b/tests/specs/run/package_json_type/commonjs/jsx/tsx.tsx @@ -0,0 +1,5 @@ +import mod = require("./add.js"); + +console.log(mod.add(2, 2)); + +console.log(
!= null); diff --git a/tests/specs/run/package_json_type/commonjs/main_cjs.js b/tests/specs/run/package_json_type/commonjs/main_cjs.js deleted file mode 100644 index 365e8e06f..000000000 --- a/tests/specs/run/package_json_type/commonjs/main_cjs.js +++ /dev/null @@ -1,2 +0,0 @@ -const { add } = require("./add"); -console.log(add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/main_esm.js b/tests/specs/run/package_json_type/commonjs/main_esm.js deleted file mode 100644 index 8c55f673b..000000000 --- a/tests/specs/run/package_json_type/commonjs/main_esm.js +++ /dev/null @@ -1,3 +0,0 @@ -import { add } from "./add.js"; - -console.log(add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/main_esm_import_meta.js b/tests/specs/run/package_json_type/commonjs/main_esm_import_meta.js deleted file mode 100644 index f1dff20b5..000000000 --- a/tests/specs/run/package_json_type/commonjs/main_esm_import_meta.js +++ /dev/null @@ -1,2 +0,0 @@ -console.log(import.meta.url); -console.log(require("./add")); diff --git a/tests/specs/run/package_json_type/commonjs/main_esm_import_meta.out b/tests/specs/run/package_json_type/commonjs/main_esm_import_meta.out deleted file mode 100644 index e177defff..000000000 --- a/tests/specs/run/package_json_type/commonjs/main_esm_import_meta.out +++ /dev/null @@ -1,2 +0,0 @@ -[WILDLINE]main_esm_import_meta.js -error: Uncaught (in promise) ReferenceError: require is not defined[WILDCARD] diff --git a/tests/specs/run/package_json_type/commonjs/main_mix.js b/tests/specs/run/package_json_type/commonjs/main_mix.js deleted file mode 100644 index 2a2c2c62a..000000000 --- a/tests/specs/run/package_json_type/commonjs/main_mix.js +++ /dev/null @@ -1,6 +0,0 @@ -import { add } from "./add.js"; - -console.log(add(1, 2)); - -// will error -console.log(require("./add").add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/main_mix.out b/tests/specs/run/package_json_type/commonjs/main_mix.out deleted file mode 100644 index 78f421644..000000000 --- a/tests/specs/run/package_json_type/commonjs/main_mix.out +++ /dev/null @@ -1,13 +0,0 @@ -3 -error: Uncaught (in promise) ReferenceError: require is not defined -console.log(require("./add").add(1, 2)); - ^ - at file:///[WILDLINE]main_mix.js:[WILDLINE] - - info: Deno supports CommonJS modules in .cjs files, or when there's a package.json - with "type": "commonjs" option and --unstable-detect-cjs flag is used. - hint: Rewrite this module to ESM, - or change the file extension to .cjs, - or add package.json next to the file with "type": "commonjs" option - and pass --unstable-detect-cjs flag. - docs: https://docs.deno.com/go/commonjs diff --git a/tests/specs/run/package_json_type/commonjs/not_import_meta.js b/tests/specs/run/package_json_type/commonjs/not_import_meta.js deleted file mode 100644 index 216b900df..000000000 --- a/tests/specs/run/package_json_type/commonjs/not_import_meta.js +++ /dev/null @@ -1,8 +0,0 @@ -try { - console.log(test.import.meta.url); -} catch { - // ignore -} - -// should work because this is not an ESM file -console.log(require("./add").add(1, 2)); diff --git a/tests/specs/run/package_json_type/commonjs/package.json b/tests/specs/run/package_json_type/commonjs/package.json deleted file mode 100644 index 5bbefffba..000000000 --- a/tests/specs/run/package_json_type/commonjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/tests/specs/run/package_json_type/commonjs/tla.js b/tests/specs/run/package_json_type/commonjs/tla.js deleted file mode 100644 index 978578de4..000000000 --- a/tests/specs/run/package_json_type/commonjs/tla.js +++ /dev/null @@ -1,2 +0,0 @@ -await new Promise((r) => r()); -console.log("loaded"); diff --git a/tests/specs/run/remote_cjs_main/output.out b/tests/specs/run/remote_cjs_main/output.out index f75c33907..360934acb 100644 --- a/tests/specs/run/remote_cjs_main/output.out +++ b/tests/specs/run/remote_cjs_main/output.out @@ -1,3 +1,3 @@ Download http://localhost:4545/run/add.cjs -error: Expected a JavaScript or TypeScript module, but identified a Cjs module. Importing these types of modules is currently not supported. +error: Remote CJS modules are not supported. Specifier: http://localhost:4545/run/add.cjs diff --git a/tests/specs/run/require_esm/main.out b/tests/specs/run/require_esm/main.out index d17b1ead5..57b842b34 100644 --- a/tests/specs/run/require_esm/main.out +++ b/tests/specs/run/require_esm/main.out @@ -1,6 +1,6 @@ [Module: null prototype] { sync_js: 1 } [Module: null prototype] { sync_mjs: 1 } -error: Uncaught Error: Top-level await is not allowed in synchronous evaluation +error: Uncaught (in promise) Error: Top-level await is not allowed in synchronous evaluation at loadESMFromCJS (node:module:[WILDCARD]) at Module._compile (node:module:[WILDCARD]) at Object.Module._extensions..js (node:module:[WILDCARD]) diff --git a/tests/testdata/npm/deno_run_cowsay_no_permissions.out b/tests/testdata/npm/deno_run_cowsay_no_permissions.out index 6434620e2..25b79d9a7 100644 --- a/tests/testdata/npm/deno_run_cowsay_no_permissions.out +++ b/tests/testdata/npm/deno_run_cowsay_no_permissions.out @@ -1,2 +1,2 @@ -error: Uncaught NotCapable: Requires read access to , specify the required permissions during compilation using `deno compile --allow-read` +error: Uncaught (in promise) NotCapable: Requires read access to , specify the required permissions during compilation using `deno compile --allow-read` [WILDCARD] -- cgit v1.2.3