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 #52

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

Conversation

mattvaughan
Copy link
Owner

This PR contains the following updates:

Package Type Update Change
ts-node (source) optionalDependencies major ~8.4.1 -> ~10.5.0

Release Notes

TypeStrong/ts-node

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

v8.10.2

Compare Source

Fixed

Fixes #​1037: source maps broken on Windows. (#​1038)

Misc

Fix failing tests on node 6 (#​1035)
Push coverage from Github Actions; remove TravisCI (#​1034)
Run tests e2e against an npm pack && npm installed ts-node (#​1032)
Run CI tests on Windows (#​1041)
Run CI only once per commit on pull requests and master (#​1042)

v8.10.1

Compare Source

Fix

Fixes #​1026: revert the addition of package.json "exports" because it blocked require()s that used to work, for example require('ts-node/register') (#​1027)

v8.10.0

Compare Source

Added

Experimental support for native ECMAScript modules in node >=13 (#​1007, #​1010)

v8.9.1

Compare Source

Fixed

Fix --interactive / -i flag so it forces REPL even when stdin is not a TTY (#​1019)

v8.9.0

Compare Source

Fixed

Fix failing tests caused by recent changes to @​types/node (#​1016)
Fix #​945: Bump source-map-support dependency to include upstream fix for worker threads error handling (#​1015) @​addaleax
Fix #​1004: in --scriptMode, resolve config file relative to realpath of entrypoint script (#​1009)
Normalized filenames in cache to fix performance issues on Windows (#​997) @​sylc

Added

Add timestamps to debug logging (#​994) @​sylc

Docs

Improve coverage of the README (#​1000) @​KasparEtter
Change order of install commands in README (#​993) @​jacobdcastro
Mention ts-node -vv flag in issue template (#​1001)
Run GHActions tests on pull requests (#​1017)

v8.8.2

Compare Source

Fixed

  • Avoid pushing to rootFileNames with version

v8.8.1

Compare Source

Fixed

v8.8.0

Compare Source

Added

  • Add sanitize=true to README for SVGs to work on NPM

Fixed

v8.7.0

Compare Source

Fixed

  • Remove buggy caching of ts.sys.readDirectory (#​969)
  • Fix REPL ASI handling when user input starts with - (#​944)

Added

Changed

Docs

v8.6.2

Compare Source

Fixed

  • Downgrade yn due to node engine (#​942)

v8.6.1

Compare Source

Fixed

v8.6.0

Compare Source

Fixed

  • Remove normalize slashes from config file loading for Windows

Added

  • Configure using tsconfig.json (#​921) @​cspotcode 🎉
  • Allow dir to be configurable
  • Add --build flag for emitting compiled TypeScript (under --compiler-host mode)
  • Incremental compiler support (#​895)

v8.5.4

Compare Source

  • Fix relative node_modules ignore 266eaa5

v8.5.3

Compare Source

Fixed

v8.5.2

Compare Source

Fixed

  • Revert --require module loading change

v8.5.0

Compare Source

Added

  • Expose ts-script for relative tsconfig.json files from <script.ts>
  • Support --interactive CLI option
  • Expose registered ts-node instance information on process
  • Allow dynamic enable of registered ts-node instances
  • Allow --dir to be configurable from CLI
  • Add --scope flag for directory scoped compilation of TypeScript
  • REPL history on node 11+
  • Expose create function for programmatic compiler usage

Fixed

  • Repeated RegExps in REPL will now compile

Configuration

📅 Schedule: 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, click this checkbox.

This PR has been generated by Renovate Bot.

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

Successfully merging this pull request may close these issues.

v8.6.0 breaks TS_NODE_COMPILER_OPTIONS environment variable
1 participant