NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #861 most downloaded on npm
Perform async work synchronously in Node.js using `worker_threads` with first-class TypeScript support.
Last release 4 months ago
28 May 2026
Release timing varies
gaps range from 9 days to 6 months
Nearly every release is documented
notes for 52 of 54 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
54 releases · first in 2021
One column per quarter.
Patch Changes #258 e752c6a Thanks @JounQin ! - fix(deps): update dependency @pkgr/core
Revert "fix(deps): update dependency @pkgr/core to ^0.3.0 ( #249 )"
Revert "fix(deps): update dependency @pkgr/core to ^0.3.0 (#249)"
Full Changelog: v0.11.10...v0.11.11
Patch Changes #249 173ef5e Thanks @renovate ! - fix(deps): update dependency @pkgr/core to ^0.3.0 Full Changelog : v0.11.8...v0.11.10
Full Changelog: v0.11.8...v0.11.10
Patch Changes #246 a5cf309 Thanks @JounQin ! - fix: republish as npm latest tag version Full Changelog : v0.11.7...v0.11.8
Full Changelog: v0.11.7...v0.11.8
Patch Changes #217 2a3f936 Thanks @fisker and @JounQin ! - fix: unexpected null pointer exception due to race condition Full Changelog : v0.11.6...v0.
2a3f936 Thanks @fisker and @JounQin! - fix: unexpected null pointer exception due to race conditionFull Changelog: v0.11.6...v0.11.7
Patch Changes #240 e0caff5 Thanks @JounQin ! - refactor: target ES2020 to drop tslib dependency Full Changelog : v0.11.5...v0.11.6
Full Changelog: v0.11.5...v0.11.6
Patch Changes #235 abdb67a Thanks @JounQin ! - fix: use tsdown to bundle cjs outputs Full Changelog : v0.11.4...v0.11.5
Full Changelog: v0.11.4...v0.11.5
### Patch Changes - #232 `18e6cd4` Thanks @JounQin! - fix: remove buggy module-sync entry Full Changelog: https://github.com/un-ts/synckit/compare/v0.
### Patch Changes - #228 `cc7c724` Thanks @JounQin! - fix: legacy top level types entry should prefer .d.cts Full Changelog: https://github.com/un-ts/
### Patch Changes - #226 `133408d` Thanks @JounQin! - fix: .cts should never be treated as esm Full Changelog: https://github.com/un-ts/synckit/compar
### Patch Changes - #224 `0966d2a` Thanks @JounQin! - fix: add missing MessageChannel from node:worker_threads for Node 14 compatibility Full Changelo
### Minor Changes - #222 `59f7432` Thanks @JounQin! - feat: add oxc ts runner support, correct swc ts runner with --import flag support ### Patch Chan
59f7432 Thanks @JounQin! - feat: add oxc ts runner support, correct swc ts runner with --import flag support#222 59f7432 Thanks @JounQin! - fix: .cjs should never be treated as ESM
#219 79fa3a2 Thanks @JounQin! - refactor: split into chunk files, add module-sync entry
#222 59f7432 Thanks @JounQin! - fix: only consider process.features.typescript when --no-experimental-strip-types flag enabled
Full Changelog: https://github.com/un-ts/synckit/compare/v0.10.3...v0.11.0
Patch Changes #245 bc77666 Thanks @JounQin ! - fix: unexpected null pointer exception due to race condition Full Changelog : v0.10.3...v0.10.4
Full Changelog: v0.10.3...v0.10.4
### Patch Changes - #214 `386bfb9` Thanks @fisker! - chore: improve performance on first run Full Changelog: https://github.com/un-ts/synckit/compare/
### Minor Changes - #206 `011e9c0` Thanks @JounQin! - refactor: simplify types, any function should be accepted - #210 `888302c` Thanks @JounQin! - fe
#206 011e9c0 Thanks @JounQin! - refactor: simplify types, any function should be accepted
#211 19f9a78 Thanks @JounQin! - feat: support node runner by default for Node 22.6+
#213 0d168d7 Thanks @JounQin! - feat: support stdio overriding in worker, what means stdio will be streamed in correct order now
#208 d3da4c3 Thanks @JounQin! - feat: support file url worker path
Full Changelog: https://github.com/un-ts/synckit/compare/v0.10.1...v0.10.2
### Patch Changes - #204 `e13a68a` Thanks @nwidynski! - fix: add support for type transformations to node runner, clarify correct Node versions suppor
Introducing the node runner, which will replace ts-node as the new default:
#199 7a5f1bd Thanks @nwidynski! - feat: add support for --experimental-strip-types
Introducing the node runner, which will replace ts-node as the new default:
--experimental-strip-types
flag enabled via NODE_OPTIONS env or cli args--no-experimental-strip-types
flag enabled via NODE_OPTIONS env or cli argsAn error will be thrown when attempting to run with node on unsupported versions (<22).
On these versions, the default runner remains ts-node when available.
Full Changelog: https://github.com/un-ts/synckit/compare/v0.9.2...v0.10.0
Patch Changes #243 5147bd2 Thanks @JounQin ! - fix: unexpected null pointer exception due to race condition
@jedlikowski made their first contribution in https://github.com/un-ts/synckit/pull/184
@fmal made their first contribution in https://github.com/un-ts/synckit/pull/175
@onigoetz made their first contribution in https://github.com/un-ts/synckit/pull/154
2541a1e Thanks @onigoetz! - feat!: use a single SharedArrayBuffer, remove useless bufferSize optionFull Changelog: https://github.com/un-ts/synckit/compare/v0.8.8...v0.9.0
### Patch Changes - #148 `7b6a0eb` Thanks @JounQin! - feat: migrate @pkgr/utils to lite @pkgr/core - This will make the whole package much more smalle
You can also pass a custom globalShims option as GlobalShim Array to custom your own shims:
#145 b2affa0 Thanks @JounQin! - feat: add new globalShims option, what means you can env SYNCKIT_GLOBAL_SHIMS=1 to enable auto polyfilling for some modules, for example: fetch from node-fetch, performance from node:perf_hooks.
You can also pass a custom globalShims option as GlobalShim Array to custom your own shims:
export interface GlobalShim {
moduleName: string
/**
* `undefined` means side effect only
*/
globalName?: string
/**
* 1. `undefined` or empty string means `default`, for example:
* ```js
* import globalName from 'module-name'
* ```
*
* 2. `null` means namespaced, for example:
* ```js
* import * as globalName from 'module-name'
* ```
*
*/
named?: string | null
/**
* If not `false`, the shim will only be applied when the original `globalName` unavailable,
* for example you may only want polyfill `globalThis.fetch` when it's unavailable natively:
* ```js
* import fetch from 'node-fetch'
*
* if (!globalThis.fetch) {
* globalThis.fetch = fetch
* }
* ```
*/
conditional?: boolean
}
You can aslo reuse the exported DEFAULT_GLOBAL_SHIMS_PRESET for extanding:
import { DEFAULT_GLOBAL_SHIMS_PRESET, createSyncFn } from 'synckit'
const syncFn = createSyncFn(require.resolve('./worker'), {
globalShims: [
...DEFAULT_GLOBAL_SHIMS_PRESET,
// your own shim here
],
})
Full Changelog: https://github.com/un-ts/synckit/compare/v0.8.6...v0.8.7
### Patch Changes - #141 `608c9d9` Thanks @JounQin! - fix: only fallback to ts-node when it's available - close #128 - #142 `097e5cd` Thanks @JounQin!
@krossekrabbe made their first contribution in https://github.com/un-ts/synckit/pull/126
### Patch Changes - #109 `b61087f` Thanks @JounQin! - fix: incorrect extractProperties typings for known object
### Patch Changes - #106 `9f27ff9` Thanks @JounQin! - feat: add swc (@swc-node/register) support out of box - #103 `b1308ac` Thanks @noahnu! - fix: pa
### Patch Changes - #98 `4fe6aef` Thanks @noahnu! - feat: support yarn PnP out of box, propagate PnP runtime - #97 `d1bed37` Thanks @noahnu! - fix: ty
#98 4fe6aef Thanks @noahnu! - feat: support yarn PnP out of box, propagate PnP runtime
#97 d1bed37 Thanks @noahnu! - fix: typo of SYNCKIT_EXEC_ARGV environment variable
#101 34e44ae Thanks @JounQin! - feat: propagate sync errors from worker
Full Changelog: https://github.com/un-ts/synckit/compare/v0.8.1...v0.8.2
### Patch Changes - #92 `396e964` Thanks @JounQin! - fix: better compatibility on Node 14
https://github.com/TypeStrong/ts-node
#90 ffcf174 Thanks @JounQin! - build!: drop Node 12 support, remove testing on Node 14
#90 ffcf174 Thanks @JounQin! - feat: support more ts runners for TypeScript files
Feel free to PR to add more runner support like swc if you want
### Patch Changes - #88 `f9d0c3e` Thanks @JounQin! - feat: support map cjs to cts, mjs to mts automatically
`1101ede` Thanks @JounQin! - chore: add donate and funding fields, update node engine field
`f098d29` Thanks @JounQin! - fix: known Windows issues
## 0.7.0 ### Minor Changes - #78 `fd85ccd` Thanks @JounQin! - feat: support js as ts, ts as esm, etc
### Patch Changes - #76 `e7393f1` Thanks @JounQin! - chore: export extractProperties
`da19076` Thanks @JounQin! - fix: extract and apply error properties
`18106a5` Thanks @JounQin! - feat: add custom execArgv support
### Minor Changes - #47 `a362982` Thanks @JounQin! - feat: drop child_process
Nothing published for this version
### Minor Changes - #45 `f38de5f` Thanks @JounQin! - feat: use native esm
### Patch Changes - #39 `0698572` Thanks @JounQin! - fix: test whether receiveMessageOnPort available for --experimental-worker
### Patch Changes - #37 `4ae675a` Thanks @JounQin! - fix: worker_threads API changes a lot
### Patch Changes - #35 `578db5b` Thanks @JounQin! - fix: improve compatibility with node >=8.10 <12.11
### Patch Changes - #34 `255736c` Thanks @JounQin! - fix: worker_threads is only available on Node 12 - #32 `d84e48e` Thanks @JounQin! - fix(types): s
### Minor Changes - #27 `2809da0` Thanks @JounQin! - feat: add more env variables support
### Minor Changes - #23 `6577e86` Thanks @JounQin! - feat: use worker_threads by default for performance
`b3e9760` Thanks @JounQin! - feat: support custom TSCONFIG_PATH env
fix: use npm run release for clean-publish
fix: use npm run release for clean-publish
### Patch Changes - #9 `cad2e05` Thanks @JounQin! - fix: try to fix clean-publish + changeset publish again
Nothing published for this version
### Patch Changes - #7 `0336c22` Thanks @JounQin! - fix: try to fix clean-publish + changeset publish
### Patch Changes - #5 `e451004` Thanks @JounQin! - fix: improve type definitions, mark tslib as dep
`e7446f9` Thanks @JounQin! - feat: first blood, should just work
Your coding agent can read these notes before it upgrades. Set up the MCP server →