Skip to content

Releases: TypeStrong/ts-node

Fix `tsconfig.json` file not found

08 Dec 12:06
057ac1b
Compare
Choose a tag to compare

Fixed

  • Fixed tsconfig.json file not found on latest TypeScript version (#2091)

v10.9.1

14 Jul 02:45
Compare
Choose a tag to compare

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

v10.9.0...v10.9.1
https://github.com/TypeStrong/ts-node/milestone/18?closed=1

v10.9.0

13 Jul 23:35
Compare
Choose a tag to compare

Added

  • --project accepts path to a directory containing a tsconfig.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

v10.8.2...v10.9.0
https://github.com/TypeStrong/ts-node/milestone/16?closed=1

v10.8.2

02 Jul 17:58
Compare
Choose a tag to compare

Fixed

  • Revert "Use file URL for source map paths" (#1821) @cspotcode
    • Fixes #1790: ts-node 10.8.1 regression where nyc code coverage reports had incorrect paths
    • Fixes #1797: ts-node 10.8.1 regression where breakpoints did not hit in VSCode debugging
  • 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

v10.8.1...v10.8.2
https://github.com/TypeStrong/ts-node/milestone/15?closed=1

v10.8.1

03 Jun 18:19
Compare
Choose a tag to compare

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

v10.8.0...v10.8.1
https://github.com/TypeStrong/ts-node/milestone/14

v10.8.0

21 May 18:21
Compare
Choose a tag to compare

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
  • 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 execute foo.ts See also: TypeScript issue #37582
    • If typechecking is disabled, you can also use source file extensions. E.g. import "./foo.ts"
  • 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
  • Adds diagnostics property to TSError, with array of TypeScript diagnostic objects from the compiler (API docs) (#1705, #1706) @paulbrimicombe

Changed

  • Renames option experimentalResolverFeatures to experimentalResolver (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 disrupt nyc 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

v10.7.0...v10.8.0
https://github.com/TypeStrong/ts-node/milestone/12

v10.7.0

06 Mar 04:25
Compare
Choose a tag to compare

Questions about this release? Ask in the official discussion thread: #1680

Added

  • Adds --esm flag, option, and ts-node-esm binary (#1258, #1655)
    • Enables full esm support; no need for --loader nor NODE_OPTIONS
    • Use shebang #!/usr/bin/env ts-node-esm, run ts-node --esm, or add to your tsconfig.json: "ts-node": {"esm": true}

Changed

  • Unflag ESM json modules on node >=17.5.0 (#1661, #1665) @Jamesernator
    • no longer requires --experimental-json-modules
  • 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

v10.6.0...v10.7.0
https://github.com/TypeStrong/ts-node/milestone/11

v10.6.0

01 Mar 17:05
Compare
Choose a tag to compare

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.
  • Adds support for target "ES2022" in moduleTypes overrides (#1650)

Fixed

  • Fixed bug where --swc and other third-party transpilers did not respect moduleTypes 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 uses process.execArgv to create a similar child runtime.
    • With this fix, child_process.fork() will preserve both node flags and ts-node hooks.
  • Fixed compatibility TypeScript 4.7's API changes (#1647, #1648)

v10.5.0...v10.6.0
https://github.com/TypeStrong/ts-node/milestone/9

v10.5.0

07 Feb 15:59
Compare
Choose a tag to compare

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 using const enums with preserveConstEnums disabled.
    • Fixes #693
  • 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 to ts-node and typescript, 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 accurate moduleTypes paths resolved relative to the tsconfig.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 throwing ERR_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

Misc

  • Adds experimental experimentalResolverFeatures option, but it does not do anything yet (#1514, #1614)

v10.4.0...v10.5.0
https://github.com/TypeStrong/ts-node/milestone/4

v10.4.0

22 Oct 19:23
Compare
Choose a tag to compare

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

v10.3.1...v10.4.0
https://github.com/TypeStrong/ts-node/milestone/8