Skip to content
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

Update dependency ts-node to v10 #333

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 23, 2021

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
ts-node (source) 8.10.2 -> 10.9.2 age adoption passing confidence

Release Notes

TypeStrong/ts-node (ts-node)

v10.9.2: Fix tsconfig.json file not found

Compare Source

Fixed

v10.9.1

Compare Source

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

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

v10.9.0

Compare Source

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

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

v10.8.2

Compare Source

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

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

v10.8.1

Compare Source

Fixed

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

v10.8.0

Compare Source

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

Fixed

Docs

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

v10.7.0

Compare Source

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

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

Compare Source

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)

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

v10.5.0

Compare Source

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

Docs

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

Compare Source

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

Compare Source

Fixed

https://github.com/TypeStrong/ts-node/milestone/7

v10.3.0

Compare Source

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

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

v10.2.1

Compare Source

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.

https://github.com/TypeStrong/ts-node/milestone/6

v10.2.0

Compare Source

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

Added

  • Adds top-level await support to REPL (#​1383, #​245) @​ejose19
    • can be disabled with --no-experimental-repl-await, experimentalReplAwait, or TS_NODE_EXPERIMENTAL_REPL_AWAIT (CLI docs, API docs)
  • Setting "pretty": false disables pretty formatting of diagnostics even when stdout is a TTY (#​1418, #​1420) @​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, #​1120, #​729, #​850, #​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, #​1405)

Fixed

https://github.com/TypeStrong/ts-node/milestone/2

v10.1.0

Compare Source

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

Added

  • Add "moduleType" option to override module type -- CommonJS or ECMAScript -- on select files. (docs) (#​1342, #​1371, #​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 for help on test coverage
  • Implement "extends" support for "ts-node" options in tsconfig.json (#​1328, #​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) (#​1346, #​1367)

Changed

  • Improve error messages thrown by native ESM loader hooks (#​1357, #​1373) @​tars0x9752
    • messages more closely match node; are more descriptive
  • Emit "ts-node" object at the top of --showConfig output instead of the bottom (#​1355)

Fixed

  • Fix #​1282: Set correct globals in [stdin], [eval], and <repl> contexts (#​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: Set swc option keepClassNames to true (#​1344)
  • Fix: #​1387: REPL outputs 'use strict' after first empty line of input (#​1388) @​ejose19

Docs

  • Update ESM docs to say that env vars are supported with node --loader ts-node/esm (docs) (#​1379)

https://github.com/TypeStrong/ts-node/milestone/3

v10.0.0

Compare Source

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

Breaking changes are prefixed with [BREAKING]

Added

Changed

  • [BREAKING] Make --script-mode default behavior; resolve tsconfig relative to entrypoint script instead of cwd (#​949, #​1197, #​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)
  • [BREAKING] Remove support for node 10. Minimum supported version is node 12 (#​1312)
  • Rename --dir to --cwd; rename TS_NODE_DIR to TS_NODE_CWD (#​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

Removed

  • [BREAKING] Internal APIs removed from type declarations (#​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 and #​1235: always throw ERR_REQUIRE_ESM when attempting to execute ESM as CJS, even when not using --loader ts-node/esm (#​1232)
    • This aligns our behavior with vanilla node
  • [BREAKING] Fix #​1225: compiler is loaded relative to tsconfig.json instead of entrypoint script (#​1155)
    • In most cases this change will have no noticable effect
  • Fix #​1217: REPL not always using passed stdout and stderr (#​1224)
  • Fix #​1220: ts-node ./index may execute the wrong file extension because tsconfig search poisons the require.resolve cache (#​1155)
  • Fix #​1322: Sourcemaps fail for filenames with spaces or other characters which are percent-encoded in URLs (#​1160, #​1330)
  • Fix #​1331: Resolution of node builtin modules in ESM loader fails on node >=12.20.0, <13 (#​1332)

Docs

https://github.com/TypeStrong/ts-node/milestone/1

v9.1.1

Compare Source

No code changes. We re-packed and republished v9.1.1, because the v9.1.0 package was broken due to an npm v7 bug.

Fixes

  • Published tarball had extra slashes in the paths of dist files. #​1172

v9.1.0

Compare Source

Added

  • Expose ts-node REPL via the API (#​1121) @​MarcManiez
  • Allow --typeCheck flag to override --transpileOnly flag specified in tsconfig.json (#​1142)

Changed

  • Rename interface Register to Service. It is still aliased as Register for backwards compatibility (#​1158)
  • Update code copied from node's ESM resolver to be the latest from node 15, to keep our ESM resolver's behavior as close as possible to vanilla node (#​1167)

Fixed

  • ESM resolver will preserve search portion of URL, used for cache busting (#​1165) @​frandiox
  • Fix ESM resolution of builtin modules on node >=14.13.1 (#​1136)
  • Recognize --es-module-specifier-resolution as an alias of --experimental-specifier-resolution for node 12 compatibility (#​1122) @​nguyensomniac

Docs

Misc

  • Changes to test matrix: Test against node 15; drop node 13 tests; remove 12.16 in favor of latest 12.x.x (#​1138, #​1148)
  • Improve codecov rules to remove misleading test failures (#​1159)

v9.0.0

Compare Source

Breaking changes are labelled [BREAKING] below.

Added

  • Throw ERR_REQUIRE_ESM when a file is require()d which should be loaded as ESM (#​1031)
  • Re-add "exports" declaration to package.json in backwards-compatible way, enabling node --loader ts-node/esm without file extension (#​1028)
  • Allow specifying "require" option via tsconfig (#​925)
  • REPL respects node's NODE_NO_READLINE environment variable (#​1090)
  • Add a transpile-only entrypoint for ESM loader: node --loader ts-node/esm/transpile-only (#​1102) @​concision

Changed

  • [BREAKING] Drops support for node versions < 10 (#​1036)

Fixed

  • [BREAKING] Re-add realpath, which should fix workflows that use symlinks, such as pnpm, Lerna workspaces, or other mono-repo configurations (#​970)
  • Compile files within node_modules when --skip-ignore or --ignore options are configured to allow it (#​970)
  • Fix #​884 by not adding all referenced files to getSourceFileNames/rootNames (#​999)
  • Fix #​996: bump projectVersion every time getSourceFileNames changes, avoiding accidentally outdated typechecking (#​998)
  • Fix #​1051: pass transformers object to ts.transpileModule (#​1054) @​thetutlage
  • Fix #​1060: use source maps for stack traces in ESM modules (#​1087)
  • Fix #​1072: Respect --experimental-specifier-resolution coming from NODE_OPTIONS in ESM loader (#​1085) @​evg656e
  • Fix #​1098: ESM loader should skip .cjs, .mjs, and any unexpected file extensions (#​1103) @​concision

Docs

  • Better explain how to compile imports, either CommonJS or using experimental ESM loader. Resolves #​1075 (#​1086)

Misc


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants