synckit 0.8.5 → 0.8.6
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/lib/index.cjs +60 -55
- package/lib/index.d.ts +4 -1
- package/lib/index.js +41 -44
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
package/lib/index.cjs
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
-
|
5
3
|
var fs = require('node:fs');
|
6
4
|
var node_module = require('node:module');
|
7
5
|
var path = require('node:path');
|
@@ -9,11 +7,6 @@ var node_url = require('node:url');
|
|
9
7
|
var node_worker_threads = require('node:worker_threads');
|
10
8
|
var utils = require('@pkgr/utils');
|
11
9
|
|
12
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
13
|
-
|
14
|
-
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
15
|
-
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
16
|
-
|
17
10
|
var __async = (__this, __arguments, generator) => {
|
18
11
|
return new Promise((resolve, reject) => {
|
19
12
|
var fulfilled = (value) => {
|
@@ -36,10 +29,15 @@ var __async = (__this, __arguments, generator) => {
|
|
36
29
|
};
|
37
30
|
const import_meta = {};
|
38
31
|
const TsRunner = {
|
32
|
+
// https://github.com/TypeStrong/ts-node
|
39
33
|
TsNode: "ts-node",
|
34
|
+
// https://github.com/egoist/esbuild-register
|
40
35
|
EsbuildRegister: "esbuild-register",
|
36
|
+
// https://github.com/folke/esbuild-runner
|
41
37
|
EsbuildRunner: "esbuild-runner",
|
38
|
+
// https://github.com/swc-project/swc-node/tree/master/packages/register
|
42
39
|
SWC: "swc",
|
40
|
+
// https://github.com/esbuild-kit/tsx
|
43
41
|
TSX: "tsx"
|
44
42
|
};
|
45
43
|
const {
|
@@ -53,7 +51,7 @@ const DEFAULT_BUFFER_SIZE = SYNCKIT_BUFFER_SIZE ? +SYNCKIT_BUFFER_SIZE : void 0;
|
|
53
51
|
const DEFAULT_TIMEOUT = SYNCKIT_TIMEOUT ? +SYNCKIT_TIMEOUT : void 0;
|
54
52
|
const DEFAULT_WORKER_BUFFER_SIZE = DEFAULT_BUFFER_SIZE || 1024;
|
55
53
|
const DEFAULT_EXEC_ARGV = (SYNCKIT_EXEC_ARGV == null ? void 0 : SYNCKIT_EXEC_ARGV.split(",")) || [];
|
56
|
-
const DEFAULT_TS_RUNNER = SYNCKIT_TS_RUNNER
|
54
|
+
const DEFAULT_TS_RUNNER = SYNCKIT_TS_RUNNER;
|
57
55
|
const MTS_SUPPORTED_NODE_VERSION = 16;
|
58
56
|
const syncFnCache = /* @__PURE__ */ new Map();
|
59
57
|
function extractProperties(object) {
|
@@ -66,7 +64,7 @@ function extractProperties(object) {
|
|
66
64
|
}
|
67
65
|
}
|
68
66
|
function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
|
69
|
-
if (!
|
67
|
+
if (!path.isAbsolute(workerPath)) {
|
70
68
|
throw new Error("`workerPath` must be absolute");
|
71
69
|
}
|
72
70
|
const cachedSyncFn = syncFnCache.get(workerPath);
|
@@ -75,42 +73,50 @@ function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
|
|
75
73
|
}
|
76
74
|
const syncFn = startWorkerThread(
|
77
75
|
workerPath,
|
76
|
+
/* istanbul ignore next */
|
78
77
|
typeof bufferSizeOrOptions === "number" ? { bufferSize: bufferSizeOrOptions, timeout } : bufferSizeOrOptions
|
79
78
|
);
|
80
79
|
syncFnCache.set(workerPath, syncFn);
|
81
80
|
return syncFn;
|
82
81
|
}
|
83
|
-
const cjsRequire = typeof require === "undefined" ? node_module.createRequire(import_meta.url) :
|
82
|
+
const cjsRequire = typeof require === "undefined" ? node_module.createRequire(import_meta.url) : (
|
83
|
+
/* istanbul ignore next */
|
84
|
+
require
|
85
|
+
);
|
84
86
|
const dataUrl = (code) => new URL(`data:text/javascript,${encodeURIComponent(code)}`);
|
85
87
|
const isFile = (path2) => {
|
88
|
+
var _a;
|
86
89
|
try {
|
87
|
-
return
|
90
|
+
return !!((_a = fs.statSync(path2, { throwIfNoEntry: false })) == null ? void 0 : _a.isFile());
|
88
91
|
} catch (e) {
|
89
92
|
return false;
|
90
93
|
}
|
91
94
|
};
|
92
95
|
const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
93
|
-
let ext =
|
96
|
+
let ext = path.extname(workerPath);
|
94
97
|
if (!/[/\\]node_modules[/\\]/.test(workerPath) && (!ext || /^\.[cm]?js$/.test(ext))) {
|
95
98
|
const workPathWithoutExt = ext ? workerPath.slice(0, -ext.length) : workerPath;
|
96
99
|
let extensions;
|
97
100
|
switch (ext) {
|
98
|
-
case ".cjs":
|
101
|
+
case ".cjs": {
|
99
102
|
extensions = [".cts", ".cjs"];
|
100
103
|
break;
|
101
|
-
|
104
|
+
}
|
105
|
+
case ".mjs": {
|
102
106
|
extensions = [".mts", ".mjs"];
|
103
107
|
break;
|
104
|
-
|
108
|
+
}
|
109
|
+
default: {
|
105
110
|
extensions = [".ts", ".js"];
|
106
111
|
break;
|
112
|
+
}
|
107
113
|
}
|
108
114
|
const found = utils.tryExtensions(workPathWithoutExt, extensions);
|
109
115
|
let differentExt;
|
110
116
|
if (found && (!ext || (differentExt = found !== workPathWithoutExt))) {
|
111
117
|
workerPath = found;
|
112
118
|
if (differentExt) {
|
113
|
-
ext =
|
119
|
+
ext = path.extname(workerPath);
|
114
120
|
}
|
115
121
|
}
|
116
122
|
}
|
@@ -123,6 +129,9 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
123
129
|
tsUseEsm = cjsRequire(pkg).type === "module";
|
124
130
|
}
|
125
131
|
}
|
132
|
+
if (tsRunner == null && utils.isPkgAvailable(TsRunner.TsNode)) {
|
133
|
+
tsRunner = TsRunner.TsNode;
|
134
|
+
}
|
126
135
|
switch (tsRunner) {
|
127
136
|
case TsRunner.TsNode: {
|
128
137
|
if (tsUseEsm) {
|
@@ -174,7 +183,7 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
174
183
|
(option, index) => ["-r", "--require"].includes(option) && pnpApiPath === cjsRequire.resolve(nodeOptions[index + 1])
|
175
184
|
)) && !execArgv.includes(pnpApiPath)) {
|
176
185
|
execArgv = ["-r", pnpApiPath, ...execArgv];
|
177
|
-
const pnpLoaderPath =
|
186
|
+
const pnpLoaderPath = path.resolve(pnpApiPath, "../.pnp.loader.mjs");
|
178
187
|
if (isFile(pnpLoaderPath)) {
|
179
188
|
const experimentalLoader = node_url.pathToFileURL(pnpLoaderPath).toString();
|
180
189
|
execArgv = ["--experimental-loader", experimentalLoader, ...execArgv];
|
@@ -184,6 +193,7 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
184
193
|
return {
|
185
194
|
ext,
|
186
195
|
isTs,
|
196
|
+
tsRunner,
|
187
197
|
tsUseEsm,
|
188
198
|
workerPath,
|
189
199
|
execArgv
|
@@ -193,37 +203,49 @@ function startWorkerThread(workerPath, {
|
|
193
203
|
bufferSize = DEFAULT_WORKER_BUFFER_SIZE,
|
194
204
|
timeout = DEFAULT_TIMEOUT,
|
195
205
|
execArgv = DEFAULT_EXEC_ARGV,
|
196
|
-
tsRunner = DEFAULT_TS_RUNNER
|
206
|
+
tsRunner = DEFAULT_TS_RUNNER,
|
207
|
+
transferList = []
|
197
208
|
} = {}) {
|
198
209
|
const { port1: mainPort, port2: workerPort } = new node_worker_threads.MessageChannel();
|
199
210
|
const {
|
200
211
|
isTs,
|
201
212
|
ext,
|
202
213
|
tsUseEsm,
|
214
|
+
tsRunner: finalTsRunner,
|
203
215
|
workerPath: finalWorkerPath,
|
204
216
|
execArgv: finalExecArgv
|
205
217
|
} = setupTsRunner(workerPath, { execArgv, tsRunner });
|
206
218
|
const workerPathUrl = node_url.pathToFileURL(finalWorkerPath);
|
207
219
|
if (/\.[cm]ts$/.test(finalWorkerPath)) {
|
208
220
|
const isTsxSupported = !tsUseEsm || Number.parseFloat(process.versions.node) >= MTS_SUPPORTED_NODE_VERSION;
|
209
|
-
if (
|
221
|
+
if (!finalTsRunner) {
|
222
|
+
throw new Error("No ts runner specified, ts worker path is not supported");
|
223
|
+
} else if ([
|
224
|
+
// https://github.com/egoist/esbuild-register/issues/79
|
210
225
|
TsRunner.EsbuildRegister,
|
226
|
+
// https://github.com/folke/esbuild-runner/issues/67
|
211
227
|
TsRunner.EsbuildRunner,
|
228
|
+
// https://github.com/swc-project/swc-node/issues/667
|
212
229
|
TsRunner.SWC,
|
213
|
-
|
214
|
-
|
230
|
+
.../* istanbul ignore next */
|
231
|
+
isTsxSupported ? [] : [TsRunner.TSX]
|
232
|
+
].includes(finalTsRunner)) {
|
215
233
|
throw new Error(
|
216
|
-
`${
|
234
|
+
`${finalTsRunner} is not supported for ${ext} files yet` + /* istanbul ignore next */
|
235
|
+
(isTsxSupported ? ", you can try [tsx](https://github.com/esbuild-kit/tsx) instead" : "")
|
217
236
|
);
|
218
237
|
}
|
219
238
|
}
|
220
239
|
const useEval = isTs && !tsUseEsm;
|
221
240
|
const worker = new node_worker_threads.Worker(
|
222
|
-
tsUseEsm &&
|
241
|
+
tsUseEsm && finalTsRunner === TsRunner.TsNode ? dataUrl(`import '${String(workerPathUrl)}'`) : useEval ? (
|
242
|
+
// eslint-disable-next-line unicorn/prefer-string-replace-all -- compatibility
|
243
|
+
`require('${finalWorkerPath.replace(/\\/g, "\\\\")}')`
|
244
|
+
) : workerPathUrl,
|
223
245
|
{
|
224
246
|
eval: useEval,
|
225
247
|
workerData: { workerPort },
|
226
|
-
transferList: [workerPort],
|
248
|
+
transferList: [workerPort, ...transferList],
|
227
249
|
execArgv: finalExecArgv
|
228
250
|
}
|
229
251
|
);
|
@@ -260,40 +282,23 @@ function runAsWorker(fn) {
|
|
260
282
|
return;
|
261
283
|
}
|
262
284
|
const { workerPort } = node_worker_threads.workerData;
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
(
|
267
|
-
;
|
268
|
-
(() => __async(this, null, function* () {
|
269
|
-
const sharedBufferView = new Int32Array(sharedBuffer);
|
270
|
-
let msg;
|
271
|
-
try {
|
272
|
-
msg = { id, result: yield fn(...args) };
|
273
|
-
} catch (error) {
|
274
|
-
msg = { id, error, properties: extractProperties(error) };
|
275
|
-
}
|
276
|
-
workerPort.postMessage(msg);
|
277
|
-
Atomics.add(sharedBufferView, 0, 1);
|
278
|
-
Atomics.notify(sharedBufferView, 0);
|
279
|
-
}))();
|
280
|
-
}
|
281
|
-
);
|
282
|
-
} catch (error) {
|
283
|
-
node_worker_threads.parentPort.on(
|
284
|
-
"message",
|
285
|
-
({ sharedBuffer, id }) => {
|
285
|
+
node_worker_threads.parentPort.on(
|
286
|
+
"message",
|
287
|
+
({ sharedBuffer, id, args }) => {
|
288
|
+
(() => __async(this, null, function* () {
|
286
289
|
const sharedBufferView = new Int32Array(sharedBuffer);
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
290
|
+
let msg;
|
291
|
+
try {
|
292
|
+
msg = { id, result: yield fn(...args) };
|
293
|
+
} catch (error) {
|
294
|
+
msg = { id, error, properties: extractProperties(error) };
|
295
|
+
}
|
296
|
+
workerPort.postMessage(msg);
|
292
297
|
Atomics.add(sharedBufferView, 0, 1);
|
293
298
|
Atomics.notify(sharedBufferView, 0);
|
294
|
-
}
|
295
|
-
|
296
|
-
|
299
|
+
}))();
|
300
|
+
}
|
301
|
+
);
|
297
302
|
}
|
298
303
|
|
299
304
|
exports.DEFAULT_BUFFER_SIZE = DEFAULT_BUFFER_SIZE;
|
package/lib/index.d.ts
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { TransferListItem } from 'node:worker_threads';
|
1
3
|
import { AnyAsyncFn, Syncify, ValueOf } from './types.js';
|
2
4
|
export * from './types.js';
|
3
5
|
export declare const TsRunner: {
|
@@ -12,13 +14,14 @@ export declare const DEFAULT_BUFFER_SIZE: number | undefined;
|
|
12
14
|
export declare const DEFAULT_TIMEOUT: number | undefined;
|
13
15
|
export declare const DEFAULT_WORKER_BUFFER_SIZE: number;
|
14
16
|
export declare const DEFAULT_EXEC_ARGV: string[];
|
15
|
-
export declare const DEFAULT_TS_RUNNER: TsRunner;
|
17
|
+
export declare const DEFAULT_TS_RUNNER: TsRunner | undefined;
|
16
18
|
export declare const MTS_SUPPORTED_NODE_VERSION = 16;
|
17
19
|
export interface SynckitOptions {
|
18
20
|
bufferSize?: number;
|
19
21
|
timeout?: number;
|
20
22
|
execArgv?: string[];
|
21
23
|
tsRunner?: TsRunner;
|
24
|
+
transferList?: TransferListItem[];
|
22
25
|
}
|
23
26
|
export declare function extractProperties<T extends object>(object: T): T;
|
24
27
|
export declare function extractProperties<T>(object?: T): T | undefined;
|
package/lib/index.js
CHANGED
@@ -3,8 +3,8 @@ import fs from 'node:fs';
|
|
3
3
|
import { createRequire } from 'node:module';
|
4
4
|
import path from 'node:path';
|
5
5
|
import { pathToFileURL } from 'node:url';
|
6
|
-
import { MessageChannel, Worker, receiveMessageOnPort, workerData,
|
7
|
-
import { findUp, tryExtensions } from '@pkgr/utils';
|
6
|
+
import { MessageChannel, Worker, parentPort, receiveMessageOnPort, workerData, } from 'node:worker_threads';
|
7
|
+
import { findUp, isPkgAvailable, tryExtensions } from '@pkgr/utils';
|
8
8
|
export * from './types.js';
|
9
9
|
export const TsRunner = {
|
10
10
|
TsNode: 'ts-node',
|
@@ -20,8 +20,7 @@ export const DEFAULT_BUFFER_SIZE = SYNCKIT_BUFFER_SIZE
|
|
20
20
|
export const DEFAULT_TIMEOUT = SYNCKIT_TIMEOUT ? +SYNCKIT_TIMEOUT : undefined;
|
21
21
|
export const DEFAULT_WORKER_BUFFER_SIZE = DEFAULT_BUFFER_SIZE || 1024;
|
22
22
|
export const DEFAULT_EXEC_ARGV = (SYNCKIT_EXEC_ARGV === null || SYNCKIT_EXEC_ARGV === void 0 ? void 0 : SYNCKIT_EXEC_ARGV.split(',')) || [];
|
23
|
-
export const DEFAULT_TS_RUNNER =
|
24
|
-
TsRunner.TsNode);
|
23
|
+
export const DEFAULT_TS_RUNNER = SYNCKIT_TS_RUNNER;
|
25
24
|
export const MTS_SUPPORTED_NODE_VERSION = 16;
|
26
25
|
const syncFnCache = new Map();
|
27
26
|
export function extractProperties(object) {
|
@@ -52,10 +51,11 @@ const cjsRequire = typeof require === 'undefined'
|
|
52
51
|
: require;
|
53
52
|
const dataUrl = (code) => new URL(`data:text/javascript,${encodeURIComponent(code)}`);
|
54
53
|
export const isFile = (path) => {
|
54
|
+
var _a;
|
55
55
|
try {
|
56
|
-
return fs.statSync(path).isFile();
|
56
|
+
return !!((_a = fs.statSync(path, { throwIfNoEntry: false })) === null || _a === void 0 ? void 0 : _a.isFile());
|
57
57
|
}
|
58
|
-
catch (
|
58
|
+
catch (_b) {
|
59
59
|
return false;
|
60
60
|
}
|
61
61
|
};
|
@@ -68,15 +68,18 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
68
68
|
: workerPath;
|
69
69
|
let extensions;
|
70
70
|
switch (ext) {
|
71
|
-
case '.cjs':
|
71
|
+
case '.cjs': {
|
72
72
|
extensions = ['.cts', '.cjs'];
|
73
73
|
break;
|
74
|
-
|
74
|
+
}
|
75
|
+
case '.mjs': {
|
75
76
|
extensions = ['.mts', '.mjs'];
|
76
77
|
break;
|
77
|
-
|
78
|
+
}
|
79
|
+
default: {
|
78
80
|
extensions = ['.ts', '.js'];
|
79
81
|
break;
|
82
|
+
}
|
80
83
|
}
|
81
84
|
const found = tryExtensions(workPathWithoutExt, extensions);
|
82
85
|
let differentExt;
|
@@ -98,6 +101,9 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
98
101
|
'module';
|
99
102
|
}
|
100
103
|
}
|
104
|
+
if (tsRunner == null && isPkgAvailable(TsRunner.TsNode)) {
|
105
|
+
tsRunner = TsRunner.TsNode;
|
106
|
+
}
|
101
107
|
switch (tsRunner) {
|
102
108
|
case TsRunner.TsNode: {
|
103
109
|
if (tsUseEsm) {
|
@@ -161,39 +167,44 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
|
|
161
167
|
return {
|
162
168
|
ext,
|
163
169
|
isTs,
|
170
|
+
tsRunner,
|
164
171
|
tsUseEsm,
|
165
172
|
workerPath,
|
166
173
|
execArgv,
|
167
174
|
};
|
168
175
|
};
|
169
|
-
function startWorkerThread(workerPath, { bufferSize = DEFAULT_WORKER_BUFFER_SIZE, timeout = DEFAULT_TIMEOUT, execArgv = DEFAULT_EXEC_ARGV, tsRunner = DEFAULT_TS_RUNNER, } = {}) {
|
176
|
+
function startWorkerThread(workerPath, { bufferSize = DEFAULT_WORKER_BUFFER_SIZE, timeout = DEFAULT_TIMEOUT, execArgv = DEFAULT_EXEC_ARGV, tsRunner = DEFAULT_TS_RUNNER, transferList = [], } = {}) {
|
170
177
|
const { port1: mainPort, port2: workerPort } = new MessageChannel();
|
171
|
-
const { isTs, ext, tsUseEsm, workerPath: finalWorkerPath, execArgv: finalExecArgv, } = setupTsRunner(workerPath, { execArgv, tsRunner });
|
178
|
+
const { isTs, ext, tsUseEsm, tsRunner: finalTsRunner, workerPath: finalWorkerPath, execArgv: finalExecArgv, } = setupTsRunner(workerPath, { execArgv, tsRunner });
|
172
179
|
const workerPathUrl = pathToFileURL(finalWorkerPath);
|
173
180
|
if (/\.[cm]ts$/.test(finalWorkerPath)) {
|
174
181
|
const isTsxSupported = !tsUseEsm ||
|
175
182
|
Number.parseFloat(process.versions.node) >= MTS_SUPPORTED_NODE_VERSION;
|
176
|
-
if (
|
183
|
+
if (!finalTsRunner) {
|
184
|
+
throw new Error('No ts runner specified, ts worker path is not supported');
|
185
|
+
}
|
186
|
+
else if ([
|
177
187
|
TsRunner.EsbuildRegister,
|
178
188
|
TsRunner.EsbuildRunner,
|
179
189
|
TsRunner.SWC,
|
180
190
|
...(isTsxSupported ? [] : [TsRunner.TSX]),
|
181
|
-
].includes(
|
182
|
-
throw new Error(`${
|
191
|
+
].includes(finalTsRunner)) {
|
192
|
+
throw new Error(`${finalTsRunner} is not supported for ${ext} files yet` +
|
183
193
|
(isTsxSupported
|
184
194
|
? ', you can try [tsx](https://github.com/esbuild-kit/tsx) instead'
|
185
195
|
: ''));
|
186
196
|
}
|
187
197
|
}
|
188
198
|
const useEval = isTs && !tsUseEsm;
|
189
|
-
const worker = new Worker(tsUseEsm &&
|
199
|
+
const worker = new Worker(tsUseEsm && finalTsRunner === TsRunner.TsNode
|
190
200
|
? dataUrl(`import '${String(workerPathUrl)}'`)
|
191
201
|
: useEval
|
192
|
-
?
|
202
|
+
?
|
203
|
+
`require('${finalWorkerPath.replace(/\\/g, '\\\\')}')`
|
193
204
|
: workerPathUrl, {
|
194
205
|
eval: useEval,
|
195
206
|
workerData: { workerPort },
|
196
|
-
transferList: [workerPort],
|
207
|
+
transferList: [workerPort, ...transferList],
|
197
208
|
execArgv: finalExecArgv,
|
198
209
|
});
|
199
210
|
let nextID = 0;
|
@@ -225,35 +236,21 @@ export function runAsWorker(fn) {
|
|
225
236
|
return;
|
226
237
|
}
|
227
238
|
const { workerPort } = workerData;
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
(() => __awaiter(this, void 0, void 0, function* () {
|
232
|
-
const sharedBufferView = new Int32Array(sharedBuffer);
|
233
|
-
let msg;
|
234
|
-
try {
|
235
|
-
msg = { id, result: yield fn(...args) };
|
236
|
-
}
|
237
|
-
catch (error) {
|
238
|
-
msg = { id, error, properties: extractProperties(error) };
|
239
|
-
}
|
240
|
-
workerPort.postMessage(msg);
|
241
|
-
Atomics.add(sharedBufferView, 0, 1);
|
242
|
-
Atomics.notify(sharedBufferView, 0);
|
243
|
-
}))();
|
244
|
-
});
|
245
|
-
}
|
246
|
-
catch (error) {
|
247
|
-
parentPort.on('message', ({ sharedBuffer, id }) => {
|
239
|
+
parentPort.on('message', ({ sharedBuffer, id, args }) => {
|
240
|
+
;
|
241
|
+
(() => __awaiter(this, void 0, void 0, function* () {
|
248
242
|
const sharedBufferView = new Int32Array(sharedBuffer);
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
243
|
+
let msg;
|
244
|
+
try {
|
245
|
+
msg = { id, result: yield fn(...args) };
|
246
|
+
}
|
247
|
+
catch (error) {
|
248
|
+
msg = { id, error, properties: extractProperties(error) };
|
249
|
+
}
|
250
|
+
workerPort.postMessage(msg);
|
254
251
|
Atomics.add(sharedBufferView, 0, 1);
|
255
252
|
Atomics.notify(sharedBufferView, 0);
|
256
|
-
});
|
257
|
-
}
|
253
|
+
}))();
|
254
|
+
});
|
258
255
|
}
|
259
256
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EACL,cAAc,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EACL,cAAc,EAEd,MAAM,EACN,UAAU,EACV,oBAAoB,EAEpB,UAAU,GACX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAYnE,cAAc,YAAY,CAAA;AAE1B,MAAM,CAAC,MAAM,QAAQ,GAAG;IAEtB,MAAM,EAAE,SAAS;IAEjB,eAAe,EAAE,kBAAkB;IAEnC,aAAa,EAAE,gBAAgB;IAE/B,GAAG,EAAE,KAAK;IAEV,GAAG,EAAE,KAAK;CACF,CAAA;AAIV,MAAM,EACJ,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,GAAG,OAAO,CAAC,GAAG,CAAA;AAEf,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB;IACpD,CAAC,CAAC,CAAC,mBAAmB;IACtB,CAAC,CAAC,SAAS,CAAA;AAEb,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7E,MAAM,CAAC,MAAM,0BAA0B,GAAG,mBAAmB,IAAI,IAAI,CAAA;AAGrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAA;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAyC,CAAA;AAE1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAA;AAE5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAA;AAe5C,MAAM,UAAU,iBAAiB,CAAI,MAAU;IAC7C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,EAAO,CAAA;QAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,UAAU,CAAC,GAAc,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,mBAA6C,EAC7C,OAAgB;IAEhB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAEhD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAC9B,UAAU,EACiB,OAAO,mBAAmB,KAAK,QAAQ;QAChE,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE;QAC9C,CAAC,CAAC,mBAAmB,CACxB,CAAA;IAED,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAEnC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,GACd,OAAO,OAAO,KAAK,WAAW;IAC5B,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC,CAAC,CAA4B,OAAO,CAAA;AAExC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,IAAI,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;;IACrC,IAAI,CAAC;QACH,OAAO,CAAC,CAAC,CAAA,MAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,0CAAE,MAAM,EAAE,CAAA,CAAA;IACjE,CAAC;IAAC,WAAM,CAAC;QAEP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CACpB,UAAkB,EAClB,EAAE,QAAQ,EAAE,QAAQ,EAA+C,EACnE,EAAE;IACF,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAElC,IACE,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC1C,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACjC,CAAC;QACD,MAAM,kBAAkB,GAAG,GAAG;YAC5B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,UAAU,CAAA;QACd,IAAI,UAAoB,CAAA;QACxB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC7B,MAAK;YACP,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC7B,MAAK;YACP,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBAC3B,MAAK;YACP,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;QAC3D,IAAI,YAAiC,CAAA;QACrC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC;YACrE,UAAU,GAAG,KAAK,CAAA;YAClB,IAAI,YAAY,EAAE,CAAC;gBACjB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAE1C,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE1C,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,GAAG,EAAE,CAAC;gBACR,QAAQ;oBACL,UAAU,CAAC,GAAG,CAAsC,CAAC,IAAI;wBAC1D,QAAQ,CAAA;YACZ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC5B,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrB,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBACnC,QAAQ,GAAG,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,MAAM,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAA;oBAChE,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAA;gBAC/D,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,CAAA;gBAC1D,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,QAAQ,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,aAAa,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAA;gBACtE,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,GAAG,gBAAgB,EAAE,GAAG,QAAQ,CAAC,CAAA;gBAClE,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnC,QAAQ,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAA;gBACpD,CAAC;gBACD,MAAK;YACP,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAGD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,UAA8B,CAAA;QAClC,IAAI,CAAC;YAEH,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAAC,WAAM,CAAC,CAAA,CAAC;QACV,IACE,UAAU;YACV,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAChB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAC5D,CAAA;YACD,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC9B,CAAC;YACD,QAAQ,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAA;YAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAA;YACpE,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAI1B,MAAM,kBAAkB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAClE,QAAQ,GAAG,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,QAAQ,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;KACT,CAAA;AACH,CAAC,CAAA;AAGD,SAAS,iBAAiB,CACxB,UAAkB,EAClB,EACE,UAAU,GAAG,0BAA0B,EACvC,OAAO,GAAG,eAAe,EACzB,QAAQ,GAAG,iBAAiB,EAC5B,QAAQ,GAAG,iBAAiB,EAC5B,YAAY,GAAG,EAAE,MACC,EAAE;IAEtB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,cAAc,EAAE,CAAA;IAEnE,MAAM,EACJ,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,aAAa,GACxB,GAAG,aAAa,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAErD,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,CAAC,CAAA;IAEpD,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,MAAM,cAAc,GAClB,CAAC,QAAQ;YACT,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAA;QAExE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;QAC5E,CAAC;aAA+B,IAE5B;YAEE,QAAQ,CAAC,eAAe;YAExB,QAAQ,CAAC,aAAa;YAEtB,QAAQ,CAAC,GAAG;YACZ,GAA8B,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAEvE,CAAC,QAAQ,CAAC,aAAa,CAAC,EACzB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,GAAG,aAAa,yBAAyB,GAAG,YAAY;gBAC3B,CAAC,cAAc;oBACxC,CAAC,CAAC,iEAAiE;oBACnE,CAAC,CAAC,EAAE,CAAC,CACV,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAA;IAEjC,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,QAAQ,IAAI,aAAa,KAAK,QAAQ,CAAC,MAAM;QAC3C,CAAC,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;QAC9C,CAAC,CAAC,OAAO;YACT,CAAC;gBACC,YAAY,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI;YACxD,CAAC,CAAC,aAAa,EACjB;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,EAAE,UAAU,EAAE;QAC1B,YAAY,EAAE,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC;QAC3C,QAAQ,EAAE,aAAa;KACxB,CACF,CAAA;IAED,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,MAAM,MAAM,GAAG,CAAC,GAAG,IAAmB,EAAK,EAAE;QAC3C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;QAEnB,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAA;QACtD,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAA;QAErD,MAAM,GAAG,GAAuC,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QAC1E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAEvB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;QAG5D,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,MAAM,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,EACJ,EAAE,EAAE,GAAG,EACP,MAAM,EACN,KAAK,EACL,UAAU,GACX,GAAI,oBAAoB,CAAC,QAAQ,CAAyC;aACxE,OAAO,CAAA;QAGV,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,eAAe,GAAG,EAAE,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,CAAC,MAAM,CAAC,KAAe,EAAE,UAAU,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,MAAO,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,CAAC,KAAK,EAAE,CAAA;IAEd,OAAO,MAAM,CAAA;AACf,CAAC;AAGD,MAAM,UAAU,WAAW,CAGzB,EAAK;IAEL,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAM;IACR,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,UAAwB,CAAA;IAE/C,UAAW,CAAC,EAAE,CACZ,SAAS,EACT,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAsC,EAAE,EAAE;QAEjE,CAAC;QAAA,CAAC,GAAS,EAAE;YACX,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAA;YACrD,IAAI,GAA2B,CAAA;YAC/B,IAAI,CAAC;gBACH,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;YACzC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAA;YAC3D,CAAC;YACD,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACnC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;QACrC,CAAC,CAAA,CAAC,EAAE,CAAA;IACN,CAAC,CACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "synckit",
|
3
|
-
"version": "0.8.
|
3
|
+
"version": "0.8.6",
|
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",
|
@@ -33,7 +33,7 @@
|
|
33
33
|
"synckit"
|
34
34
|
],
|
35
35
|
"dependencies": {
|
36
|
-
"@pkgr/utils": "^2.
|
37
|
-
"tslib": "^2.
|
36
|
+
"@pkgr/utils": "^2.4.2",
|
37
|
+
"tslib": "^2.6.2"
|
38
38
|
}
|
39
39
|
}
|