chore(deps): update dependency ts-node to ^10.9.2
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
ts-node (source) | devDependencies | minor | ^10.2.0 -> ^10.9.2 |
Release Notes
TypeStrong/ts-node (ts-node)
v10.9.2
: Fix tsconfig.json
file not found
Fixed
- Fixed
tsconfig.json
file not found on latest TypeScript version (https://github.com/TypeStrong/ts-node/pull/2091)
v10.9.1
Fixed
- Workaround nodejs bug introduced in 18.6.0 (#1838) @cspotcode
- Only affects projects on node >=18.6.0 using
--esm
- Older versions of node and projects without
--esm
are unaffected
- Only affects projects on node >=18.6.0 using
https://github.com/TypeStrong/ts-node/milestone/18?closed=1
v10.9.0
Added
-
--project
accepts path to a directory containing atsconfig.json
(#1829, #1830) @cspotcode- previously it required an explicit filename
- Added helpful error message when swc version is too old to support our configuration (#1802) @cspotcode
- Added
experimentalTsImportSpecifiers
option which allows using voluntary.ts
file extensions in import specifiers (undocumented except for API docs) (#1815) @cspotcode
Fixed
- Fixed bug where
child_process.fork()
would erroneously execute the parent's entrypoint script, not the intended child script (#1812, #1814) @devversion - Fixed support for jsx modes
"react-jsx"
and"react-jsxdev"
in swc transpiler (#1800, #1802) @cspotcode - Fixed support for import assertions in swc transpiler (#1817, #1802) @cspotcode
- Fixed bug where calling
repl.evalCode()
with code not ending in a newline would not update the typechecker accordingly (#1764, #1824) @cspotcode
https://github.com/TypeStrong/ts-node/milestone/16?closed=1
v10.8.2
Fixed
- Revert "Use file URL for source map paths" (#1821) @cspotcode
- Allow JSON imports in node 16.15 and up (#1792) @queengooborg
- JSON imports were already supported in v17.5 and up
- this change extends support to >=16.15.0,<17.0.0
- These version ranges match vanilla node's support for JSON imports
https://github.com/TypeStrong/ts-node/milestone/15?closed=1
v10.8.1
Fixed
- Fixed #1769: source URLs in source map cache were malformed on Windows, affecting code coverage reports (#1769, #1771) @PaperStrike
- Fixed #1778: typechecker was erronously resolving imports from ESM files as if they were from CJS files (#1778, #1782) @cspotcode
https://github.com/TypeStrong/ts-node/milestone/14
v10.8.0
Questions about this release? Ask in the official discussion thread: #1767
Added
- Added support for
module=NodeNext
,module=Node16
,.mts
,.cts
,.mjs
, and.cjs
file extensions (#1414, #1694, #1744, #1745, #1727, #1717, #1753, #1757) @cspotcode- For best results, enable
experimentalResolver
(docs) - 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"
- For best results, enable
- Added ability to include file extensions in CommonJS imports (#1727, #1753) @cspotcode
- Enables consistency with ESM, where file extensions are often mandatory
- Resolves from emitted to source file extensions (#1727, #1753) @cspotcode
- Must enable
experimentalResolver
, will be enabled by default in a future version (docs) - Typechecker requires importing the emitted file extension; ts-node resolves correctly to the source file. E.g.
import "./foo.js"
will executefoo.ts
See also: TypeScript issue #37582 - If typechecking is disabled, you can also use source file extensions. E.g.
import "./foo.ts"
- Must enable
- Added
experimentalSpecifierResolution
(#1727, #1753) @cspotcode- the same as Node's
--experimental-specifier-resolution
(Node docs) - 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
- the same as Node's
- Adds
diagnostics
property toTSError
, with array of TypeScript diagnostic objects from the compiler (API docs) (#1705, #1706) @paulbrimicombe
Changed
- Renames option
experimentalResolverFeatures
toexperimentalResolver
(docs) (#1727) @cspotcode - Internal change to ESM loader for compatibility with forthcoming node versions: returns
shortCircuit: true
(#1714, #1715) @cspotcode - Performance: Optimize filesystem stat calls in ESM loader and new CommonJS resolver (#1758, #1759) @cspotcode
- Performance, maintenance: Upgrade source-mapper dependency "@cspotcode/source-map-support"
- Switches to "trace-mapping" for underlying source-map parsing (#1729) @cspotcode
Fixed
- Fixed bug where REPL
.type
command was not showing any type information when using TypeScript nightly builds (#1761, #1762) @cspotcode - Correctly suppress "Custom ESM Loaders" warning on newer node versions where the warning's prose changed (#1701) @cspotcode
- Fixed REPL bug where function signatures could not be entered across multiple lines (#1667, #1677) @d9k
- REPL treats unparenthesized object literals as objects, instead of as block scopes (#1697, #1699) @jhmaster2000
- Fixed bug where
preferTsExts
combined with third-party transpiler hooks could disruptnyc
code coverage (#1755) @cspotcode - Fixed bug where
file://
URLs in stack traces did not always use percent-encoding (#1738, #1726, #1729) @cspotcode - Fixed bug where v8-compile-cache-lib did not correctly unhook itself (#1717, #1718, #1719) @cspotcode
- This internal dependency is used to speed up loading the TypeScript compiler
Docs
- Many docs improvements (#1682) @cspotcode
- Options page: each option its own linkable header w/usage example (#1606) @cspotcode
- Categorize APIs in typedoc, make entrypoints more prominent (#1456) @cspotcode
- Clarify that the shorthand for
--project
is-P
, not-p
(#1731, #1734) @lobsterkatie - Add common ESM errors to Troubleshooting page (#1607) @cspotcode
https://github.com/TypeStrong/ts-node/milestone/12
v10.7.0
Questions about this release? Ask in the official discussion thread: #1680
Added
- Adds
--esm
flag, option, andts-node-esm
binary (#1258, #1655)- Enables full
esm
support; no need for--loader
norNODE_OPTIONS
- Use shebang
#!/usr/bin/env ts-node-esm
, runts-node --esm
, or add to your tsconfig.json:"ts-node": {"esm": true}
- Enables full
Changed
- Unflag ESM json modules on node >=17.5.0 (#1661, #1665) @Jamesernator
- no longer requires
--experimental-json-modules
- no longer requires
- Lazy-load dependencies to improve startup responsiveness. (#1676)
Fixed
- Fixed bug where "compiler", "transpiler", and swc backend would not resolve relative to the tsconfig.json that declared them (#1662, #1655)
- Enables reusable tsconfig.json shared via node module to include necessary dependencies
https://github.com/TypeStrong/ts-node/milestone/11
v10.6.0
Questions about this release? Ask in the official discussion thread: #1666
Added
- Adds workaround for extensionless entrypoints with ESM loader (#1649, #1654)
- You can now combine tools such as
mocha
with--loader ts-node/esm
, where previously node would throw[ERR_UNKNOWN_FILE_EXTENSION]
- node has a bug where combining
--loader
with an extensionless entrypoint causes this error nodejs/node#33226 - Some tools, for example
mocha
, have an extensionless entrypoint. (source, source) - Combining
NODE_OPTIONS=--loader ts-node/esm
with these tools causes this error. mochajs/mocha#4645 - node intends to fix this bug in a future release: nodejs/node#41711
- In the interim, we have implemented a workaround in ts-node.
- You can now combine tools such as
- Adds support for target "ES2022" in
moduleTypes
overrides (#1650)
Fixed
- Fixed bug where
--swc
and other third-party transpilers did not respectmoduleTypes
overrides (#1651, #1652, #1660) - Fixed bug where node flags were not preserved correctly in
process.execArgv
(#1657, #1658)- This affected
child_process.fork()
, since it usesprocess.execArgv
to create a similar child runtime. - With this fix,
child_process.fork()
will preserve both node flags andts-node
hooks.
- This affected
- Fixed compatibility TypeScript 4.7's API changes (#1647, #1648)
https://github.com/TypeStrong/ts-node/milestone/9
v10.5.0
Questions about this release? Ask in the official discussion thread: #1634
Added
- Eliminate "Emit Skipped" errors (#693, #1345, #1629)
- Avoids all "Emit Skipped" errors by performing a fallback
transpileOnly
-style transformation. - Does not affect typechecking. Type errors are still detected and thrown.
- Fallback has the same limitations as
isolatedModules
. This will only affect rare cases such as usingconst enums
withpreserveConstEnums
disabled. - Fixes #693
- Avoids all "Emit Skipped" errors by performing a fallback
- Graduate swc transpiler out of experimental; add
swc: true
convenience option (docs) (#1487, #1536, #1613, #1627)-
"swc": true
or--swc
will use swc for faster execution - This feature is no longer marked "experimental." Thank you to everyone who filed bugs!
-
- swc transpiler attempts to load
@swc/core
or@swc/wasm
dependencies from your project before falling-back to global installations (#1613, #1627)- global fallback only occurs when using a global installation of ts-node
- Add support for TypeScript's
traceResolution
output (docs) (#1128, #1491) @TheUnlocked - Support import assertions in ESM loader (docs) (#1557, #1558, #1559, #1573) @Pokute, @geigerzaehler
- Allows importing JSON files from ESM with the requisite flag (docs)
-
ts-node -vvv
also logs absolute paths tots-node
andtypescript
, to make it more obvious when you're accidentally using globally-installed versions (#1323, #1620) - Add swc target "es2022" (#1535, #1540)
- When you have target es2022 in tsconfig, will use swc's es2022 target
Changed
- Initialize TypeScript compiler before starting REPL prompt (#1498) @TheUnlocked
- Improves responsiveness for first line of REPL input
- Use
v8-compile-cache-lib
to load typescript - Support both
--camelCase
and--hyphen-case
for all CLI flags; update documentation to use--camelCase
(#1598, #1599)- Not a breaking change; CLI continues to accept both forms
- Make
TSError
diagnosticText
property non-enumerable to prevent it from being logged below the stack (#1632)
Fixed
- Fix #1538: REPL inputs fail to transpile via swc (#1538, #1541, #1602)
- Fix #1478: REPL erroneously logged
undefined
for all inputs after the first when using swc transpiler (#1478, #1580, #1602) - Fix #1389: In
--showConfig
output, emit accuratemoduleTypes
paths resolved relative to thetsconfig.json
which declared them (#1389, #1619) - Fix: Remove indentation from
ts-node --help
output (#1597, #1600) - Fix #1425: Merged definitions correctly into
tsconfig.schemastore-schema.json
(#1425, #1618) - Fix: Allow disabling
"use strict"
emit in SWC transpiler (#1531, #1537) - Fix: Add missing
ERR_UNKNOWN_FILE_EXTENSION
constructor; was throwingERR_UNKNOWN_FILE_EXTENSION is not a constructor
(#1562) @bluelovers - Fix #1565: entrypoint resolution failed on node v12.0.x and v12.1.x (#1565, #1566) @davidmurdoch
Docs
- Explain
env -S
flag for shebangs (docs) (#1448, #1545) @sheeit, @chee - Suggest
skipIgnore
when you want to compile files in node_modules (docs) (#1553) @webstrand - Fix typo in
moduleTypes
on options page (docs) (#1630, #1633)
Misc
- Adds experimental
experimentalResolverFeatures
option, but it does not do anything yet (#1514, #1614)
https://github.com/TypeStrong/ts-node/milestone/4
v10.4.0
Added
- Adds support for targets "es2020" and "es2021" to swc transpiler (#1521)
- Adds automatic target downgrade when using older versions of swc (#1521)
- If tsconfig specifies es2020, but your version of swc only supports up to es2019, ts-node will automatically switch to es2019 instead of throwing an error
Changed
Fixed
https://github.com/TypeStrong/ts-node/milestone/8
v10.3.1
Fixed
- Add version check to use new loader hooks API for node >=16.12.0 (#1522) @shrujalshah28
https://github.com/TypeStrong/ts-node/milestone/7
v10.3.0
Questions about this release? Ask in the official discussion thread: #1507
Added
- Declare types for node builtin modules within REPL so you do not need to import them (#1424, #1500)
- Node REPL exposes builtin modules as globals; typechecker now understands this
- Typechecking should no longer raise errors when using builtins without first importing
- For example:
util.promisify(setTimeout)(1000)
orfs.readFileSync('example.txt')
- Add
createEsmHooks()
function to create ESM loader hooks (API docs) (#1439) @nonara- Can be used to compose our loader hooks with another loader or additional logic
-
register()
accepts a ts-nodeService
(API docs) (#1474)-
register(options)
is still supported; no breaking changes
-
- Add support for Node.js's new loader hooks API (#1372, #1457, #1007) @jonaskello
- Node.js has changed their loader hooks API
- ts-node is compatible with all node versions, detects your node version and exposes the correct hooks API
- Node's new API currently only available in node v17 nightly builds
- Node will eventually backport the changes to node 16, and may also be backport to 14 and 12
- Add
--emit
to--help
output (#1400, #1484) @markbradley27
Changed
- When ts-node is registered and other libraries
require('source-map-support')
, they will be redirected to@cspotcode/source-map-support
- See complete description in Fixed section below
Fixed
- Fix #1440, #1441, #1438, #1495: Incorrect stack traces when third-party libraries use
source-map-support
instead of@cspotcode/source-map-support
(#1440, #1441, #1438, #1495, cspotcode/node-source-map-support#23, #1496, #1497) @ejose19- When ts-node is registered and other libraries
require('source-map-support')
, they will be redirected to@cspotcode/source-map-support
- ts-node uses
@cspotcode/source-map-support
for the fixes and enhancements listed here:@cspotcode/source-map-support
changelog - To ensure correct stack traces, all libraries must share a compatible sourcemap support implementation
- When ts-node is registered and other libraries
- Fix #1363: REPL may erroneously combine previous input with next input, eval both as a single statement (#1363, #1480) @TheUnlocked
- For example, entering
100
on first line and* 2
on second line would erronously be interpreted as100 * 2
- REPL now ensures both lines are separate statements, both when typechecking and when evaluating
- For example, entering
- Fix #1488: Node may log "circular dependency" warning when using
allowJs
(#1488, #1489) - Fix #1301: Filter empty strings from
TS_NODE_IGNORE
andTS_NODE_IGNORE_DIAGNOSTICS
; treat empty environment variable as empty array (#1301, #1483) @ValeriaVG-
TS_NODE_IGNORE= ts-node ./example.ts
will disable default ignore rules; will compile files in./node_modules
-
Docs
- Update VSCode debug configuration (Docs) (#1466)
- Update ESM-related messaging to clarify that experimental status is due to Node.js, not ts-node (#1455)
- Refer to ts-node consistently (#1481) @animafps
https://github.com/TypeStrong/ts-node/milestone/5
v10.2.1
Fixed
- Fixes #1426: Do not import typescript outside of configuration/project loading (#1433, #1426) @Songkeys
- We take care to load your project's version of typescript, falling back to a globally-installed version if necessary.
- 10.2.0 introduced a bug where we did not do this consistently, causing global or npx installations of ts-node to attempt loading typescript relative to themselves, not your project.
- This failed if typescript was not globally installed or npx did not install peer dependencies.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.