@loaders.gl/worker-utils 3.3.0-alpha.1 → 3.3.0-alpha.11
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/dist/es5/index.js +39 -50
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/async-queue/async-queue.js +15 -22
- package/dist/es5/lib/async-queue/async-queue.js.map +1 -1
- package/dist/es5/lib/env-utils/assert.js.map +1 -1
- package/dist/es5/lib/env-utils/globals.js +7 -4
- package/dist/es5/lib/env-utils/globals.js.map +1 -1
- package/dist/es5/lib/env-utils/version.js +3 -3
- package/dist/es5/lib/env-utils/version.js.map +1 -1
- package/dist/es5/lib/library-utils/library-utils.js +6 -45
- package/dist/es5/lib/library-utils/library-utils.js.map +1 -1
- package/dist/es5/lib/node/require-utils.node.js +0 -22
- package/dist/es5/lib/node/require-utils.node.js.map +1 -1
- package/dist/es5/lib/node/worker_threads-browser.js +13 -9
- package/dist/es5/lib/node/worker_threads-browser.js.map +1 -1
- package/dist/es5/lib/node/worker_threads.js +15 -6
- package/dist/es5/lib/node/worker_threads.js.map +1 -1
- package/dist/es5/lib/process-utils/child-process-proxy.js +6 -49
- package/dist/es5/lib/process-utils/child-process-proxy.js.map +1 -1
- package/dist/es5/lib/process-utils/process-utils.js +0 -7
- package/dist/es5/lib/process-utils/process-utils.js.map +1 -1
- package/dist/es5/lib/worker-api/create-worker.js +40 -96
- package/dist/es5/lib/worker-api/create-worker.js.map +1 -1
- package/dist/es5/lib/worker-api/get-worker-url.js +2 -7
- package/dist/es5/lib/worker-api/get-worker-url.js.map +1 -1
- package/dist/es5/lib/worker-api/process-on-worker.js +15 -41
- package/dist/es5/lib/worker-api/process-on-worker.js.map +1 -1
- package/dist/es5/lib/worker-api/validate-worker-version.js +0 -4
- package/dist/es5/lib/worker-api/validate-worker-version.js.map +1 -1
- package/dist/es5/lib/worker-farm/worker-body.js +13 -30
- package/dist/es5/lib/worker-farm/worker-body.js.map +1 -1
- package/dist/es5/lib/worker-farm/worker-farm.js +21 -32
- package/dist/es5/lib/worker-farm/worker-farm.js.map +1 -1
- package/dist/es5/lib/worker-farm/worker-job.js +9 -13
- package/dist/es5/lib/worker-farm/worker-job.js.map +1 -1
- package/dist/es5/lib/worker-farm/worker-pool.js +18 -51
- package/dist/es5/lib/worker-farm/worker-pool.js.map +1 -1
- package/dist/es5/lib/worker-farm/worker-thread.js +24 -37
- package/dist/es5/lib/worker-farm/worker-thread.js.map +1 -1
- package/dist/es5/lib/worker-utils/get-loadable-worker-url.js +1 -5
- package/dist/es5/lib/worker-utils/get-loadable-worker-url.js.map +1 -1
- package/dist/es5/lib/worker-utils/get-transfer-list.js +22 -10
- package/dist/es5/lib/worker-utils/get-transfer-list.js.map +1 -1
- package/dist/es5/lib/worker-utils/remove-nontransferable-options.js +12 -21
- package/dist/es5/lib/worker-utils/remove-nontransferable-options.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/es5/workers/null-worker.js +0 -6
- package/dist/es5/workers/null-worker.js.map +1 -1
- package/dist/esm/index.js +9 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/async-queue/async-queue.js +1 -14
- package/dist/esm/lib/async-queue/async-queue.js.map +1 -1
- package/dist/esm/lib/env-utils/assert.js +2 -0
- package/dist/esm/lib/env-utils/assert.js.map +1 -1
- package/dist/esm/lib/env-utils/globals.js +9 -1
- package/dist/esm/lib/env-utils/globals.js.map +1 -1
- package/dist/esm/lib/env-utils/version.js +4 -3
- package/dist/esm/lib/env-utils/version.js.map +1 -1
- package/dist/esm/lib/library-utils/library-utils.js +10 -12
- package/dist/esm/lib/library-utils/library-utils.js.map +1 -1
- package/dist/esm/lib/node/require-utils.node.js +7 -9
- package/dist/esm/lib/node/require-utils.node.js.map +1 -1
- package/dist/esm/lib/node/worker_threads-browser.js +6 -1
- package/dist/esm/lib/node/worker_threads-browser.js.map +1 -1
- package/dist/esm/lib/node/worker_threads.js +4 -0
- package/dist/esm/lib/node/worker_threads.js.map +1 -1
- package/dist/esm/lib/process-utils/child-process-proxy.js +13 -25
- package/dist/esm/lib/process-utils/child-process-proxy.js.map +1 -1
- package/dist/esm/lib/process-utils/process-utils.js +3 -5
- package/dist/esm/lib/process-utils/process-utils.js.map +1 -1
- package/dist/esm/lib/worker-api/create-worker.js +4 -14
- package/dist/esm/lib/worker-api/create-worker.js.map +1 -1
- package/dist/esm/lib/worker-api/get-worker-url.js +6 -5
- package/dist/esm/lib/worker-api/get-worker-url.js.map +1 -1
- package/dist/esm/lib/worker-api/process-on-worker.js +9 -13
- package/dist/esm/lib/worker-api/process-on-worker.js.map +1 -1
- package/dist/esm/lib/worker-api/validate-worker-version.js +3 -2
- package/dist/esm/lib/worker-api/validate-worker-version.js.map +1 -1
- package/dist/esm/lib/worker-farm/worker-body.js +1 -13
- package/dist/esm/lib/worker-farm/worker-body.js.map +1 -1
- package/dist/esm/lib/worker-farm/worker-farm.js +9 -14
- package/dist/esm/lib/worker-farm/worker-farm.js.map +1 -1
- package/dist/esm/lib/worker-farm/worker-job.js +2 -9
- package/dist/esm/lib/worker-farm/worker-job.js.map +1 -1
- package/dist/esm/lib/worker-farm/worker-pool.js +8 -31
- package/dist/esm/lib/worker-farm/worker-pool.js.map +1 -1
- package/dist/esm/lib/worker-farm/worker-thread.js +5 -25
- package/dist/esm/lib/worker-farm/worker-thread.js.map +1 -1
- package/dist/esm/lib/worker-utils/get-loadable-worker-url.js +2 -3
- package/dist/esm/lib/worker-utils/get-loadable-worker-url.js.map +1 -1
- package/dist/esm/lib/worker-utils/get-transfer-list.js +26 -9
- package/dist/esm/lib/worker-utils/get-transfer-list.js.map +1 -1
- package/dist/esm/lib/worker-utils/remove-nontransferable-options.js +13 -18
- package/dist/esm/lib/worker-utils/remove-nontransferable-options.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/workers/null-worker.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/lib/library-utils/library-utils.js +5 -1
- package/dist/lib/node/worker_threads-browser.d.ts +5 -2
- package/dist/lib/node/worker_threads-browser.d.ts.map +1 -1
- package/dist/lib/node/worker_threads-browser.js +4 -1
- package/dist/lib/node/worker_threads.d.ts +4 -1
- package/dist/lib/node/worker_threads.d.ts.map +1 -1
- package/dist/lib/node/worker_threads.js +21 -1
- package/dist/lib/process-utils/child-process-proxy.d.ts +1 -1
- package/dist/lib/process-utils/child-process-proxy.d.ts.map +1 -1
- package/dist/lib/process-utils/child-process-proxy.js +5 -1
- package/dist/lib/worker-api/create-worker.d.ts +1 -1
- package/dist/lib/worker-api/create-worker.d.ts.map +1 -1
- package/dist/lib/worker-api/create-worker.js +1 -1
- package/dist/lib/worker-api/process-on-worker.d.ts +1 -1
- package/dist/lib/worker-api/process-on-worker.d.ts.map +1 -1
- package/dist/lib/worker-api/process-on-worker.js +2 -2
- package/dist/lib/worker-farm/worker-farm.d.ts +1 -1
- package/dist/lib/worker-farm/worker-farm.d.ts.map +1 -1
- package/dist/lib/worker-farm/worker-farm.js +8 -8
- package/dist/lib/worker-farm/worker-pool.d.ts +4 -4
- package/dist/lib/worker-farm/worker-pool.d.ts.map +1 -1
- package/dist/lib/worker-farm/worker-pool.js +4 -4
- package/dist/lib/worker-farm/worker-thread.d.ts +4 -5
- package/dist/lib/worker-farm/worker-thread.d.ts.map +1 -1
- package/dist/lib/worker-farm/worker-thread.js +8 -6
- package/dist/lib/worker-utils/get-transfer-list.d.ts +5 -0
- package/dist/lib/worker-utils/get-transfer-list.d.ts.map +1 -1
- package/dist/lib/worker-utils/get-transfer-list.js +27 -1
- package/dist/lib/worker-utils/remove-nontransferable-options.d.ts +3 -3
- package/dist/lib/worker-utils/remove-nontransferable-options.d.ts.map +1 -1
- package/dist/lib/worker-utils/remove-nontransferable-options.js +18 -26
- package/dist/null-worker.js.map +1 -1
- package/dist/types.d.ts +9 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +1 -1
- package/src/lib/node/{worker_threads-browser.js → worker_threads-browser.ts} +6 -1
- package/src/lib/node/worker_threads.ts +6 -0
- package/src/lib/worker-api/process-on-worker.ts +2 -2
- package/src/lib/worker-farm/worker-thread.ts +10 -5
- package/src/lib/worker-utils/get-transfer-list.ts +28 -0
- package/src/lib/worker-utils/remove-nontransferable-options.ts +17 -25
- package/src/lib/node/worker_threads.js +0 -1
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAE1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,GAAG,CAAC;AAElG,MAAM,MAAM,gBAAgB,GAAG,CAC7B,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAC5C,OAAO,CAAC,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,EAC9B,OAAO,CAAC,EAAE,aAAa,KACpB,aAAa,CAAC,GAAG,CAAC,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,OAAO,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAmBF,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,MAAM,GACN,OAAO,GACP,oBAAoB,GACpB,aAAa,GACb,YAAY,GACZ,cAAc,CAAC;AAEnB,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC/B,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/worker-utils",
|
|
3
|
-
"version": "3.3.0-alpha.
|
|
3
|
+
"version": "3.3.0-alpha.11",
|
|
4
4
|
"description": "Utilities for running tasks on worker threads",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"browser": {
|
|
28
28
|
"child_process": false,
|
|
29
29
|
"fs": false,
|
|
30
|
-
"./src/lib/node/worker_threads.
|
|
30
|
+
"./src/lib/node/worker_threads.ts": "./src/lib/node/worker_threads-browser.ts",
|
|
31
31
|
"./dist/lib/node/worker_threads.js": "./dist/lib/node/worker_threads-browser.js",
|
|
32
32
|
"./dist/es5/lib/node/worker_threads.js": "./dist/es5/lib/node/worker_threads-browser.js",
|
|
33
33
|
"./dist/esm/lib/node/worker_threads.js": "./dist/esm/lib/node/worker_threads-browser.js",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@babel/runtime": "^7.3.1"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "1863a8875f63d578c0fdf5bdb3b7d6827f799db9"
|
|
53
53
|
}
|
package/src/index.ts
CHANGED
|
@@ -31,7 +31,7 @@ export {createWorker} from './lib/worker-api/create-worker';
|
|
|
31
31
|
// WORKER UTILS - EXPORTS
|
|
32
32
|
export {getWorkerURL} from './lib/worker-api/get-worker-url';
|
|
33
33
|
export {validateWorkerVersion} from './lib/worker-api/validate-worker-version';
|
|
34
|
-
export {getTransferList} from './lib/worker-utils/get-transfer-list';
|
|
34
|
+
export {getTransferList, getTransferListForWriter} from './lib/worker-utils/get-transfer-list';
|
|
35
35
|
|
|
36
36
|
// LIBRARY UTILS
|
|
37
37
|
export {getLibraryUrl, loadLibrary} from './lib/library-utils/library-utils';
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
// These fills are non-functional, and just intended to ensure that
|
|
3
3
|
// `import 'worker_threads` doesn't break browser builds.
|
|
4
4
|
// The replacement is done in package.json browser field
|
|
5
|
-
export class Worker {
|
|
5
|
+
export class Worker {
|
|
6
|
+
terminate() {}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export {Worker as NodeWorker};
|
|
10
|
+
export {Worker as NodeWorkerType};
|
|
6
11
|
|
|
7
12
|
export const parentPort = null;
|
|
@@ -7,8 +7,8 @@ import type {
|
|
|
7
7
|
} from '../../types';
|
|
8
8
|
import type WorkerJob from '../worker-farm/worker-job';
|
|
9
9
|
import WorkerFarm from '../worker-farm/worker-farm';
|
|
10
|
-
import {removeNontransferableOptions} from '../worker-utils/remove-nontransferable-options';
|
|
11
10
|
import {getWorkerURL, getWorkerName} from './get-worker-url';
|
|
11
|
+
import {getTransferListForWriter} from '../worker-utils/get-transfer-list';
|
|
12
12
|
|
|
13
13
|
type ProcessOnWorkerOptions = WorkerOptions & {
|
|
14
14
|
jobName?: string;
|
|
@@ -58,7 +58,7 @@ export async function processOnWorker(
|
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
// Kick off the processing in the worker
|
|
61
|
-
const transferableOptions =
|
|
61
|
+
const transferableOptions = getTransferListForWriter(options);
|
|
62
62
|
job.postMessage('process', {input: data, options: transferableOptions});
|
|
63
63
|
|
|
64
64
|
const result = await job.result;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {NodeWorker, NodeWorkerType} from '../node/worker_threads';
|
|
2
4
|
import {isBrowser} from '../env-utils/globals';
|
|
3
5
|
import {assert} from '../env-utils/assert';
|
|
4
6
|
import {getLoadableWorkerURL} from '../worker-utils/get-loadable-worker-url';
|
|
@@ -20,7 +22,7 @@ export default class WorkerThread {
|
|
|
20
22
|
readonly source: string | undefined;
|
|
21
23
|
readonly url: string | undefined;
|
|
22
24
|
terminated: boolean = false;
|
|
23
|
-
worker: Worker |
|
|
25
|
+
worker: Worker | NodeWorkerType;
|
|
24
26
|
onMessage: (message: any) => void;
|
|
25
27
|
onError: (error: Error) => void;
|
|
26
28
|
|
|
@@ -28,7 +30,10 @@ export default class WorkerThread {
|
|
|
28
30
|
|
|
29
31
|
/** Checks if workers are supported on this platform */
|
|
30
32
|
static isSupported(): boolean {
|
|
31
|
-
return (
|
|
33
|
+
return (
|
|
34
|
+
(typeof Worker !== 'undefined' && isBrowser) ||
|
|
35
|
+
(typeof NodeWorker !== 'undefined' && !isBrowser)
|
|
36
|
+
);
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
constructor(props: WorkerThreadProps) {
|
|
@@ -121,8 +126,8 @@ export default class WorkerThread {
|
|
|
121
126
|
* Creates a worker thread in node.js
|
|
122
127
|
* @todo https://nodejs.org/api/async_hooks.html#async-resource-worker-pool
|
|
123
128
|
*/
|
|
124
|
-
_createNodeWorker():
|
|
125
|
-
let worker:
|
|
129
|
+
_createNodeWorker(): NodeWorkerType {
|
|
130
|
+
let worker: NodeWorkerType;
|
|
126
131
|
if (this.url) {
|
|
127
132
|
// Make sure relative URLs start with './'
|
|
128
133
|
const absolute = this.url.includes(':/') || this.url.startsWith('/');
|
|
@@ -59,3 +59,31 @@ function isTransferable(object: unknown) {
|
|
|
59
59
|
}
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Recursively drop non serializable values like functions and regexps.
|
|
65
|
+
* @param object
|
|
66
|
+
*/
|
|
67
|
+
export function getTransferListForWriter(object: object | null): object {
|
|
68
|
+
if (object === null) {
|
|
69
|
+
return {};
|
|
70
|
+
}
|
|
71
|
+
const clone = Object.assign({}, object);
|
|
72
|
+
|
|
73
|
+
Object.keys(clone).forEach((key) => {
|
|
74
|
+
// Typed Arrays and Arrays are passed with no change
|
|
75
|
+
if (
|
|
76
|
+
typeof object[key] === 'object' &&
|
|
77
|
+
!ArrayBuffer.isView(object[key]) &&
|
|
78
|
+
!(object[key] instanceof Array)
|
|
79
|
+
) {
|
|
80
|
+
clone[key] = getTransferListForWriter(object[key]);
|
|
81
|
+
} else if (typeof clone[key] === 'function' || clone[key] instanceof RegExp) {
|
|
82
|
+
clone[key] = {};
|
|
83
|
+
} else {
|
|
84
|
+
clone[key] = object[key];
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
return clone;
|
|
89
|
+
}
|
|
@@ -1,31 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @param
|
|
2
|
+
* Recursively drop non serializable values like functions and regexps.
|
|
3
|
+
* @param object
|
|
4
4
|
*/
|
|
5
|
-
export function removeNontransferableOptions(object: object): object {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
5
|
+
export function removeNontransferableOptions(object: object | null): object {
|
|
6
|
+
if (object === null) {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
const clone = Object.assign({}, object);
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return JSON.parse(JSON.stringify(value));
|
|
21
|
-
} catch (err) {
|
|
22
|
-
// discard key if value cannot be deduped
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
// Store value in our set
|
|
27
|
-
cache.add(value);
|
|
11
|
+
Object.keys(clone).forEach((key) => {
|
|
12
|
+
// Checking if it is an object and not a typed array.
|
|
13
|
+
if (typeof object[key] === 'object' && !ArrayBuffer.isView(object[key])) {
|
|
14
|
+
clone[key] = removeNontransferableOptions(object[key]);
|
|
15
|
+
} else if (typeof clone[key] === 'function' || clone[key] instanceof RegExp) {
|
|
16
|
+
clone[key] = {};
|
|
17
|
+
} else {
|
|
18
|
+
clone[key] = object[key];
|
|
28
19
|
}
|
|
29
|
-
return value;
|
|
30
20
|
});
|
|
21
|
+
|
|
22
|
+
return clone;
|
|
31
23
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from 'worker_threads';
|