Skip to content

v10.3.0

Compare
Choose a tag to compare
@cspotcode cspotcode released this 11 Oct 18:04
· 147 commits to main since this release

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) or fs.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-node Service (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
  • 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 as 100 * 2
    • REPL now ensures both lines are separate statements, both when typechecking and when evaluating
  • Fix #1488: Node may log "circular dependency" warning when using allowJs (#1488, #1489)
  • Fix #1301: Filter empty strings from TS_NODE_IGNORE and TS_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

v10.2.1...v10.3.0
https://github.com/TypeStrong/ts-node/milestone/5