synckit 0.10.0 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -11
- package/index.d.cts +3 -0
- package/lib/index.cjs +125 -35
- package/lib/index.d.ts +15 -7
- package/lib/index.js +113 -44
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +12 -6
- package/lib/types.js +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +11 -5
package/README.md
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
[](https://standardjs.com)
|
12
12
|
[](https://github.com/prettier/prettier)
|
13
13
|
|
14
|
-
Perform async work synchronously in Node.js using `worker_threads` with first-class TypeScript and Yarn P'n'P support.
|
14
|
+
Perform async work synchronously in Node.js/Bun using `worker_threads` with first-class TypeScript and Yarn P'n'P support.
|
15
15
|
|
16
16
|
## TOC <!-- omit in toc -->
|
17
17
|
|
@@ -22,7 +22,8 @@ Perform async work synchronously in Node.js using `worker_threads` with first-cl
|
|
22
22
|
- [Options](#options)
|
23
23
|
- [Envs](#envs)
|
24
24
|
- [TypeScript](#typescript)
|
25
|
-
- [`node` (Default, Node
|
25
|
+
- [`node` (Default, Node 22.6+)](#node-default-node-226)
|
26
|
+
- [`bun` (Default, Bun)](#bun-default-bun)
|
26
27
|
- [`ts-node` (Default)](#ts-node-default)
|
27
28
|
- [`esbuild-register`](#esbuild-register)
|
28
29
|
- [`esbuild-runner`](#esbuild-runner)
|
@@ -31,6 +32,8 @@ Perform async work synchronously in Node.js using `worker_threads` with first-cl
|
|
31
32
|
- [Benchmark](#benchmark)
|
32
33
|
- [Sponsors](#sponsors)
|
33
34
|
- [Backers](#backers)
|
35
|
+
- [Who are using `synckit`](#who-are-using-synckit)
|
36
|
+
- [Acknowledgements](#acknowledgements)
|
34
37
|
- [Changelog](#changelog)
|
35
38
|
- [License](#license)
|
36
39
|
|
@@ -127,17 +130,25 @@ export interface GlobalShim {
|
|
127
130
|
|
128
131
|
### TypeScript
|
129
132
|
|
130
|
-
#### `node` (Default, Node
|
133
|
+
#### `node` (Default, Node 22.6+)
|
131
134
|
|
132
|
-
On recent Node versions, you may select this runner to execute your worker file (a `.ts` file) in the native runtime.
|
135
|
+
On recent `Node` versions, you may select this runner to execute your worker file (a `.ts` file) in the native runtime.
|
133
136
|
|
134
|
-
As of Node v23, this feature is supported out of the box.
|
137
|
+
As of `Node` v23.6, this feature is supported out of the box. For `Node` `>=22.6 <23.6`, this feature is supported via `--experimental-strip-types` flag. Visit the [documentation](https://nodejs.org/docs/latest/api/typescript.html#type-stripping) to learn more.
|
135
138
|
|
136
|
-
When `synckit` detects the process to be running with
|
139
|
+
When `synckit` detects the process to be running with supported `Node` versions (>=22.6), it will execute the worker file with the `node` runner by default, you can disable this behavior by setting `--no-experimental-strip-types` flag via `NODE_OPTIONS` env or cli arg.
|
140
|
+
|
141
|
+
#### `bun` (Default, Bun)
|
142
|
+
|
143
|
+
[`Bun`](https://bun.sh/docs/typescript) supports `TypeScript` natively.
|
144
|
+
|
145
|
+
When `synckit` detects the process to be running with `Bun`, it will execute the worker file with the `bun` runner by default.
|
146
|
+
|
147
|
+
In this case, `synckit` doesn't do anything to the worker itself, it just passes through the worker directly.
|
137
148
|
|
138
149
|
#### `ts-node` (Default)
|
139
150
|
|
140
|
-
Prior to Node
|
151
|
+
Prior to Node v22.6, you may want to use `ts-node` to execute your worker file (a `.ts` file).
|
141
152
|
|
142
153
|
If you want to use a custom tsconfig as project instead of default `tsconfig.json`, use `TS_NODE_PROJECT` env. Please view [ts-node](https://github.com/TypeStrong/ts-node#tsconfig) for more details.
|
143
154
|
|
@@ -161,14 +172,36 @@ Please view [`tsx`][] for its document
|
|
161
172
|
|
162
173
|
## Benchmark
|
163
174
|
|
164
|
-
|
175
|
+
The following are the benchmark results of `synckit` against other libraries with Node.js v20.19.0 on my personal MacBook Pro with 64G M1 Max:
|
165
176
|
|
166
|
-
|
177
|
+
```sh
|
178
|
+
# cjs
|
179
|
+
┌───────────┬────────────┬──────────────┬───────────────────┬─────────────┬────────────────┬───────────────────┬────────────────────────┬───────────┬─────────────────┐
|
180
|
+
│ (index) │ synckit │ sync-threads │ perf sync-threads │ deasync │ perf deasync │ make-synchronized │ perf make-synchronized │ native │ perf native │
|
181
|
+
├───────────┼────────────┼──────────────┼───────────────────┼─────────────┼────────────────┼───────────────────┼────────────────────────┼───────────┼─────────────────┤
|
182
|
+
│ loadTime │ '17.26ms' │ '1.49ms' │ '11.57x slower' │ '146.55ms' │ '8.49x faster' │ '1025.77ms' │ '59.42x faster' │ '0.29ms' │ '59.71x slower' │
|
183
|
+
│ runTime │ '143.12ms' │ '3689.15ms' │ '25.78x faster' │ '1221.11ms' │ '8.53x faster' │ '2842.50ms' │ '19.86x faster' │ '12.64ms' │ '11.33x slower' │
|
184
|
+
│ totalTime │ '160.38ms' │ '3690.64ms' │ '23.01x faster' │ '1367.66ms' │ '8.53x faster' │ '3868.27ms' │ '24.12x faster' │ '12.93ms' │ '12.41x slower' │
|
185
|
+
└───────────┴────────────┴──────────────┴───────────────────┴─────────────┴────────────────┴───────────────────┴────────────────────────┴───────────┴─────────────────┘
|
186
|
+
```
|
187
|
+
|
188
|
+
```sh
|
189
|
+
# esm
|
190
|
+
┌───────────┬────────────┬──────────────┬───────────────────┬─────────────┬────────────────┬───────────────────┬────────────────────────┬───────────┬─────────────────┐
|
191
|
+
│ (index) │ synckit │ sync-threads │ perf sync-threads │ deasync │ perf deasync │ make-synchronized │ perf make-synchronized │ native │ perf native │
|
192
|
+
├───────────┼────────────┼──────────────┼───────────────────┼─────────────┼────────────────┼───────────────────┼────────────────────────┼───────────┼─────────────────┤
|
193
|
+
│ loadTime │ '23.88ms' │ '2.03ms' │ '11.75x slower' │ '70.95ms' │ '2.97x faster' │ '400.24ms' │ '16.76x faster' │ '0.44ms' │ '54.70x slower' │
|
194
|
+
│ runTime │ '139.56ms' │ '3570.12ms' │ '25.58x faster' │ '1150.99ms' │ '8.25x faster' │ '3484.04ms' │ '24.96x faster' │ '12.98ms' │ '10.75x slower' │
|
195
|
+
│ totalTime │ '163.44ms' │ '3572.15ms' │ '21.86x faster' │ '1221.93ms' │ '7.48x faster' │ '3884.28ms' │ '23.77x faster' │ '13.42ms' │ '12.18x slower' │
|
196
|
+
└───────────┴────────────┴──────────────┴───────────────────┴─────────────┴────────────────┴───────────────────┴────────────────────────┴───────────┴─────────────────┘
|
197
|
+
```
|
167
198
|
|
168
199
|
See [benchmark.cjs](./benchmarks/benchmark.cjs.txt) and [benchmark.esm](./benchmarks/benchmark.esm.txt) for more details.
|
169
200
|
|
170
201
|
You can try it with running `yarn benchmark` by yourself. [Here](./benchmarks/benchmark.js) is the benchmark source code.
|
171
202
|
|
203
|
+
[](https://github.com/sponsors/JounQin)
|
204
|
+
|
172
205
|
## Sponsors
|
173
206
|
|
174
207
|
| 1stG | RxTS | UnTS |
|
@@ -177,12 +210,24 @@ You can try it with running `yarn benchmark` by yourself. [Here](./benchmarks/be
|
|
177
210
|
|
178
211
|
## Backers
|
179
212
|
|
180
|
-
[](https://github.com/sponsors/JounQin)
|
181
|
-
|
182
213
|
| 1stG | RxTS | UnTS |
|
183
214
|
| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
184
215
|
| [](https://opencollective.com/1stG) | [](https://opencollective.com/rxts) | [](https://opencollective.com/unts) |
|
185
216
|
|
217
|
+
## Who are using `synckit`
|
218
|
+
|
219
|
+
- [`@cspell/eslint-plugin`](https://github.com/streetsidesoftware/cspell/blob/ec04bcee0c90ff4e2a9fb5ef4421714796fb58ba/packages/cspell-eslint-plugin/package.json#L80)
|
220
|
+
- [`astrojs-compiler-sync`](https://github.com/ota-meshi/astrojs-compiler-sync/blob/da4e86fd601755e40599d7f5121bc83d08255c42/package.json#L52)
|
221
|
+
- [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier/blob/ca5eb3ec11c4ae511e1da22736c73b253210b73b/package.json#L67)
|
222
|
+
- [`eslint-plugin-prettier-vue`](https://github.com/meteorlxy/eslint-plugin-prettier-vue/blob/d3f6722303d66a2b223df2f750982e33c1143d5d/package.json#L40)
|
223
|
+
- [`eslint-mdx`](https://github.com/mdx-js/eslint-mdx/blob/4623359cc9784d3e38bd917ed001c5d7d826f990/packages/eslint-mdx/package.json#L40)
|
224
|
+
- [`prettier-plugin-packagejson`](https://github.com/matzkoh/prettier-plugin-packagejson/blob/eb7ade2a048d6d163cf8ef37e098ee273f72c585/package.json#L31)
|
225
|
+
- [`jest-snapshot`](https://github.com/jestjs/jest/blob/4e7d916ec6a16de5548273c17b5d2c5761b0aebb/packages/jest-snapshot/package.json#L42)
|
226
|
+
|
227
|
+
## Acknowledgements
|
228
|
+
|
229
|
+
This package is original inspired by [`esbuild`](https://github.com/evanw/esbuild) and [`sync-threads`](https://github.com/lambci/sync-threads).
|
230
|
+
|
186
231
|
## Changelog
|
187
232
|
|
188
233
|
Detailed changes for each release are documented in [CHANGELOG.md](./CHANGELOG.md).
|
package/index.d.cts
ADDED
package/lib/index.cjs
CHANGED
@@ -61,6 +61,8 @@ const INT32_BYTES = 4;
|
|
61
61
|
const TsRunner = {
|
62
62
|
// https://nodejs.org/docs/latest/api/typescript.html#type-stripping
|
63
63
|
Node: "node",
|
64
|
+
// https://bun.sh/docs/typescript
|
65
|
+
Bun: "bun",
|
64
66
|
// https://github.com/TypeStrong/ts-node
|
65
67
|
TsNode: "ts-node",
|
66
68
|
// https://github.com/egoist/esbuild-register
|
@@ -73,22 +75,47 @@ const TsRunner = {
|
|
73
75
|
TSX: "tsx"
|
74
76
|
};
|
75
77
|
const {
|
76
|
-
NODE_OPTIONS,
|
77
|
-
SYNCKIT_EXEC_ARGV,
|
78
|
+
NODE_OPTIONS: NODE_OPTIONS_ = "",
|
79
|
+
SYNCKIT_EXEC_ARGV = "",
|
78
80
|
SYNCKIT_GLOBAL_SHIMS,
|
79
81
|
SYNCKIT_TIMEOUT,
|
80
82
|
SYNCKIT_TS_RUNNER
|
81
83
|
} = process.env;
|
82
|
-
const MTS_SUPPORTED_NODE_VERSION = 16;
|
83
|
-
const LOADER_SUPPORTED_NODE_VERSION = 20;
|
84
|
-
const
|
85
|
-
const
|
86
|
-
const
|
84
|
+
const MTS_SUPPORTED_NODE_VERSION = "16";
|
85
|
+
const LOADER_SUPPORTED_NODE_VERSION = "20";
|
86
|
+
const STRIP_TYPES_NODE_VERSION = "22.6";
|
87
|
+
const TRANSFORM_TYPES_NODE_VERSION = "22.7";
|
88
|
+
const FEATURE_TYPESCRIPT_NODE_VERSION = "22.10";
|
89
|
+
const DEFAULT_TYPES_NODE_VERSION = "23.6";
|
87
90
|
const STRIP_TYPES_FLAG = "--experimental-strip-types";
|
91
|
+
const TRANSFORM_TYPES_FLAG = "--experimental-transform-types";
|
88
92
|
const NO_STRIP_TYPES_FLAG = "--no-experimental-strip-types";
|
89
|
-
const
|
93
|
+
const NODE_OPTIONS = NODE_OPTIONS_.split(/\s+/);
|
94
|
+
const hasFlag = (flag) => NODE_OPTIONS.includes(flag) || process.argv.includes(flag);
|
95
|
+
const parseVersion = (version) => version.split(".").map(Number.parseFloat);
|
96
|
+
const compareVersion = (version1, version2) => {
|
97
|
+
const versions1 = parseVersion(version1);
|
98
|
+
const versions2 = parseVersion(version2);
|
99
|
+
const length = Math.max(versions1.length, versions2.length);
|
100
|
+
for (let i = 0; i < length; i++) {
|
101
|
+
const v1 = versions1[i] || 0;
|
102
|
+
const v2 = versions2[i] || 0;
|
103
|
+
if (v1 > v2) {
|
104
|
+
return 1;
|
105
|
+
}
|
106
|
+
if (v1 < v2) {
|
107
|
+
return -1;
|
108
|
+
}
|
109
|
+
}
|
110
|
+
return 0;
|
111
|
+
};
|
112
|
+
const NODE_VERSION = process.versions.node;
|
113
|
+
const NO_STRIP_TYPES = (
|
114
|
+
// >=
|
115
|
+
compareVersion(NODE_VERSION, FEATURE_TYPESCRIPT_NODE_VERSION) >= 0 ? process.features.typescript === false : hasFlag(NO_STRIP_TYPES_FLAG) && !hasFlag(STRIP_TYPES_FLAG) && !hasFlag(TRANSFORM_TYPES_FLAG)
|
116
|
+
);
|
90
117
|
const DEFAULT_TIMEOUT = SYNCKIT_TIMEOUT ? +SYNCKIT_TIMEOUT : void 0;
|
91
|
-
const DEFAULT_EXEC_ARGV =
|
118
|
+
const DEFAULT_EXEC_ARGV = SYNCKIT_EXEC_ARGV.split(",");
|
92
119
|
const DEFAULT_TS_RUNNER = SYNCKIT_TS_RUNNER;
|
93
120
|
const DEFAULT_GLOBAL_SHIMS = ["1", "true"].includes(
|
94
121
|
SYNCKIT_GLOBAL_SHIMS
|
@@ -116,6 +143,9 @@ function extractProperties(object) {
|
|
116
143
|
}
|
117
144
|
function createSyncFn(workerPath, timeoutOrOptions) {
|
118
145
|
syncFnCache != null ? syncFnCache : syncFnCache = /* @__PURE__ */ new Map();
|
146
|
+
if (typeof workerPath !== "string" || workerPath.startsWith("file://")) {
|
147
|
+
workerPath = node_url.fileURLToPath(workerPath);
|
148
|
+
}
|
119
149
|
const cachedSyncFn = syncFnCache.get(workerPath);
|
120
150
|
if (cachedSyncFn) {
|
121
151
|
return cachedSyncFn;
|
@@ -131,10 +161,6 @@ function createSyncFn(workerPath, timeoutOrOptions) {
|
|
131
161
|
syncFnCache.set(workerPath, syncFn);
|
132
162
|
return syncFn;
|
133
163
|
}
|
134
|
-
const cjsRequire = typeof require === "undefined" ? module$1.createRequire(import_meta.url) : (
|
135
|
-
/* istanbul ignore next */
|
136
|
-
require
|
137
|
-
);
|
138
164
|
const dataUrl = (code) => new URL(`data:text/javascript,${encodeURIComponent(code)}`);
|
139
165
|
const isFile = (path2) => {
|
140
166
|
var _a;
|
@@ -146,7 +172,7 @@ const isFile = (path2) => {
|
|
146
172
|
};
|
147
173
|
const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
148
174
|
let ext = path.extname(workerPath);
|
149
|
-
if (!/[/\\]node_modules
|
175
|
+
if (!/([/\\])node_modules\1/.test(workerPath) && (!ext || /^\.[cm]?js$/.test(ext))) {
|
150
176
|
const workPathWithoutExt = ext ? workerPath.slice(0, -ext.length) : workerPath;
|
151
177
|
let extensions;
|
152
178
|
switch (ext) {
|
@@ -179,24 +205,51 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
179
205
|
if (!tsUseEsm) {
|
180
206
|
const pkg = core.findUp(workerPath);
|
181
207
|
if (pkg) {
|
182
|
-
tsUseEsm = cjsRequire(pkg).type === "module";
|
208
|
+
tsUseEsm = core.cjsRequire(pkg).type === "module";
|
183
209
|
}
|
184
210
|
}
|
211
|
+
const stripTypesIndex = execArgv.indexOf(STRIP_TYPES_FLAG);
|
212
|
+
const transformTypesIndex = execArgv.indexOf(TRANSFORM_TYPES_FLAG);
|
213
|
+
const noStripTypesIndex = execArgv.indexOf(NO_STRIP_TYPES_FLAG);
|
214
|
+
const execArgvNoStripTypes = noStripTypesIndex > stripTypesIndex || noStripTypesIndex > transformTypesIndex;
|
215
|
+
const noStripTypes = execArgvNoStripTypes || stripTypesIndex === -1 && transformTypesIndex === -1 && NO_STRIP_TYPES;
|
185
216
|
if (tsRunner == null) {
|
186
|
-
if (
|
217
|
+
if (process.versions.bun) {
|
218
|
+
tsRunner = TsRunner.Bun;
|
219
|
+
} else if (!noStripTypes && // >=
|
220
|
+
compareVersion(NODE_VERSION, STRIP_TYPES_NODE_VERSION) >= 0) {
|
187
221
|
tsRunner = TsRunner.Node;
|
188
222
|
} else if (core.isPkgAvailable(TsRunner.TsNode)) {
|
189
223
|
tsRunner = TsRunner.TsNode;
|
190
224
|
}
|
191
225
|
}
|
192
226
|
switch (tsRunner) {
|
227
|
+
case TsRunner.Bun: {
|
228
|
+
break;
|
229
|
+
}
|
193
230
|
case TsRunner.Node: {
|
194
|
-
if (NODE_VERSION <
|
231
|
+
if (compareVersion(NODE_VERSION, STRIP_TYPES_NODE_VERSION) < 0) {
|
195
232
|
throw new Error(
|
196
233
|
"type stripping is not supported in this node version"
|
197
234
|
);
|
198
235
|
}
|
199
|
-
|
236
|
+
if (noStripTypes) {
|
237
|
+
throw new Error("type stripping is disabled explicitly");
|
238
|
+
}
|
239
|
+
if (compareVersion(NODE_VERSION, DEFAULT_TYPES_NODE_VERSION) >= 0) {
|
240
|
+
break;
|
241
|
+
}
|
242
|
+
if (
|
243
|
+
// >=
|
244
|
+
compareVersion(NODE_VERSION, TRANSFORM_TYPES_NODE_VERSION) >= 0 && !execArgv.includes(TRANSFORM_TYPES_FLAG)
|
245
|
+
) {
|
246
|
+
execArgv = [TRANSFORM_TYPES_FLAG, ...execArgv];
|
247
|
+
} else if (
|
248
|
+
// >=
|
249
|
+
compareVersion(NODE_VERSION, STRIP_TYPES_NODE_VERSION) >= 0 && !execArgv.includes(STRIP_TYPES_FLAG)
|
250
|
+
) {
|
251
|
+
execArgv = [STRIP_TYPES_FLAG, ...execArgv];
|
252
|
+
}
|
200
253
|
break;
|
201
254
|
}
|
202
255
|
case TsRunner.TsNode: {
|
@@ -240,25 +293,24 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
240
293
|
} else if (!jsUseEsm) {
|
241
294
|
const pkg = core.findUp(workerPath);
|
242
295
|
if (pkg) {
|
243
|
-
jsUseEsm = cjsRequire(pkg).type === "module";
|
296
|
+
jsUseEsm = core.cjsRequire(pkg).type === "module";
|
244
297
|
}
|
245
298
|
}
|
246
299
|
let resolvedPnpLoaderPath;
|
247
300
|
if (process.versions.pnp) {
|
248
|
-
const nodeOptions = NODE_OPTIONS == null ? void 0 : NODE_OPTIONS.split(/\s+/);
|
249
301
|
let pnpApiPath;
|
250
302
|
try {
|
251
|
-
pnpApiPath = cjsRequire.resolve("pnpapi");
|
303
|
+
pnpApiPath = core.cjsRequire.resolve("pnpapi");
|
252
304
|
} catch (e) {
|
253
305
|
}
|
254
|
-
if (pnpApiPath && !
|
255
|
-
(option, index) => ["-r", "--require"].includes(option) && pnpApiPath === cjsRequire.resolve(
|
256
|
-
)
|
306
|
+
if (pnpApiPath && !NODE_OPTIONS.some(
|
307
|
+
(option, index) => ["-r", "--require"].includes(option) && pnpApiPath === core.cjsRequire.resolve(NODE_OPTIONS[index + 1])
|
308
|
+
) && !execArgv.includes(pnpApiPath)) {
|
257
309
|
execArgv = ["-r", pnpApiPath, ...execArgv];
|
258
310
|
const pnpLoaderPath = path.resolve(pnpApiPath, "../.pnp.loader.mjs");
|
259
311
|
if (isFile(pnpLoaderPath)) {
|
260
312
|
resolvedPnpLoaderPath = node_url.pathToFileURL(pnpLoaderPath).toString();
|
261
|
-
if (NODE_VERSION <
|
313
|
+
if (compareVersion(NODE_VERSION, LOADER_SUPPORTED_NODE_VERSION) < 0) {
|
262
314
|
execArgv = [
|
263
315
|
"--experimental-loader",
|
264
316
|
resolvedPnpLoaderPath,
|
@@ -305,6 +357,9 @@ const _dirname = typeof __dirname === "undefined" ? path.dirname(node_url.fileUR
|
|
305
357
|
let sharedBuffer;
|
306
358
|
let sharedBufferView;
|
307
359
|
const generateGlobals = (workerPath, globalShims, type = "import") => {
|
360
|
+
if (globalShims.length === 0) {
|
361
|
+
return "";
|
362
|
+
}
|
308
363
|
globalsCache != null ? globalsCache : globalsCache = /* @__PURE__ */ new Map();
|
309
364
|
const cached = globalsCache.get(workerPath);
|
310
365
|
if (cached) {
|
@@ -348,7 +403,8 @@ function startWorkerThread(workerPath, {
|
|
348
403
|
} = setupTsRunner(workerPath, { execArgv, tsRunner });
|
349
404
|
const workerPathUrl = node_url.pathToFileURL(finalWorkerPath);
|
350
405
|
if (/\.[cm]ts$/.test(finalWorkerPath)) {
|
351
|
-
const isTsxSupported = !tsUseEsm ||
|
406
|
+
const isTsxSupported = !tsUseEsm || // >=
|
407
|
+
compareVersion(NODE_VERSION, MTS_SUPPORTED_NODE_VERSION) >= 0;
|
352
408
|
if (!finalTsRunner) {
|
353
409
|
throw new Error("No ts runner specified, ts worker path is not supported");
|
354
410
|
} else if ([
|
@@ -429,11 +485,14 @@ function startWorkerThread(workerPath, {
|
|
429
485
|
const id = nextID++;
|
430
486
|
const msg = { id, args };
|
431
487
|
worker.postMessage(msg);
|
432
|
-
const { result, error, properties } = receiveMessageWithId(
|
488
|
+
const { result, error, properties, stdio } = receiveMessageWithId(
|
433
489
|
mainPort,
|
434
490
|
id,
|
435
491
|
timeout
|
436
492
|
);
|
493
|
+
for (const { type, chunk, encoding } of stdio) {
|
494
|
+
process[type].write(chunk, encoding);
|
495
|
+
}
|
437
496
|
if (error) {
|
438
497
|
throw Object.assign(error, properties);
|
439
498
|
}
|
@@ -446,8 +505,27 @@ function runAsWorker(fn) {
|
|
446
505
|
if (!node_worker_threads.workerData) {
|
447
506
|
return;
|
448
507
|
}
|
508
|
+
const stdio = [];
|
509
|
+
for (const type of ["stdout", "stderr"]) {
|
510
|
+
process[type]._writev = (chunks, callback) => {
|
511
|
+
for (const {
|
512
|
+
// type-coverage:ignore-next-line -- we can't control
|
513
|
+
chunk,
|
514
|
+
encoding
|
515
|
+
} of chunks) {
|
516
|
+
stdio.push({
|
517
|
+
type,
|
518
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- we can't control
|
519
|
+
chunk,
|
520
|
+
encoding
|
521
|
+
});
|
522
|
+
}
|
523
|
+
callback();
|
524
|
+
};
|
525
|
+
}
|
449
526
|
const { workerPort, sharedBuffer: sharedBuffer2, pnpLoaderPath } = node_worker_threads.workerData;
|
450
|
-
if (pnpLoaderPath &&
|
527
|
+
if (pnpLoaderPath && // >=
|
528
|
+
compareVersion(NODE_VERSION, LOADER_SUPPORTED_NODE_VERSION) >= 0) {
|
451
529
|
module$1.register(pnpLoaderPath);
|
452
530
|
}
|
453
531
|
const sharedBufferView2 = new Int32Array(sharedBuffer2, 0, 1);
|
@@ -464,17 +542,22 @@ function runAsWorker(fn) {
|
|
464
542
|
workerPort.on("message", handleAbortMessage);
|
465
543
|
let msg;
|
466
544
|
try {
|
467
|
-
msg = { id, result: yield fn(...args) };
|
545
|
+
msg = { id, stdio, result: yield fn(...args) };
|
468
546
|
} catch (error) {
|
469
|
-
msg = { id, error, properties: extractProperties(error) };
|
547
|
+
msg = { id, stdio, error, properties: extractProperties(error) };
|
470
548
|
}
|
471
549
|
workerPort.off("message", handleAbortMessage);
|
472
550
|
if (isAborted) {
|
551
|
+
stdio.length = 0;
|
473
552
|
return;
|
474
553
|
}
|
475
|
-
|
476
|
-
|
477
|
-
|
554
|
+
try {
|
555
|
+
workerPort.postMessage(msg);
|
556
|
+
Atomics.add(sharedBufferView2, 0, 1);
|
557
|
+
Atomics.notify(sharedBufferView2, 0);
|
558
|
+
} finally {
|
559
|
+
stdio.length = 0;
|
560
|
+
}
|
478
561
|
}))();
|
479
562
|
}
|
480
563
|
);
|
@@ -485,12 +568,19 @@ exports.DEFAULT_GLOBAL_SHIMS = DEFAULT_GLOBAL_SHIMS;
|
|
485
568
|
exports.DEFAULT_GLOBAL_SHIMS_PRESET = DEFAULT_GLOBAL_SHIMS_PRESET;
|
486
569
|
exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;
|
487
570
|
exports.DEFAULT_TS_RUNNER = DEFAULT_TS_RUNNER;
|
571
|
+
exports.DEFAULT_TYPES_NODE_VERSION = DEFAULT_TYPES_NODE_VERSION;
|
572
|
+
exports.FEATURE_TYPESCRIPT_NODE_VERSION = FEATURE_TYPESCRIPT_NODE_VERSION;
|
488
573
|
exports.LOADER_SUPPORTED_NODE_VERSION = LOADER_SUPPORTED_NODE_VERSION;
|
489
574
|
exports.MTS_SUPPORTED_NODE_VERSION = MTS_SUPPORTED_NODE_VERSION;
|
490
|
-
exports.
|
491
|
-
exports.
|
575
|
+
exports.NODE_VERSION = NODE_VERSION;
|
576
|
+
exports.NO_STRIP_TYPES_FLAG = NO_STRIP_TYPES_FLAG;
|
577
|
+
exports.STRIP_TYPES_FLAG = STRIP_TYPES_FLAG;
|
578
|
+
exports.STRIP_TYPES_NODE_VERSION = STRIP_TYPES_NODE_VERSION;
|
579
|
+
exports.TRANSFORM_TYPES_FLAG = TRANSFORM_TYPES_FLAG;
|
580
|
+
exports.TRANSFORM_TYPES_NODE_VERSION = TRANSFORM_TYPES_NODE_VERSION;
|
492
581
|
exports.TsRunner = TsRunner;
|
493
582
|
exports._generateGlobals = _generateGlobals;
|
583
|
+
exports.compareVersion = compareVersion;
|
494
584
|
exports.createSyncFn = createSyncFn;
|
495
585
|
exports.encodeImportModule = encodeImportModule;
|
496
586
|
exports.extractProperties = extractProperties;
|
package/lib/index.d.ts
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
import { type TransferListItem } from 'node:worker_threads';
|
2
|
-
import type {
|
2
|
+
import type { AnyFn, GlobalShim, Syncify, ValueOf } from './types.js';
|
3
3
|
export * from './types.js';
|
4
4
|
export declare const TsRunner: {
|
5
5
|
readonly Node: "node";
|
6
|
+
readonly Bun: "bun";
|
6
7
|
readonly TsNode: "ts-node";
|
7
8
|
readonly EsbuildRegister: "esbuild-register";
|
8
9
|
readonly EsbuildRunner: "esbuild-runner";
|
@@ -10,10 +11,17 @@ export declare const TsRunner: {
|
|
10
11
|
readonly TSX: "tsx";
|
11
12
|
};
|
12
13
|
export type TsRunner = ValueOf<typeof TsRunner>;
|
13
|
-
export declare const MTS_SUPPORTED_NODE_VERSION = 16;
|
14
|
-
export declare const LOADER_SUPPORTED_NODE_VERSION = 20;
|
15
|
-
export declare const
|
16
|
-
export declare const
|
14
|
+
export declare const MTS_SUPPORTED_NODE_VERSION = "16";
|
15
|
+
export declare const LOADER_SUPPORTED_NODE_VERSION = "20";
|
16
|
+
export declare const STRIP_TYPES_NODE_VERSION = "22.6";
|
17
|
+
export declare const TRANSFORM_TYPES_NODE_VERSION = "22.7";
|
18
|
+
export declare const FEATURE_TYPESCRIPT_NODE_VERSION = "22.10";
|
19
|
+
export declare const DEFAULT_TYPES_NODE_VERSION = "23.6";
|
20
|
+
export declare const STRIP_TYPES_FLAG = "--experimental-strip-types";
|
21
|
+
export declare const TRANSFORM_TYPES_FLAG = "--experimental-transform-types";
|
22
|
+
export declare const NO_STRIP_TYPES_FLAG = "--no-experimental-strip-types";
|
23
|
+
export declare const compareVersion: (version1: string, version2: string) => 1 | -1 | 0;
|
24
|
+
export declare const NODE_VERSION: string;
|
17
25
|
export declare const DEFAULT_TIMEOUT: number | undefined;
|
18
26
|
export declare const DEFAULT_EXEC_ARGV: string[];
|
19
27
|
export declare const DEFAULT_TS_RUNNER: TsRunner | undefined;
|
@@ -28,8 +36,8 @@ export interface SynckitOptions {
|
|
28
36
|
}
|
29
37
|
export declare function extractProperties<T extends object>(object: T): T;
|
30
38
|
export declare function extractProperties<T>(object?: T): T | undefined;
|
31
|
-
export declare function createSyncFn<T extends
|
39
|
+
export declare function createSyncFn<T extends AnyFn>(workerPath: URL | string, timeoutOrOptions?: SynckitOptions | number): Syncify<T>;
|
32
40
|
export declare const isFile: (path: string) => boolean;
|
33
41
|
export declare const encodeImportModule: (moduleNameOrGlobalShim: GlobalShim | string, type?: "import" | "require") => string;
|
34
42
|
export declare const generateGlobals: (workerPath: string, globalShims: GlobalShim[], type?: "import" | "require") => string;
|
35
|
-
export declare function runAsWorker<
|
43
|
+
export declare function runAsWorker<T extends AnyFn<Promise<R> | R>, R = ReturnType<T>>(fn: T): void;
|
package/lib/index.js
CHANGED
@@ -4,34 +4,56 @@ import fs from 'node:fs';
|
|
4
4
|
import module from 'node:module';
|
5
5
|
import path from 'node:path';
|
6
6
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
7
|
-
import { MessageChannel,
|
8
|
-
import { findUp, isPkgAvailable, tryExtensions } from '@pkgr/core';
|
7
|
+
import { MessageChannel, Worker, parentPort, receiveMessageOnPort, workerData, } from 'node:worker_threads';
|
8
|
+
import { cjsRequire, findUp, isPkgAvailable, tryExtensions } from '@pkgr/core';
|
9
9
|
const INT32_BYTES = 4;
|
10
10
|
export * from './types.js';
|
11
11
|
export const TsRunner = {
|
12
12
|
Node: 'node',
|
13
|
+
Bun: 'bun',
|
13
14
|
TsNode: 'ts-node',
|
14
15
|
EsbuildRegister: 'esbuild-register',
|
15
16
|
EsbuildRunner: 'esbuild-runner',
|
16
17
|
SWC: 'swc',
|
17
18
|
TSX: 'tsx',
|
18
19
|
};
|
19
|
-
const { NODE_OPTIONS, SYNCKIT_EXEC_ARGV, SYNCKIT_GLOBAL_SHIMS, SYNCKIT_TIMEOUT, SYNCKIT_TS_RUNNER, } = process.env;
|
20
|
-
export const MTS_SUPPORTED_NODE_VERSION = 16;
|
21
|
-
export const LOADER_SUPPORTED_NODE_VERSION = 20;
|
22
|
-
export const
|
23
|
-
export const
|
24
|
-
const
|
25
|
-
const
|
26
|
-
const
|
27
|
-
const
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
20
|
+
const { NODE_OPTIONS: NODE_OPTIONS_ = '', SYNCKIT_EXEC_ARGV = '', SYNCKIT_GLOBAL_SHIMS, SYNCKIT_TIMEOUT, SYNCKIT_TS_RUNNER, } = process.env;
|
21
|
+
export const MTS_SUPPORTED_NODE_VERSION = '16';
|
22
|
+
export const LOADER_SUPPORTED_NODE_VERSION = '20';
|
23
|
+
export const STRIP_TYPES_NODE_VERSION = '22.6';
|
24
|
+
export const TRANSFORM_TYPES_NODE_VERSION = '22.7';
|
25
|
+
export const FEATURE_TYPESCRIPT_NODE_VERSION = '22.10';
|
26
|
+
export const DEFAULT_TYPES_NODE_VERSION = '23.6';
|
27
|
+
export const STRIP_TYPES_FLAG = '--experimental-strip-types';
|
28
|
+
export const TRANSFORM_TYPES_FLAG = '--experimental-transform-types';
|
29
|
+
export const NO_STRIP_TYPES_FLAG = '--no-experimental-strip-types';
|
30
|
+
const NODE_OPTIONS = NODE_OPTIONS_.split(/\s+/);
|
31
|
+
const hasFlag = (flag) => NODE_OPTIONS.includes(flag) || process.argv.includes(flag);
|
32
|
+
const parseVersion = (version) => version.split('.').map(Number.parseFloat);
|
33
|
+
export const compareVersion = (version1, version2) => {
|
34
|
+
const versions1 = parseVersion(version1);
|
35
|
+
const versions2 = parseVersion(version2);
|
36
|
+
const length = Math.max(versions1.length, versions2.length);
|
37
|
+
for (let i = 0; i < length; i++) {
|
38
|
+
const v1 = versions1[i] || 0;
|
39
|
+
const v2 = versions2[i] || 0;
|
40
|
+
if (v1 > v2) {
|
41
|
+
return 1;
|
42
|
+
}
|
43
|
+
if (v1 < v2) {
|
44
|
+
return -1;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
return 0;
|
48
|
+
};
|
49
|
+
export const NODE_VERSION = process.versions.node;
|
50
|
+
const NO_STRIP_TYPES = compareVersion(NODE_VERSION, FEATURE_TYPESCRIPT_NODE_VERSION) >= 0
|
51
|
+
? process.features.typescript === false
|
52
|
+
: hasFlag(NO_STRIP_TYPES_FLAG) &&
|
53
|
+
!hasFlag(STRIP_TYPES_FLAG) &&
|
54
|
+
!hasFlag(TRANSFORM_TYPES_FLAG);
|
33
55
|
export const DEFAULT_TIMEOUT = SYNCKIT_TIMEOUT ? +SYNCKIT_TIMEOUT : undefined;
|
34
|
-
export const DEFAULT_EXEC_ARGV =
|
56
|
+
export const DEFAULT_EXEC_ARGV = SYNCKIT_EXEC_ARGV.split(',');
|
35
57
|
export const DEFAULT_TS_RUNNER = SYNCKIT_TS_RUNNER;
|
36
58
|
export const DEFAULT_GLOBAL_SHIMS = ['1', 'true'].includes(SYNCKIT_GLOBAL_SHIMS);
|
37
59
|
export const DEFAULT_GLOBAL_SHIMS_PRESET = [
|
@@ -57,6 +79,9 @@ export function extractProperties(object) {
|
|
57
79
|
}
|
58
80
|
export function createSyncFn(workerPath, timeoutOrOptions) {
|
59
81
|
syncFnCache !== null && syncFnCache !== void 0 ? syncFnCache : (syncFnCache = new Map());
|
82
|
+
if (typeof workerPath !== 'string' || workerPath.startsWith('file://')) {
|
83
|
+
workerPath = fileURLToPath(workerPath);
|
84
|
+
}
|
60
85
|
const cachedSyncFn = syncFnCache.get(workerPath);
|
61
86
|
if (cachedSyncFn) {
|
62
87
|
return cachedSyncFn;
|
@@ -70,9 +95,6 @@ export function createSyncFn(workerPath, timeoutOrOptions) {
|
|
70
95
|
syncFnCache.set(workerPath, syncFn);
|
71
96
|
return syncFn;
|
72
97
|
}
|
73
|
-
const cjsRequire = typeof require === 'undefined'
|
74
|
-
? module.createRequire(import.meta.url)
|
75
|
-
: require;
|
76
98
|
const dataUrl = (code) => new URL(`data:text/javascript,${encodeURIComponent(code)}`);
|
77
99
|
export const isFile = (path) => {
|
78
100
|
var _a;
|
@@ -85,7 +107,7 @@ export const isFile = (path) => {
|
|
85
107
|
};
|
86
108
|
const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
87
109
|
let ext = path.extname(workerPath);
|
88
|
-
if (!/[/\\]node_modules
|
110
|
+
if (!/([/\\])node_modules\1/.test(workerPath) &&
|
89
111
|
(!ext || /^\.[cm]?js$/.test(ext))) {
|
90
112
|
const workPathWithoutExt = ext
|
91
113
|
? workerPath.slice(0, -ext.length)
|
@@ -121,13 +143,22 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
121
143
|
if (!tsUseEsm) {
|
122
144
|
const pkg = findUp(workerPath);
|
123
145
|
if (pkg) {
|
124
|
-
tsUseEsm =
|
125
|
-
cjsRequire(pkg).type ===
|
126
|
-
'module';
|
146
|
+
tsUseEsm = cjsRequire(pkg).type === 'module';
|
127
147
|
}
|
128
148
|
}
|
149
|
+
const stripTypesIndex = execArgv.indexOf(STRIP_TYPES_FLAG);
|
150
|
+
const transformTypesIndex = execArgv.indexOf(TRANSFORM_TYPES_FLAG);
|
151
|
+
const noStripTypesIndex = execArgv.indexOf(NO_STRIP_TYPES_FLAG);
|
152
|
+
const execArgvNoStripTypes = noStripTypesIndex > stripTypesIndex ||
|
153
|
+
noStripTypesIndex > transformTypesIndex;
|
154
|
+
const noStripTypes = execArgvNoStripTypes ||
|
155
|
+
(stripTypesIndex === -1 && transformTypesIndex === -1 && NO_STRIP_TYPES);
|
129
156
|
if (tsRunner == null) {
|
130
|
-
if (
|
157
|
+
if (process.versions.bun) {
|
158
|
+
tsRunner = TsRunner.Bun;
|
159
|
+
}
|
160
|
+
else if (!noStripTypes &&
|
161
|
+
compareVersion(NODE_VERSION, STRIP_TYPES_NODE_VERSION) >= 0) {
|
131
162
|
tsRunner = TsRunner.Node;
|
132
163
|
}
|
133
164
|
else if (isPkgAvailable(TsRunner.TsNode)) {
|
@@ -135,14 +166,27 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
135
166
|
}
|
136
167
|
}
|
137
168
|
switch (tsRunner) {
|
169
|
+
case TsRunner.Bun: {
|
170
|
+
break;
|
171
|
+
}
|
138
172
|
case TsRunner.Node: {
|
139
|
-
if (NODE_VERSION <
|
173
|
+
if (compareVersion(NODE_VERSION, STRIP_TYPES_NODE_VERSION) < 0) {
|
140
174
|
throw new Error('type stripping is not supported in this node version');
|
141
175
|
}
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
176
|
+
if (noStripTypes) {
|
177
|
+
throw new Error('type stripping is disabled explicitly');
|
178
|
+
}
|
179
|
+
if (compareVersion(NODE_VERSION, DEFAULT_TYPES_NODE_VERSION) >= 0) {
|
180
|
+
break;
|
181
|
+
}
|
182
|
+
if (compareVersion(NODE_VERSION, TRANSFORM_TYPES_NODE_VERSION) >= 0 &&
|
183
|
+
!execArgv.includes(TRANSFORM_TYPES_FLAG)) {
|
184
|
+
execArgv = [TRANSFORM_TYPES_FLAG, ...execArgv];
|
185
|
+
}
|
186
|
+
else if (compareVersion(NODE_VERSION, STRIP_TYPES_NODE_VERSION) >= 0 &&
|
187
|
+
!execArgv.includes(STRIP_TYPES_FLAG)) {
|
188
|
+
execArgv = [STRIP_TYPES_FLAG, ...execArgv];
|
189
|
+
}
|
146
190
|
break;
|
147
191
|
}
|
148
192
|
case TsRunner.TsNode: {
|
@@ -188,27 +232,25 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
188
232
|
else if (!jsUseEsm) {
|
189
233
|
const pkg = findUp(workerPath);
|
190
234
|
if (pkg) {
|
191
|
-
jsUseEsm =
|
192
|
-
cjsRequire(pkg).type === 'module';
|
235
|
+
jsUseEsm = cjsRequire(pkg).type === 'module';
|
193
236
|
}
|
194
237
|
}
|
195
238
|
let resolvedPnpLoaderPath;
|
196
239
|
if (process.versions.pnp) {
|
197
|
-
const nodeOptions = NODE_OPTIONS === null || NODE_OPTIONS === void 0 ? void 0 : NODE_OPTIONS.split(/\s+/);
|
198
240
|
let pnpApiPath;
|
199
241
|
try {
|
200
242
|
pnpApiPath = cjsRequire.resolve('pnpapi');
|
201
243
|
}
|
202
244
|
catch (_a) { }
|
203
245
|
if (pnpApiPath &&
|
204
|
-
!
|
205
|
-
pnpApiPath === cjsRequire.resolve(
|
246
|
+
!NODE_OPTIONS.some((option, index) => ['-r', '--require'].includes(option) &&
|
247
|
+
pnpApiPath === cjsRequire.resolve(NODE_OPTIONS[index + 1])) &&
|
206
248
|
!execArgv.includes(pnpApiPath)) {
|
207
249
|
execArgv = ['-r', pnpApiPath, ...execArgv];
|
208
250
|
const pnpLoaderPath = path.resolve(pnpApiPath, '../.pnp.loader.mjs');
|
209
251
|
if (isFile(pnpLoaderPath)) {
|
210
252
|
resolvedPnpLoaderPath = pathToFileURL(pnpLoaderPath).toString();
|
211
|
-
if (NODE_VERSION <
|
253
|
+
if (compareVersion(NODE_VERSION, LOADER_SUPPORTED_NODE_VERSION) < 0) {
|
212
254
|
execArgv = [
|
213
255
|
'--experimental-loader',
|
214
256
|
resolvedPnpLoaderPath,
|
@@ -268,6 +310,9 @@ const _dirname = typeof __dirname === 'undefined'
|
|
268
310
|
let sharedBuffer;
|
269
311
|
let sharedBufferView;
|
270
312
|
export const generateGlobals = (workerPath, globalShims, type = 'import') => {
|
313
|
+
if (globalShims.length === 0) {
|
314
|
+
return '';
|
315
|
+
}
|
271
316
|
globalsCache !== null && globalsCache !== void 0 ? globalsCache : (globalsCache = new Map());
|
272
317
|
const cached = globalsCache.get(workerPath);
|
273
318
|
if (cached) {
|
@@ -297,7 +342,8 @@ function startWorkerThread(workerPath, { timeout = DEFAULT_TIMEOUT, execArgv = D
|
|
297
342
|
const { isTs, ext, jsUseEsm, tsUseEsm, tsRunner: finalTsRunner, workerPath: finalWorkerPath, pnpLoaderPath, execArgv: finalExecArgv, } = setupTsRunner(workerPath, { execArgv, tsRunner });
|
298
343
|
const workerPathUrl = pathToFileURL(finalWorkerPath);
|
299
344
|
if (/\.[cm]ts$/.test(finalWorkerPath)) {
|
300
|
-
const isTsxSupported = !tsUseEsm ||
|
345
|
+
const isTsxSupported = !tsUseEsm ||
|
346
|
+
compareVersion(NODE_VERSION, MTS_SUPPORTED_NODE_VERSION) >= 0;
|
301
347
|
if (!finalTsRunner) {
|
302
348
|
throw new Error('No ts runner specified, ts worker path is not supported');
|
303
349
|
}
|
@@ -358,7 +404,10 @@ function startWorkerThread(workerPath, { timeout = DEFAULT_TIMEOUT, execArgv = D
|
|
358
404
|
const id = nextID++;
|
359
405
|
const msg = { id, args };
|
360
406
|
worker.postMessage(msg);
|
361
|
-
const { result, error, properties } = receiveMessageWithId(mainPort, id, timeout);
|
407
|
+
const { result, error, properties, stdio } = receiveMessageWithId(mainPort, id, timeout);
|
408
|
+
for (const { type, chunk, encoding } of stdio) {
|
409
|
+
process[type].write(chunk, encoding);
|
410
|
+
}
|
362
411
|
if (error) {
|
363
412
|
throw Object.assign(error, properties);
|
364
413
|
}
|
@@ -371,8 +420,22 @@ export function runAsWorker(fn) {
|
|
371
420
|
if (!workerData) {
|
372
421
|
return;
|
373
422
|
}
|
423
|
+
const stdio = [];
|
424
|
+
for (const type of ['stdout', 'stderr']) {
|
425
|
+
process[type]._writev = (chunks, callback) => {
|
426
|
+
for (const { chunk, encoding, } of chunks) {
|
427
|
+
stdio.push({
|
428
|
+
type,
|
429
|
+
chunk,
|
430
|
+
encoding,
|
431
|
+
});
|
432
|
+
}
|
433
|
+
callback();
|
434
|
+
};
|
435
|
+
}
|
374
436
|
const { workerPort, sharedBuffer, pnpLoaderPath } = workerData;
|
375
|
-
if (pnpLoaderPath &&
|
437
|
+
if (pnpLoaderPath &&
|
438
|
+
compareVersion(NODE_VERSION, LOADER_SUPPORTED_NODE_VERSION) >= 0) {
|
376
439
|
module.register(pnpLoaderPath);
|
377
440
|
}
|
378
441
|
const sharedBufferView = new Int32Array(sharedBuffer, 0, 1);
|
@@ -388,18 +451,24 @@ export function runAsWorker(fn) {
|
|
388
451
|
workerPort.on('message', handleAbortMessage);
|
389
452
|
let msg;
|
390
453
|
try {
|
391
|
-
msg = { id, result: yield fn(...args) };
|
454
|
+
msg = { id, stdio, result: yield fn(...args) };
|
392
455
|
}
|
393
456
|
catch (error) {
|
394
|
-
msg = { id, error, properties: extractProperties(error) };
|
457
|
+
msg = { id, stdio, error, properties: extractProperties(error) };
|
395
458
|
}
|
396
459
|
workerPort.off('message', handleAbortMessage);
|
397
460
|
if (isAborted) {
|
461
|
+
stdio.length = 0;
|
398
462
|
return;
|
399
463
|
}
|
400
|
-
|
401
|
-
|
402
|
-
|
464
|
+
try {
|
465
|
+
workerPort.postMessage(msg);
|
466
|
+
Atomics.add(sharedBufferView, 0, 1);
|
467
|
+
Atomics.notify(sharedBufferView, 0);
|
468
|
+
}
|
469
|
+
finally {
|
470
|
+
stdio.length = 0;
|
471
|
+
}
|
403
472
|
}))();
|
404
473
|
});
|
405
474
|
}
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
@@ -1,9 +1,6 @@
|
|
1
|
-
import { MessagePort } from 'node:worker_threads';
|
1
|
+
import type { MessagePort } from 'node:worker_threads';
|
2
2
|
export type AnyFn<R = any, T extends any[] = any[]> = (...args: T) => R;
|
3
|
-
export type
|
4
|
-
export type AnyAsyncFn<T = any> = AnyFn<Promise<T>>;
|
5
|
-
export type Syncify<T extends AnyAsyncFn> = T extends (...args: infer Args) => Promise<infer R> ? (...args: Args) => R : never;
|
6
|
-
export type PromiseType<T extends AnyPromise> = T extends Promise<infer R> ? R : never;
|
3
|
+
export type Syncify<T extends AnyFn> = (...args: Parameters<T>) => Awaited<ReturnType<T>>;
|
7
4
|
export type ValueOf<T> = T[keyof T];
|
8
5
|
export interface MainToWorkerMessage<T extends unknown[]> {
|
9
6
|
id: number;
|
@@ -23,8 +20,14 @@ export interface DataMessage<T> {
|
|
23
20
|
error?: unknown;
|
24
21
|
properties?: unknown;
|
25
22
|
}
|
26
|
-
export interface
|
23
|
+
export interface StdioChunk {
|
24
|
+
type: 'stderr' | 'stdout';
|
25
|
+
chunk: Uint8Array | string;
|
26
|
+
encoding: BufferEncoding;
|
27
|
+
}
|
28
|
+
export interface WorkerToMainMessage<T> extends DataMessage<T> {
|
27
29
|
id: number;
|
30
|
+
stdio: StdioChunk[];
|
28
31
|
}
|
29
32
|
export interface GlobalShim {
|
30
33
|
moduleName: string;
|
@@ -32,3 +35,6 @@ export interface GlobalShim {
|
|
32
35
|
named?: string | null;
|
33
36
|
conditional?: boolean;
|
34
37
|
}
|
38
|
+
export interface PackageJson {
|
39
|
+
type?: 'commonjs' | 'module';
|
40
|
+
}
|
package/lib/types.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
export {};
|
2
2
|
//# sourceMappingURL=types.js.map
|
package/lib/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "synckit",
|
3
|
-
"version": "0.10.
|
3
|
+
"version": "0.10.2",
|
4
4
|
"type": "module",
|
5
5
|
"description": "Perform async work synchronously in Node.js using `worker_threads` with first-class TypeScript support.",
|
6
6
|
"repository": "git+https://github.com/un-ts/synckit.git",
|
@@ -13,12 +13,18 @@
|
|
13
13
|
"main": "./lib/index.cjs",
|
14
14
|
"module": "./lib/index.js",
|
15
15
|
"exports": {
|
16
|
-
"
|
17
|
-
|
18
|
-
|
16
|
+
"import": {
|
17
|
+
"types": "./lib/index.d.ts",
|
18
|
+
"default": "./lib/index.js"
|
19
|
+
},
|
20
|
+
"require": {
|
21
|
+
"types": "./index.d.cts",
|
22
|
+
"default": "./lib/index.cjs"
|
23
|
+
}
|
19
24
|
},
|
20
25
|
"types": "./lib/index.d.ts",
|
21
26
|
"files": [
|
27
|
+
"index.d.cts",
|
22
28
|
"lib",
|
23
29
|
"!**/*.tsbuildinfo"
|
24
30
|
],
|
@@ -34,7 +40,7 @@
|
|
34
40
|
"synckit"
|
35
41
|
],
|
36
42
|
"dependencies": {
|
37
|
-
"@pkgr/core": "^0.
|
43
|
+
"@pkgr/core": "^0.2.0",
|
38
44
|
"tslib": "^2.8.1"
|
39
45
|
}
|
40
46
|
}
|