-
-
Notifications
You must be signed in to change notification settings - Fork 532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement file extension resolution for CJS, same as ESM; add exhaustive tests for resolver #1727
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…l build it back up from here
Codecov Report
|
… compile; addressing todos; adding a new one
… a root index.* file
cspotcode
changed the title
Companion to #1542
Implement file extension resolution for CJS, same as ESM; add exhaustive tests for resolver
May 15, 2022
This was referenced May 17, 2022
crapStone
pushed a commit
to Calciumdibromid/CaBr2
that referenced
this pull request
May 30, 2022
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ts-node](https://typestrong.org/ts-node) ([source](https://github.com/TypeStrong/ts-node)) | devDependencies | minor | [`10.7.0` -> `10.8.0`](https://renovatebot.com/diffs/npm/ts-node/10.7.0/10.8.0) | --- ### Release Notes <details> <summary>TypeStrong/ts-node</summary> ### [`v10.8.0`](https://github.com/TypeStrong/ts-node/releases/tag/v10.8.0) [Compare Source](TypeStrong/ts-node@v10.7.0...v10.8.0) Questions about this release? Ask in the official discussion thread: [#​1767](TypeStrong/ts-node#1767) **Added** - Added support for `module=NodeNext`, `module=Node16`, `.mts`, `.cts`, `.mjs`, and `.cjs` file extensions ([#​1414](TypeStrong/ts-node#1414), [#​1694](TypeStrong/ts-node#1694), [#​1744](TypeStrong/ts-node#1744), [#​1745](TypeStrong/ts-node#1745), [#​1727](TypeStrong/ts-node#1727), [#​1717](TypeStrong/ts-node#1717), [#​1753](TypeStrong/ts-node#1753), [#​1757](TypeStrong/ts-node#1757)) [@​cspotcode](https://github.com/cspotcode) - For best results, enable `experimentalResolver` ([docs](https://typestrong.org/ts-node/docs/options#experimentalresolver)) - See TypeScript's official documentation: https://www.typescriptlang.org/docs/handbook/esm-node.html - enables mixed-mode projects with both ESM and CommonJS - enables all supported file extensions in TypeScript 4.7 - Obeys package.json "type" - Added ability to include file extensions in CommonJS imports ([#​1727](TypeStrong/ts-node#1727), [#​1753](TypeStrong/ts-node#1753)) [@​cspotcode](https://github.com/cspotcode) - Enables consistency with ESM, where file extensions are often mandatory - Resolves from emitted to source file extensions ([#​1727](TypeStrong/ts-node#1727), [#​1753](TypeStrong/ts-node#1753)) [@​cspotcode](https://github.com/cspotcode) - Must enable `experimentalResolver`, will be enabled by default in a future version ([docs](https://typestrong.org/ts-node/docs/options#experimentalresolver)) - Typechecker requires importing the *emitted* file extension; ts-node resolves correctly to the *source* file. E.g. `import "./foo.js"` will execute `foo.ts` See also: [TypeScript issue #​37582](microsoft/TypeScript#37582) - If typechecking is disabled, you can also use *source* file extensions. E.g. `import "./foo.ts"` - Added `experimentalSpecifierResolution` ([#​1727](TypeStrong/ts-node#1727), [#​1753](TypeStrong/ts-node#1753)) [@​cspotcode](https://github.com/cspotcode) - the same as Node's `--experimental-specifier-resolution` ([Node docs](https://nodejs.org/dist/latest-v18.x/docs/api/esm.html#customizing-esm-specifier-resolution-algorithm)) - can also be specified in `tsconfig.json` for convenience, to avoid the CLI flag - allows omitting file extensions in ESM imports, plus a few other CommonJS-style conveniences - Adds `diagnostics` property to `TSError`, with array of TypeScript diagnostic objects from the compiler ([API docs](https://typestrong.org/ts-node/api/classes/TSError.html)) ([#​1705](TypeStrong/ts-node#1705), [#​1706](TypeStrong/ts-node#1706)) [@​paulbrimicombe](https://github.com/paulbrimicombe) **Changed** - Renames option `experimentalResolverFeatures` to `experimentalResolver` ([docs](https://typestrong.org/ts-node/docs/options#experimentalresolver)) ([#​1727](TypeStrong/ts-node#1727)) [@​cspotcode](https://github.com/cspotcode) - Internal change to ESM loader for compatibility with forthcoming node versions: returns `shortCircuit: true` ([#​1714](TypeStrong/ts-node#1714), [#​1715](TypeStrong/ts-node#1715)) [@​cspotcode](https://github.com/cspotcode) - Performance: Optimize filesystem stat calls in ESM loader and new CommonJS resolver ([#​1758](TypeStrong/ts-node#1758), [#​1759](TypeStrong/ts-node#1759)) [@​cspotcode](https://github.com/cspotcode) - Performance, maintenance: Upgrade source-mapper dependency "[@​cspotcode/source-map-support](https://github.com/cspotcode/source-map-support)" - Switches to "trace-mapping" for underlying source-map parsing ([#​1729](TypeStrong/ts-node#1729)) [@​cspotcode](https://github.com/cspotcode) **Fixed** - Fixed bug where REPL `.type` command was not showing any type information when using TypeScript nightly builds ([#​1761](TypeStrong/ts-node#1761), [#​1762](TypeStrong/ts-node#1762)) [@​cspotcode](https://github.com/cspotcode) - Correctly suppress "Custom ESM Loaders" warning on newer node versions where the warning's prose changed ([#​1701](TypeStrong/ts-node#1701)) [@​cspotcode](https://github.com/cspotcode) - Fixed REPL bug where function signatures could not be entered across multiple lines ([#​1667](TypeStrong/ts-node#1667), [#​1677](TypeStrong/ts-node#1677)) [@​d9k](https://github.com/d9k) - REPL treats unparenthesized object literals as objects, instead of as block scopes ([#​1697](TypeStrong/ts-node#1697), [#​1699](TypeStrong/ts-node#1699)) [@​jhmaster2000](https://github.com/jhmaster2000) - Fixed bug where `preferTsExts` combined with third-party transpiler hooks could disrupt `nyc` code coverage ([#​1755](TypeStrong/ts-node#1755)) [@​cspotcode](https://github.com/cspotcode) - Fixed bug where `file://` URLs in stack traces did not always use percent-encoding ([#​1738](TypeStrong/ts-node#1738), [#​1726](TypeStrong/ts-node#1726), [#​1729](TypeStrong/ts-node#1729)) [@​cspotcode](https://github.com/cspotcode) - Fixed bug where v8-compile-cache-lib did not correctly unhook itself ([#​1717](TypeStrong/ts-node#1717), [#​1718](TypeStrong/ts-node#1718), [#​1719](TypeStrong/ts-node#1719)) [@​cspotcode](https://github.com/cspotcode) - This internal dependency is used to speed up loading the TypeScript compiler **Docs** - Many docs improvements ([#​1682](TypeStrong/ts-node#1682)) [@​cspotcode](https://github.com/cspotcode) - Options page: each option its own linkable header w/usage example ([#​1606](TypeStrong/ts-node#1606)) [@​cspotcode](https://github.com/cspotcode) - Categorize APIs in typedoc, make entrypoints more prominent ([#​1456](TypeStrong/ts-node#1456)) [@​cspotcode](https://github.com/cspotcode) - Clarify that the shorthand for `--project` is `-P`, not `-p` ([#​1731](TypeStrong/ts-node#1731), [#​1734](TypeStrong/ts-node#1734)) [@​lobsterkatie](https://github.com/lobsterkatie) - Add common ESM errors to Troubleshooting page ([#​1607](TypeStrong/ts-node#1607)) [@​cspotcode](https://github.com/cspotcode) https://github.com/TypeStrong/ts-node/milestone/12 </details> --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Co-authored-by: cabr2-bot <[email protected]> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1367 Reviewed-by: crapStone <[email protected]> Co-authored-by: Calciumdibromid Bot <[email protected]> Co-committed-by: Calciumdibromid Bot <[email protected]>
This was referenced Jul 1, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements file extension remapping in CJS loader.
Necessary prerequisite for #1694
Supercedes #1361
See also: #1542