summaryrefslogtreecommitdiff
path: root/cli/tests/testdata/compat
AgeCommit message (Collapse)Author
2022-04-16fix(cli/tools/test): Prefix test module paths with "./" (#14301)Nayeem Rahman
2022-04-16feat(test): use structured data for JavaScript errors in tests (#14287)Bartek Iwańczuk
This commit rewrites test runner to send structured error data from JavaScript to Rust instead of passing strings. This will allow to customize display of errors in test report (which will be addressed in follow up commits).
2022-04-11feat(test): Improve testing report output (#14255)Bartek Iwańczuk
Following changes were done in this commit: - remove "test" prefix before each test - use gray color for "running N tests from ..." prompt - use relative path or remote URL instead of full URL in "running N tests from ..." prompt - in "failures" section, add file path/remote URL before the test name Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2022-03-11fix(compat): cjs/esm interop for dynamic imports (#13792)Bartek Iwańczuk
This commit fixes CJS/ESM interop in compat mode for dynamically imported modules. "ProcState::prepare_module_load" was changed to accept a list of "graph roots" without associated "module kind". That module kind was always hardcoded to "ESM" which is not true for CJS/ESM interop - a CommonJs module might be imported using "import()" function. In such case the root of the graph should have "CommonJs" module kind instead of "ESM".
2022-02-27feat(compat): CJS/ESM interoperability (#13553)Bartek Iwańczuk
This commit adds CJS/ESM interoperability when running in --compat mode. Before executing files, they are analyzed and all CommonJS modules are transformed on the fly to a ES modules. This is done by utilizing analyze_cjs() functionality from deno_ast. After discovering exports and reexports, an ES module is rendered and saved in memory for later use. There's a caveat that all files ending with ".js" extension are considered as CommonJS modules (unless there's a related "package.json" with "type": "module").
2022-02-17v1.19.0Bartek Iwańczuk
2022-02-11compat: support --compat in web workers (#13629)Bartek Iwańczuk
Adds another callback to WebWorkerOptions that allows to execute some modules before actual worker code executes. This allows to set up Node global using std/node.
2022-02-04chore: forward v1.18.2 to main (#13595)Bartek Iwańczuk
2022-01-27chore: forward v1.18.1 to main (#13514)Bartek Iwańczuk
2022-01-201.18.0Divy Srivastava
2022-01-13chore: forward v1.17.3 to main (#13364)Bartek Iwańczuk
2022-01-06chore: forward 1.17.2 to main (#13295)Bartek Iwańczuk
2021-12-30feat(test): Add support for "deno test --compat" (#13235)Steven Guerrero
2021-12-22chore: merge v1.17.1 into main (#13184)Bartek Iwańczuk
2021-12-16v1.17.0Bartek Iwańczuk
2021-12-04chore: merge v1.16.4 into main (#12984)Luca Casonato
2021-11-24chore: merge v1.16.3 into main (#12892)Bert Belder
2021-11-24compat: support compat mode in REPL (#12882)Bartek Iwańczuk
This commit introduces "ProcState::maybe_resolver" field, which stores a single instance of resolver for the whole lifetime of the process, instead of creating these resolvers for each creation of module graph. As a result, this resolver can be used in fallback case where graph is not constructed (REPL, loading modules using "require") unifying resolution logic.
2021-11-171.16.2 (#12794)David Sherret
2021-11-11v1.16.1Luca Casonato
2021-11-08feat(compat): add .code to dyn import error (#12633)Yoshiya Hinosawa
2021-10-28feat(compat): integrate import map and classic resolutions in ESM resolution ↵Bartek Iwańczuk
(#12549) This commit integrates import map and "classic" resolutions in the "--compat" mode when using ES modules; in effect "http:", "https:" and "blob:" imports now work in compat mode. The algorithm works as follows: 1. If there's an import map, try to resolve using it and if succeeded return the specifier 2. Try to resolve using "Node ESM resolution", and if succeeded return the specifier 3. Fall back to regular ESM resolution
2021-10-18feat(unstable): Node CJS and ESM resolvers for compat mode (#12424)Bartek Iwańczuk
This commit adds CJS and ESM Node resolvers to the "--compat" mode. The functionality is spread across "cli/compat" module and Node compatibility layer in "deno_std/node"; this stems from the fact that ES module resolution can only be implemented in Rust as it needs to directly integrated with "deno_core"; however "deno_std/node" already provided CJS module resolution. Currently this resolution is only active when running a files using "deno run --compat --unstable <filename>", and is not available in other subcommands, which will be changed in follow up commits.
2021-10-11refactor: integrate deno_graph into CLI (#12369)Kitson Kelly
2021-10-06feat(compat): inject Node globals (#12342)Bartek Iwańczuk
This commit adds automatic injection of Node globals when "--compat" flag is present. This is done by executing "https://deno.land/std/node/global.ts" as a "side module", before main module is executed. This commit makes "--compat" required to be used with "--unstable" flag, as some of Node globals require unstable Deno APIs.
2021-10-06feat(compat): add support for node: prefixed built-ins (#12337)Bartek Iwańczuk
Adds support for "node:" prefix for Node built-ins in "--compat" mode. As per https://nodejs.org/api/esm.html#esm_node_imports
2021-10-05feat: add --compat flag to provide built-in Node modules (#12293)Bartek Iwańczuk
This commit adds "--compat" flag. When the flag is passed a set of mappings for built-in Node modules is injected into the import map. If user doesn't explicitly provide an import map (using "--import-map" flag) then a map is created on the fly. If there are already existing mappings in import map that would clash with built-in Node modules a set of diagnostics is printed to the terminal with suggestions how to proceed.