Perform async work synchronously in Node.js using `worker_threads` with first-class TypeScript and Yarn P'n'P support.
7b6a0eb
Thanks @JounQin! - feat: migrate @pkgr/utils
to lite @pkgr/core
- This will make the whole package much more smallerFull Changelog: https://github.com/un-ts/synckit/compare/v0.8.7...v0.8.8
#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
Full Changelog: https://github.com/un-ts/synckit/compare/v0.8.4...v0.8.5
#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
#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