TypeStrong/ts-node
### [`v10.2.0`](https://togithub.com/TypeStrong/ts-node/releases/v10.2.0)
[Compare Source](https://togithub.com/TypeStrong/ts-node/compare/v10.1.0...v10.2.0)
Questions about this release? Ask in the official discussion thread: [#1423](https://togithub.com/TypeStrong/ts-node/issues/1423)
**Added**
- Adds top-level await support to REPL ([#1383](https://togithub.com/TypeStrong/ts-node/issues/1383), [#245](https://togithub.com/TypeStrong/ts-node/issues/245)) [@ejose19](https://togithub.com/ejose19)
- can be disabled with `--no-experimental-repl-await`, `experimentalReplAwait`, or `TS_NODE_EXPERIMENTAL_REPL_AWAIT` ([CLI docs](https://typestrong.org/ts-node/docs/options), [API docs](https://typestrong.org/ts-node/api/interfaces/CreateOptions.html#experimentalReplAwait))
- Setting `"pretty": false` disables pretty formatting of diagnostics even when stdout is a TTY ([#1418](https://togithub.com/TypeStrong/ts-node/issues/1418), [#1420](https://togithub.com/TypeStrong/ts-node/issues/1420)) [@elevatebart](https://togithub.com/elevatebart)
- Applies to ts-node's `pretty` option, not to be confused with TypeScript's `pretty` option
- Ignores diagnostics which are annoying in an interactive REPL ([#1396](https://togithub.com/TypeStrong/ts-node/issues/1396), [#1120](https://togithub.com/TypeStrong/ts-node/issues/1120), [#729](https://togithub.com/TypeStrong/ts-node/issues/729), [#850](https://togithub.com/TypeStrong/ts-node/issues/850), [#469](https://togithub.com/TypeStrong/ts-node/issues/469))
- For example, when you input `const foo = 1` in the REPL, `foo` is unused. We ignore the resulting diagnostic `foo is declared but its value is never read`
- Diagnostics are only ignored in the REPL
- Diagnostics for non-REPL files imported by the REPL will still be shown
- Logged stack traces are colorized to match vanilla node's behavior ([#1412](https://togithub.com/TypeStrong/ts-node/issues/1412), [#1405](https://togithub.com/TypeStrong/ts-node/issues/1405))
**Fixed**
- Fix [#1397](https://togithub.com/TypeStrong/ts-node/issues/1397): SWC transpiler should emit ECMAScript imports and exports when configuration dictates ([#1409](https://togithub.com/TypeStrong/ts-node/issues/1409), [#1397](https://togithub.com/TypeStrong/ts-node/issues/1397))
- Enables SWC transpiler to be used alongside `--loader`
- Fix [#1403](https://togithub.com/TypeStrong/ts-node/issues/1403): source-map-support breaks rendering of node errors ([#1405](https://togithub.com/TypeStrong/ts-node/issues/1405), [#1403](https://togithub.com/TypeStrong/ts-node/issues/1403))
- Fix [#1410](https://togithub.com/TypeStrong/ts-node/issues/1410): rendering of async stack frames should include `async` annotations ([#1405](https://togithub.com/TypeStrong/ts-node/issues/1405), [#1410](https://togithub.com/TypeStrong/ts-node/issues/1410))
- Fix [#1411](https://togithub.com/TypeStrong/ts-node/issues/1411): wrong order of process 'exit' event and logging unhandled exception ([#1405](https://togithub.com/TypeStrong/ts-node/issues/1405), [#1411](https://togithub.com/TypeStrong/ts-node/issues/1411))
- Fix [#1419](https://togithub.com/TypeStrong/ts-node/issues/1419): Should not throw `require.resolve` error when `@types/node` peerDependency is missing ([#1419](https://togithub.com/TypeStrong/ts-node/issues/1419), [#1422](https://togithub.com/TypeStrong/ts-node/issues/1422))
https://github.com/TypeStrong/ts-node/milestone/2
### [`v10.1.0`](https://togithub.com/TypeStrong/ts-node/releases/v10.1.0)
[Compare Source](https://togithub.com/TypeStrong/ts-node/compare/v10.0.0...v10.1.0)
Questions about this release? Ask in the official discussion thread: [#1390](https://togithub.com/TypeStrong/ts-node/issues/1390)
**Added**
- Add `"moduleType"` option to override module type -- CommonJS or ECMAScript -- on select files. ([docs](https://typestrong.org/ts-node/docs/module-type-overrides)) ([#1342](https://togithub.com/TypeStrong/ts-node/issues/1342), [#1371](https://togithub.com/TypeStrong/ts-node/issues/1371), [#1376](https://togithub.com/TypeStrong/ts-node/issues/1376))
- Useful when a configuration file, for example `webpack.config.ts`, must execute as CommonJS but the rest of the project is ESM
- selectively overrides `package.json` `"type"` and `tsconfig.json` `"module"`
- akin to `.cjs` and `.mjs` extensions, but for `.ts` and `.tsx` files
- thanks to [@jayaddison](https://togithub.com/jayaddison) for help on test coverage
- Implement `"extends"` support for `"ts-node"` options in `tsconfig.json` ([#1328](https://togithub.com/TypeStrong/ts-node/issues/1328), [#1356](https://togithub.com/TypeStrong/ts-node/issues/1356))
- `"ts-node": {}` options will be parsed from extended tsconfigs
- allows sharing and deduplicating ts-node configuration
- Un-deprecate `scope` and `scopeDir`; add both to CLI and `tsconfig.json` options; un-deprecate `TS_NODE_SCOPE` env var; add `TS_NODE_SCOPE_DIR` env var ([docs](https://typestrong.org/ts-node/docs/options)) ([#1346](https://togithub.com/TypeStrong/ts-node/issues/1346), [#1367](https://togithub.com/TypeStrong/ts-node/issues/1367))
**Changed**
- Improve error messages thrown by native ESM loader hooks ([#1357](https://togithub.com/TypeStrong/ts-node/issues/1357), [#1373](https://togithub.com/TypeStrong/ts-node/issues/1373)) [@tars0x9752](https://togithub.com/tars0x9752)
- messages more closely match node; are more descriptive
- Emit `"ts-node"` object at the top of `--showConfig` output instead of the bottom ([#1355](https://togithub.com/TypeStrong/ts-node/issues/1355))
**Fixed**
- Fix [#1282](https://togithub.com/TypeStrong/ts-node/issues/1282): Set correct globals in `[stdin]`, `[eval]`, and `` contexts ([#1333](https://togithub.com/TypeStrong/ts-node/issues/1333))
- More closely align ts-node's behavior with vanilla node
- Affects the interactive REPL, piping to stdin, and `ts-node -e`
- Matches node's behavior for globals `__filename`, `__dirname`, `module` and sub-fields of `module`, `exports`, and builtin module aliases `fs`, etc
- Fix [#1343](https://togithub.com/TypeStrong/ts-node/issues/1343): Set swc option `keepClassNames` to `true` ([#1344](https://togithub.com/TypeStrong/ts-node/issues/1344))
- Fix: [#1387](https://togithub.com/TypeStrong/ts-node/issues/1387): REPL outputs 'use strict' after first empty line of input ([#1388](https://togithub.com/TypeStrong/ts-node/issues/1388)) [@ejose19](https://togithub.com/ejose19)
**Docs**
- Update ESM docs to say that env vars *are* supported with `node --loader ts-node/esm` ([docs](https://togithub.com/TypeStrong/ts-node/issues/1007)) ([#1379](https://togithub.com/TypeStrong/ts-node/issues/1379))
https://github.com/TypeStrong/ts-node/milestone/3
### [`v10.0.0`](https://togithub.com/TypeStrong/ts-node/releases/v10.0.0)
[Compare Source](https://togithub.com/TypeStrong/ts-node/compare/v9.1.1...v10.0.0)
Questions about this release? Ask in the official discussion thread: [#1337](https://togithub.com/TypeStrong/ts-node/issues/1337)
*Breaking changes are prefixed with **\[BREAKING]***
**Added**
- Adds `--show-config` to log the resolved configuration ([docs](https://typestrong.org/ts-node/docs/troubleshooting#understanding-configuration)) ([#1100](https://togithub.com/TypeStrong/ts-node/issues/1100), [#1243](https://togithub.com/TypeStrong/ts-node/issues/1243))
- Bundle and re-export [@tsconfig/node](https://togithub.com/tsconfig/node)\* configurations for convenience ([docs](https://typestrong.org/ts-node/docs/configuration#tsconfigbases)) ([#1202](https://togithub.com/TypeStrong/ts-node/issues/1202), [#1236](https://togithub.com/TypeStrong/ts-node/issues/1236), [#1313](https://togithub.com/TypeStrong/ts-node/issues/1313))
- Default to appropriate [@tsconfig/node](https://togithub.com/tsconfig/node)\* configuration based on node and typescript versions ([docs](https://typestrong.org/ts-node/docs/configuration#default-config)) ([#1202](https://togithub.com/TypeStrong/ts-node/issues/1202), [#1236](https://togithub.com/TypeStrong/ts-node/issues/1236), [#1313](https://togithub.com/TypeStrong/ts-node/issues/1313))
- Automatically reference [@types/node](https://togithub.com/types/node); use globally-installed [@types/node](https://togithub.com/types/node) if not locally installed ([#1240](https://togithub.com/TypeStrong/ts-node/issues/1240), [#1257](https://togithub.com/TypeStrong/ts-node/issues/1257))
- Add `swc` integration and new `--transpiler` option to use third-party transpilers for a massive speed boost on large codebases ([docs](https://typestrong.org/ts-node/docs/transpilers)) ([#779](https://togithub.com/TypeStrong/ts-node/issues/779), [#1160](https://togithub.com/TypeStrong/ts-node/issues/1160))
- Add `scopeDir` API option ([docs](https://typestrong.org/ts-node/api/interfaces/RegisterOptions.html#scopeDir)) ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- Add `projectSearchDir` API option ([docs](https://typestrong.org/ts-node/api/interfaces/RegisterOptions.html#projectSearchDir)) ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- Add `--cwd-mode` and `ts-node-cwd` to resolve config file relative to cwd, not entrypoint script ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
**Changed**
- **\[BREAKING]** Make `--script-mode` default behavior; resolve tsconfig relative to entrypoint script instead of cwd ([#949](https://togithub.com/TypeStrong/ts-node/issues/949), [#1197](https://togithub.com/TypeStrong/ts-node/issues/1197), [#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- In most cases this change will have no noticeable effect
- Primarily benefits portable shell scripts on your `$PATH`, because `ts-node` will respect the script's local `tsconfig.json`
- Use `--cwd-mode` or `ts-node-cwd` if you need legacy behavior
- **\[BREAKING]** `ignore` rules evaluate relative to `tsconfig.json` directory, otherwise `cwd` ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- **\[BREAKING]** Remove support for node 10. Minimum supported version is node 12 ([#1312](https://togithub.com/TypeStrong/ts-node/issues/1312))
- Rename `--dir` to `--cwd`; rename `TS_NODE_DIR` to `TS_NODE_CWD` ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- `--dir` and `TS_NODE_DIR` are deprecated but still parsed for backwards-compatibility
- `--dir` effectively changed the working directory of `ts-node`; renaming makes this behavior more obvious
**Deprecated**
- Deprecate `TS_NODE_SCOPE` ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- Deprecate `--dir` and `TS_NODE_DIR` ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
**Removed**
- **\[BREAKING]** Internal APIs removed from type declarations ([#1242](https://togithub.com/TypeStrong/ts-node/issues/1242))
- Removed `DEFAULTS`, `normalizeSlashes`, `parse`, `split`
- No features were removed
- This will only affect consumers of `ts-node`'s programmatic API
**Fixed**
- **\[BREAKING]** Fix [#1229](https://togithub.com/TypeStrong/ts-node/issues/1229) and [#1235](https://togithub.com/TypeStrong/ts-node/issues/1235): always throw `ERR_REQUIRE_ESM` when attempting to execute ESM as CJS, even when not using `--loader ts-node/esm` ([#1232](https://togithub.com/TypeStrong/ts-node/issues/1232))
- This aligns our behavior with vanilla `node`
- **\[BREAKING]** Fix [#1225](https://togithub.com/TypeStrong/ts-node/issues/1225): `compiler` is loaded relative to `tsconfig.json` instead of entrypoint script ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- In most cases this change will have no noticable effect
- Fix [#1217](https://togithub.com/TypeStrong/ts-node/issues/1217): REPL not always using passed stdout and stderr ([#1224](https://togithub.com/TypeStrong/ts-node/issues/1224))
- Fix [#1220](https://togithub.com/TypeStrong/ts-node/issues/1220): `ts-node ./index` may execute the wrong file extension because tsconfig search poisons the `require.resolve` cache ([#1155](https://togithub.com/TypeStrong/ts-node/issues/1155))
- Fix [#1322](https://togithub.com/TypeStrong/ts-node/issues/1322): Sourcemaps fail for filenames with spaces or other characters which are percent-encoded in URLs ([#1160](https://togithub.com/TypeStrong/ts-node/issues/1160), [#1330](https://togithub.com/TypeStrong/ts-node/issues/1330))
- Fix [#1331](https://togithub.com/TypeStrong/ts-node/issues/1331): Resolution of node builtin modules in ESM loader fails on node >=12.20.0, <13 ([#1332](https://togithub.com/TypeStrong/ts-node/issues/1332))
**Docs**
- New documentation website: https://typestrong.org/ts-node
- README is generated to match the website
- Added page explaining CommonJS vs ESM
- Added page with Performance advice
- Added Troubleshooting page
- Organized and added to "Recipes" section with third-party tool integrations
- Added TypeDoc-generated API docs
- Work was spread across multiple tickets: [#1207](https://togithub.com/TypeStrong/ts-node/issues/1207), [#1213](https://togithub.com/TypeStrong/ts-node/issues/1213), [#1221](https://togithub.com/TypeStrong/ts-node/issues/1221), [#1228](https://togithub.com/TypeStrong/ts-node/issues/1228), [#1244](https://togithub.com/TypeStrong/ts-node/issues/1244), [#1250](https://togithub.com/TypeStrong/ts-node/issues/1250), [#1294](https://togithub.com/TypeStrong/ts-node/issues/1294), [#1295](https://togithub.com/TypeStrong/ts-node/issues/1295), [#1296](https://togithub.com/TypeStrong/ts-node/issues/1296), [#1297](https://togithub.com/TypeStrong/ts-node/issues/1297)
- Thanks to these contributors for PRs which improved our documentation
- add troubleshooting tip for syntax errors ([#1201](https://togithub.com/TypeStrong/ts-node/issues/1201)) [@jedwards1211](https://togithub.com/jedwards1211)
- Clarify handling of tsx/jsx file extensions ([#1179](https://togithub.com/TypeStrong/ts-node/issues/1179)) [@NaridaL](https://togithub.com/NaridaL)
- Added `CONTRIBUTING.md` to document the codebase and our development workflow
https://github.com/TypeStrong/ts-node/milestone/1
Configuration
📅 Schedule: "after 10:30 before 18:00 every weekday except after 13:00 before 14:00" in timezone America/Lima.
🚦 Automerge: Enabled.
♻ 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.
[ ] If you want to rebase/retry this PR, check this box.
This PR contains the following updates:
^9.1.1
->^10.2.0
:warning: MAJOR MAJOR MAJOR :warning:
Release Notes
TypeStrong/ts-node
### [`v10.2.0`](https://togithub.com/TypeStrong/ts-node/releases/v10.2.0) [Compare Source](https://togithub.com/TypeStrong/ts-node/compare/v10.1.0...v10.2.0) Questions about this release? Ask in the official discussion thread: [#1423](https://togithub.com/TypeStrong/ts-node/issues/1423) **Added** - Adds top-level await support to REPL ([#1383](https://togithub.com/TypeStrong/ts-node/issues/1383), [#245](https://togithub.com/TypeStrong/ts-node/issues/245)) [@ejose19](https://togithub.com/ejose19) - can be disabled with `--no-experimental-repl-await`, `experimentalReplAwait`, or `TS_NODE_EXPERIMENTAL_REPL_AWAIT` ([CLI docs](https://typestrong.org/ts-node/docs/options), [API docs](https://typestrong.org/ts-node/api/interfaces/CreateOptions.html#experimentalReplAwait)) - Setting `"pretty": false` disables pretty formatting of diagnostics even when stdout is a TTY ([#1418](https://togithub.com/TypeStrong/ts-node/issues/1418), [#1420](https://togithub.com/TypeStrong/ts-node/issues/1420)) [@elevatebart](https://togithub.com/elevatebart) - Applies to ts-node's `pretty` option, not to be confused with TypeScript's `pretty` option - Ignores diagnostics which are annoying in an interactive REPL ([#1396](https://togithub.com/TypeStrong/ts-node/issues/1396), [#1120](https://togithub.com/TypeStrong/ts-node/issues/1120), [#729](https://togithub.com/TypeStrong/ts-node/issues/729), [#850](https://togithub.com/TypeStrong/ts-node/issues/850), [#469](https://togithub.com/TypeStrong/ts-node/issues/469)) - For example, when you input `const foo = 1` in the REPL, `foo` is unused. We ignore the resulting diagnostic `foo is declared but its value is never read` - Diagnostics are only ignored in the REPL - Diagnostics for non-REPL files imported by the REPL will still be shown - Logged stack traces are colorized to match vanilla node's behavior ([#1412](https://togithub.com/TypeStrong/ts-node/issues/1412), [#1405](https://togithub.com/TypeStrong/ts-node/issues/1405)) **Fixed** - Fix [#1397](https://togithub.com/TypeStrong/ts-node/issues/1397): SWC transpiler should emit ECMAScript imports and exports when configuration dictates ([#1409](https://togithub.com/TypeStrong/ts-node/issues/1409), [#1397](https://togithub.com/TypeStrong/ts-node/issues/1397)) - Enables SWC transpiler to be used alongside `--loader` - Fix [#1403](https://togithub.com/TypeStrong/ts-node/issues/1403): source-map-support breaks rendering of node errors ([#1405](https://togithub.com/TypeStrong/ts-node/issues/1405), [#1403](https://togithub.com/TypeStrong/ts-node/issues/1403)) - Fix [#1410](https://togithub.com/TypeStrong/ts-node/issues/1410): rendering of async stack frames should include `async` annotations ([#1405](https://togithub.com/TypeStrong/ts-node/issues/1405), [#1410](https://togithub.com/TypeStrong/ts-node/issues/1410)) - Fix [#1411](https://togithub.com/TypeStrong/ts-node/issues/1411): wrong order of process 'exit' event and logging unhandled exception ([#1405](https://togithub.com/TypeStrong/ts-node/issues/1405), [#1411](https://togithub.com/TypeStrong/ts-node/issues/1411)) - Fix [#1419](https://togithub.com/TypeStrong/ts-node/issues/1419): Should not throw `require.resolve` error when `@types/node` peerDependency is missing ([#1419](https://togithub.com/TypeStrong/ts-node/issues/1419), [#1422](https://togithub.com/TypeStrong/ts-node/issues/1422)) https://github.com/TypeStrong/ts-node/milestone/2 ### [`v10.1.0`](https://togithub.com/TypeStrong/ts-node/releases/v10.1.0) [Compare Source](https://togithub.com/TypeStrong/ts-node/compare/v10.0.0...v10.1.0) Questions about this release? Ask in the official discussion thread: [#1390](https://togithub.com/TypeStrong/ts-node/issues/1390) **Added** - Add `"moduleType"` option to override module type -- CommonJS or ECMAScript -- on select files. ([docs](https://typestrong.org/ts-node/docs/module-type-overrides)) ([#1342](https://togithub.com/TypeStrong/ts-node/issues/1342), [#1371](https://togithub.com/TypeStrong/ts-node/issues/1371), [#1376](https://togithub.com/TypeStrong/ts-node/issues/1376)) - Useful when a configuration file, for example `webpack.config.ts`, must execute as CommonJS but the rest of the project is ESM - selectively overrides `package.json` `"type"` and `tsconfig.json` `"module"` - akin to `.cjs` and `.mjs` extensions, but for `.ts` and `.tsx` files - thanks to [@jayaddison](https://togithub.com/jayaddison) for help on test coverage - Implement `"extends"` support for `"ts-node"` options in `tsconfig.json` ([#1328](https://togithub.com/TypeStrong/ts-node/issues/1328), [#1356](https://togithub.com/TypeStrong/ts-node/issues/1356)) - `"ts-node": {}` options will be parsed from extended tsconfigs - allows sharing and deduplicating ts-node configuration - Un-deprecate `scope` and `scopeDir`; add both to CLI and `tsconfig.json` options; un-deprecate `TS_NODE_SCOPE` env var; add `TS_NODE_SCOPE_DIR` env var ([docs](https://typestrong.org/ts-node/docs/options)) ([#1346](https://togithub.com/TypeStrong/ts-node/issues/1346), [#1367](https://togithub.com/TypeStrong/ts-node/issues/1367)) **Changed** - Improve error messages thrown by native ESM loader hooks ([#1357](https://togithub.com/TypeStrong/ts-node/issues/1357), [#1373](https://togithub.com/TypeStrong/ts-node/issues/1373)) [@tars0x9752](https://togithub.com/tars0x9752) - messages more closely match node; are more descriptive - Emit `"ts-node"` object at the top of `--showConfig` output instead of the bottom ([#1355](https://togithub.com/TypeStrong/ts-node/issues/1355)) **Fixed** - Fix [#1282](https://togithub.com/TypeStrong/ts-node/issues/1282): Set correct globals in `[stdin]`, `[eval]`, and `Configuration
📅 Schedule: "after 10:30 before 18:00 every weekday except after 13:00 before 14:00" in timezone America/Lima.
🚦 Automerge: Enabled.
♻ 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.
This PR has been generated by WhiteSource Renovate. View repository job log here.