@anonaddy/omni-worker 0.1.0 → 0.2.0
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 +22 -14
- package/dist/cjs/helpers/builder.js +22 -0
- package/dist/cjs/helpers/builder.js.map +1 -0
- package/dist/cjs/helpers/pool.js +9 -0
- package/dist/cjs/helpers/pool.js.map +1 -0
- package/dist/cjs/node/builder/helpers.js +14 -28
- package/dist/cjs/node/builder/helpers.js.map +1 -1
- package/dist/cjs/node/builder/index.js +2 -1
- package/dist/cjs/node/builder/index.js.map +1 -1
- package/dist/cjs/node/index.js +110 -51
- package/dist/cjs/node/index.js.map +1 -1
- package/dist/cjs/node/pool.js +131 -73
- package/dist/cjs/node/pool.js.map +1 -1
- package/dist/cjs/node.js +6 -0
- package/dist/cjs/node.js.map +1 -0
- package/dist/cjs/types/helpers.js +11 -0
- package/dist/cjs/types/helpers.js.map +1 -0
- package/dist/cjs/types/node-omni-worker.js +3 -0
- package/dist/cjs/types/node-omni-worker.js.map +1 -0
- package/dist/cjs/types/web-omni-worker.js +3 -0
- package/dist/cjs/types/web-omni-worker.js.map +1 -0
- package/dist/cjs/web/builder/helpers.js +9 -0
- package/dist/cjs/web/builder/helpers.js.map +1 -0
- package/dist/cjs/{node/builder/node.js → web/builder/index.js} +10 -17
- package/dist/cjs/web/builder/index.js.map +1 -0
- package/dist/cjs/web/builder/model.js +3 -0
- package/dist/cjs/web/builder/model.js.map +1 -0
- package/dist/cjs/web/index.js +156 -0
- package/dist/cjs/web/index.js.map +1 -0
- package/dist/cjs/web/pool.js +143 -0
- package/dist/cjs/web/pool.js.map +1 -0
- package/dist/cjs/web/provider/helpers.js +9 -0
- package/dist/cjs/web/provider/helpers.js.map +1 -0
- package/dist/cjs/web/provider/index.js +69 -0
- package/dist/cjs/web/provider/index.js.map +1 -0
- package/dist/cjs/web/provider/model.js +3 -0
- package/dist/cjs/web/provider/model.js.map +1 -0
- package/dist/cjs/web.js +8 -0
- package/dist/cjs/web.js.map +1 -0
- package/dist/mjs/helpers/builder.js +16 -0
- package/dist/mjs/helpers/builder.js.map +1 -0
- package/dist/mjs/helpers/pool.js +6 -0
- package/dist/mjs/helpers/pool.js.map +1 -0
- package/dist/mjs/node/builder/helpers.js +14 -27
- package/dist/mjs/node/builder/helpers.js.map +1 -1
- package/dist/mjs/node/builder/index.js +4 -3
- package/dist/mjs/node/builder/index.js.map +1 -1
- package/dist/mjs/node/index.js +111 -51
- package/dist/mjs/node/index.js.map +1 -1
- package/dist/mjs/node/pool.js +132 -73
- package/dist/mjs/node/pool.js.map +1 -1
- package/dist/mjs/node.js +2 -0
- package/dist/mjs/node.js.map +1 -0
- package/dist/mjs/types/helpers.js +8 -0
- package/dist/mjs/types/helpers.js.map +1 -0
- package/dist/mjs/types/node-omni-worker.js +2 -0
- package/dist/mjs/types/node-omni-worker.js.map +1 -0
- package/dist/mjs/types/web-omni-worker.js +2 -0
- package/dist/mjs/types/web-omni-worker.js.map +1 -0
- package/dist/mjs/web/builder/helpers.js +6 -0
- package/dist/mjs/web/builder/helpers.js.map +1 -0
- package/dist/mjs/web/builder/index.js +10 -0
- package/dist/mjs/web/builder/index.js.map +1 -0
- package/dist/mjs/web/builder/model.js +2 -0
- package/dist/mjs/web/builder/model.js.map +1 -0
- package/dist/mjs/web/index.js +120 -0
- package/dist/mjs/web/index.js.map +1 -0
- package/dist/mjs/web/pool.js +140 -0
- package/dist/mjs/web/pool.js.map +1 -0
- package/dist/mjs/web/provider/helpers.js +6 -0
- package/dist/mjs/web/provider/helpers.js.map +1 -0
- package/dist/mjs/web/provider/index.js +32 -0
- package/dist/mjs/web/provider/index.js.map +1 -0
- package/dist/mjs/web/provider/model.js +2 -0
- package/dist/mjs/web/provider/model.js.map +1 -0
- package/dist/mjs/web.js +3 -0
- package/dist/mjs/web.js.map +1 -0
- package/dist/types/helpers/builder.d.ts +2 -0
- package/dist/types/helpers/builder.d.ts.map +1 -0
- package/dist/types/helpers/pool.d.ts +2 -0
- package/dist/types/helpers/pool.d.ts.map +1 -0
- package/dist/types/node/builder/helpers.d.ts +0 -1
- package/dist/types/node/builder/helpers.d.ts.map +1 -1
- package/dist/types/node/builder/index.d.ts +2 -2
- package/dist/types/node/builder/index.d.ts.map +1 -1
- package/dist/types/node/index.d.ts +15 -13
- package/dist/types/node/index.d.ts.map +1 -1
- package/dist/types/node/pool.d.ts +4 -3
- package/dist/types/node/pool.d.ts.map +1 -1
- package/dist/types/node.d.ts +3 -0
- package/dist/types/node.d.ts.map +1 -0
- package/dist/types/types/helpers.d.ts +6 -0
- package/dist/types/types/helpers.d.ts.map +1 -0
- package/dist/types/types/node-omni-worker.d.ts +90 -0
- package/dist/types/types/node-omni-worker.d.ts.map +1 -0
- package/dist/types/types/web-omni-worker.d.ts +103 -0
- package/dist/types/types/web-omni-worker.d.ts.map +1 -0
- package/dist/types/web/builder/helpers.d.ts +3 -0
- package/dist/types/web/builder/helpers.d.ts.map +1 -0
- package/dist/types/web/builder/index.d.ts +8 -0
- package/dist/types/web/builder/index.d.ts.map +1 -0
- package/dist/types/web/builder/model.d.ts +11 -0
- package/dist/types/web/builder/model.d.ts.map +1 -0
- package/dist/types/web/index.d.ts +35 -0
- package/dist/types/web/index.d.ts.map +1 -0
- package/dist/types/web/pool.d.ts +31 -0
- package/dist/types/web/pool.d.ts.map +1 -0
- package/dist/types/web/provider/helpers.d.ts +2 -0
- package/dist/types/web/provider/helpers.d.ts.map +1 -0
- package/dist/types/web/provider/index.d.ts +16 -0
- package/dist/types/web/provider/index.d.ts.map +1 -0
- package/dist/types/web/provider/model.d.ts +7 -0
- package/dist/types/web/provider/model.d.ts.map +1 -0
- package/dist/types/web.d.ts +4 -0
- package/dist/types/web.d.ts.map +1 -0
- package/package.json +23 -9
- package/dist/cjs/index.js +0 -8
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/node/builder/node.js.map +0 -1
- package/dist/mjs/index.js +0 -3
- package/dist/mjs/index.js.map +0 -1
- package/dist/mjs/node/builder/node.js +0 -14
- package/dist/mjs/node/builder/node.js.map +0 -1
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/node/builder/node.d.ts +0 -7
- package/dist/types/node/builder/node.d.ts.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../src/web/pool.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.convertToJsUrl = convertToJsUrl;
|
4
|
+
function convertToJsUrl(tsUrl, extension = '.js') {
|
5
|
+
tsUrl.pathname = tsUrl.pathname.replace(/\.ts$/, extension);
|
6
|
+
tsUrl.href = tsUrl.href.replace(/\.ts$/, extension);
|
7
|
+
return tsUrl;
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=helpers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/web/provider/helpers.ts"],"names":[],"mappings":";;AAAA,wCAIC;AAJD,SAAgB,cAAc,CAAC,KAAU,EAAE,SAAS,GAAG,KAAK;IAC1D,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
36
|
+
exports.provideWorker = void 0;
|
37
|
+
const helpers_1 = require("./helpers");
|
38
|
+
/**
|
39
|
+
* This provider is needed, since most bundlers will "tree shake"
|
40
|
+
* out worker files that are not imported. The reason for that,
|
41
|
+
* is that worker files aren't supposed to be imported.
|
42
|
+
* This wrapper function quickly imports the worker, before building
|
43
|
+
* it.
|
44
|
+
*
|
45
|
+
* @param tsUrl A URL object linking a worker .ts file, created using
|
46
|
+
* new URL('/path/to/your/file.ts', import.meta.url)
|
47
|
+
* @param options Optional options for the provisioning
|
48
|
+
* @returns A callback function, returning the the .js URL for building
|
49
|
+
* the worker
|
50
|
+
*/
|
51
|
+
const provideWorker = (tsUrl, options = {
|
52
|
+
extension: '.js'
|
53
|
+
}) => {
|
54
|
+
const jsUrl = (0, helpers_1.convertToJsUrl)(tsUrl, options.extension);
|
55
|
+
return () => {
|
56
|
+
const loadModule = (async () => {
|
57
|
+
try {
|
58
|
+
Promise.resolve(`${jsUrl.href}`).then(s => __importStar(require(s)));
|
59
|
+
}
|
60
|
+
catch (e) {
|
61
|
+
console.warn(e);
|
62
|
+
}
|
63
|
+
});
|
64
|
+
loadModule();
|
65
|
+
return jsUrl;
|
66
|
+
};
|
67
|
+
};
|
68
|
+
exports.provideWorker = provideWorker;
|
69
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/web/provider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA2C;AAG3C;;;;;;;;;;;;GAYG;AACI,MAAM,aAAa,GAAG,CAC3B,KAAU,EACV,UAAiC;IAC/B,SAAS,EAAE,KAAK;CACjB,EACD,EAAE;IAEF,MAAM,KAAK,GAAG,IAAA,wBAAc,EAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvD,OAAO,GAAQ,EAAE;QACf,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,mBAAO,KAAK,CAAC,IAAI,wCAAE;YACrB,CAAC;YAAC,OAAM,CAAC,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC,CAAA;AACH,CAAC,CAAA;AApBY,QAAA,aAAa,iBAoBzB"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/web/provider/model.ts"],"names":[],"mappings":""}
|
package/dist/cjs/web.js
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.WebOmniWorkerPool = exports.WebOmniWorker = void 0;
|
4
|
+
var index_1 = require("./web/index");
|
5
|
+
Object.defineProperty(exports, "WebOmniWorker", { enumerable: true, get: function () { return index_1.WebOmniWorker; } });
|
6
|
+
var pool_1 = require("./web/pool");
|
7
|
+
Object.defineProperty(exports, "WebOmniWorkerPool", { enumerable: true, get: function () { return pool_1.WebOmniWorkerPool; } });
|
8
|
+
//# sourceMappingURL=web.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":";;;AAOA,qCAEqB;AADnB,sGAAA,aAAa,OAAA;AAGf,mCAEoB;AADlB,yGAAA,iBAAiB,OAAA"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
export function getCallerDir() {
|
3
|
+
try {
|
4
|
+
const stack = new Error().stack;
|
5
|
+
const line = stack.split('\n')[1].trim();
|
6
|
+
const segment = line.split(' ')[1];
|
7
|
+
const part = segment.split(':')[0];
|
8
|
+
const dirName = path.dirname(part);
|
9
|
+
return dirName;
|
10
|
+
}
|
11
|
+
catch (e) {
|
12
|
+
// console.error('building caller path failed', e);
|
13
|
+
return './';
|
14
|
+
}
|
15
|
+
}
|
16
|
+
//# sourceMappingURL=builder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/helpers/builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAM,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,mDAAmD;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../src/helpers/pool.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
@@ -6,27 +6,13 @@ import TerserPlugin from 'terser-webpack-plugin';
|
|
6
6
|
const BUILD_PATH = path.join(__dirname, '.out');
|
7
7
|
const BUILD_FILENAME = 'bundle.js';
|
8
8
|
const BUILD_FILE_PATH = path.join(BUILD_PATH, BUILD_FILENAME);
|
9
|
-
export function getCallerDir() {
|
10
|
-
try {
|
11
|
-
const stack = new Error().stack;
|
12
|
-
const line = stack.split('\n')[1].trim();
|
13
|
-
const segment = line.split(' ')[1];
|
14
|
-
const part = segment.split(':')[0];
|
15
|
-
const dirName = path.dirname(part);
|
16
|
-
return dirName;
|
17
|
-
}
|
18
|
-
catch (e) {
|
19
|
-
// console.error('building caller path failed', e);
|
20
|
-
return './';
|
21
|
-
}
|
22
|
-
}
|
23
9
|
export function buildWorkerCode(entryFile) {
|
10
|
+
if (!fs.existsSync(BUILD_PATH)) {
|
11
|
+
fs.mkdirSync(BUILD_PATH, { recursive: true });
|
12
|
+
}
|
13
|
+
const config = getWebpackConfig(entryFile);
|
14
|
+
const compiler = webpack(config);
|
24
15
|
return new Promise((resolve, reject) => {
|
25
|
-
if (!fs.existsSync(BUILD_PATH)) {
|
26
|
-
fs.mkdirSync(BUILD_PATH, { recursive: true });
|
27
|
-
}
|
28
|
-
const config = getWebpackConfig(entryFile);
|
29
|
-
const compiler = webpack(config);
|
30
16
|
compiler.run((err, stats) => {
|
31
17
|
if (err) {
|
32
18
|
reject(err);
|
@@ -40,21 +26,16 @@ export function buildWorkerCode(entryFile) {
|
|
40
26
|
*/
|
41
27
|
const bundledCode = fs
|
42
28
|
.readFileSync(BUILD_FILE_PATH, 'utf8');
|
43
|
-
resolve(bundledCode);
|
44
29
|
// clean up the build folder
|
45
|
-
fs.rm(BUILD_PATH, { recursive: true, force:
|
30
|
+
fs.rm(BUILD_PATH, { recursive: true, force: false }, (err) => {
|
46
31
|
if (err) {
|
47
32
|
reject(err);
|
48
33
|
}
|
49
34
|
});
|
35
|
+
resolve(bundledCode);
|
50
36
|
});
|
51
37
|
});
|
52
38
|
}
|
53
|
-
const resolveNodeModules = (packageName) => require.resolve(packageName, {
|
54
|
-
paths: [
|
55
|
-
path.resolve(__dirname, 'node_modules')
|
56
|
-
]
|
57
|
-
});
|
58
39
|
const getWebpackConfig = (entry) => ({
|
59
40
|
entry,
|
60
41
|
output: {
|
@@ -132,7 +113,8 @@ const getWebpackConfig = (entry) => ({
|
|
132
113
|
resolveNodeModules('@babel/preset-typescript')
|
133
114
|
],
|
134
115
|
plugins: [
|
135
|
-
resolveNodeModules('@babel/plugin-transform-modules-commonjs')
|
116
|
+
resolveNodeModules('@babel/plugin-transform-modules-commonjs'),
|
117
|
+
[resolveNodeModules('@babel/plugin-proposal-decorators'), { "legacy": true }],
|
136
118
|
]
|
137
119
|
},
|
138
120
|
}
|
@@ -148,4 +130,9 @@ const getWebpackConfig = (entry) => ({
|
|
148
130
|
})],
|
149
131
|
cache: false
|
150
132
|
});
|
133
|
+
const resolveNodeModules = (packageName) => require.resolve(packageName, {
|
134
|
+
paths: [
|
135
|
+
path.resolve(__dirname, 'node_modules')
|
136
|
+
]
|
137
|
+
});
|
151
138
|
//# sourceMappingURL=helpers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/node/builder/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAE9D,MAAM,UAAU,
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/node/builder/helpers.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import Comlink from 'comlink';
|
2
|
-
import { Worker } from 'worker_threads';
|
2
|
+
import { Worker as ThreadWorker } from 'worker_threads';
|
3
3
|
import nodeEndpoint from 'comlink/dist/umd/node-adapter.js';
|
4
|
-
import { buildWorkerCode
|
4
|
+
import { buildWorkerCode } from './helpers';
|
5
5
|
import path from 'path';
|
6
|
+
import { getCallerDir } from '../../helpers/builder';
|
6
7
|
export const genWorkerCodeFromFile = async (workerPath) => {
|
7
8
|
const callerDir = getCallerDir();
|
8
9
|
const resolvedPath = path.resolve(callerDir, workerPath);
|
@@ -10,7 +11,7 @@ export const genWorkerCodeFromFile = async (workerPath) => {
|
|
10
11
|
return code;
|
11
12
|
};
|
12
13
|
export const buildNodeApiAndWorkerFromCode = (code) => {
|
13
|
-
const worker = new
|
14
|
+
const worker = new ThreadWorker(code, { eval: true });
|
14
15
|
const api = Comlink.wrap(nodeEndpoint(worker));
|
15
16
|
return { worker, api };
|
16
17
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/node/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/node/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,UAAkB,EACD,EAAE;IACnB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,IAAY,EAC4C,EAAE;IAE1D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAElD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC,CAAA"}
|
package/dist/mjs/node/index.js
CHANGED
@@ -1,59 +1,119 @@
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
6
|
+
var _, done = false;
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
8
|
+
var context = {};
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
13
|
+
if (kind === "accessor") {
|
14
|
+
if (result === void 0) continue;
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
19
|
+
}
|
20
|
+
else if (_ = accept(result)) {
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
22
|
+
else descriptor[key] = _;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
26
|
+
done = true;
|
27
|
+
};
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
29
|
+
var useValue = arguments.length > 2;
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
32
|
+
}
|
33
|
+
return useValue ? value : void 0;
|
34
|
+
};
|
35
|
+
var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
|
36
|
+
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
|
37
|
+
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
38
|
+
};
|
1
39
|
import { parentPort } from 'worker_threads';
|
2
40
|
import Comlink from 'comlink';
|
3
41
|
import nodeEndpoint from 'comlink/dist/umd/node-adapter';
|
4
42
|
import { buildNodeApiAndWorkerFromCode, genWorkerCodeFromFile } from './builder';
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
43
|
+
import { staticImplements } from '../types/helpers';
|
44
|
+
/**
|
45
|
+
* OmniWorker for NodeJS
|
46
|
+
*/
|
47
|
+
let NodeOmniWorker = (() => {
|
48
|
+
let _classDecorators = [staticImplements(), staticImplements()];
|
49
|
+
let _classDescriptor;
|
50
|
+
let _classExtraInitializers = [];
|
51
|
+
let _classThis;
|
52
|
+
var NodeOmniWorker = _classThis = class {
|
53
|
+
constructor(code, worker, api) {
|
54
|
+
this.isInitialized = () => (this._api !== undefined);
|
55
|
+
this.use = () => {
|
56
|
+
const isInitialized = this.isInitialized();
|
57
|
+
if (isInitialized) {
|
58
|
+
return this._api;
|
59
|
+
}
|
60
|
+
else {
|
61
|
+
throw Error('worker is not yet initialized. make sure to call the build() function, first');
|
62
|
+
}
|
63
|
+
};
|
64
|
+
this.clone = (numOfTimes) => {
|
65
|
+
const workers = [];
|
20
66
|
const code = this._code;
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
67
|
+
for (let i = 0; i <= numOfTimes; i++) {
|
68
|
+
const { worker, api } = buildNodeApiAndWorkerFromCode(code);
|
69
|
+
workers.push(new NodeOmniWorker(code, worker, api));
|
70
|
+
}
|
71
|
+
return workers;
|
72
|
+
};
|
73
|
+
this.destroy = async () => {
|
74
|
+
await this._worker.terminate();
|
75
|
+
};
|
76
|
+
this._code = code;
|
77
|
+
this._worker = worker;
|
78
|
+
this._api = api;
|
79
|
+
return this;
|
80
|
+
}
|
81
|
+
/**
|
82
|
+
* Handles the building of the necessary resources for an OmniWorker to function.
|
83
|
+
* This usually means, building from the consumer's code, creating the comlink
|
84
|
+
* interface between the worker and the main thread as well as the worker itself.
|
85
|
+
*
|
86
|
+
* @param path Relative path FROM YOUR PROJECT's ROOT to the file to be the worker
|
87
|
+
* @returns An OmniWorker
|
88
|
+
*/
|
89
|
+
static async build(path) {
|
90
|
+
const code = await genWorkerCodeFromFile(path);
|
91
|
+
const { worker, api } = buildNodeApiAndWorkerFromCode(code);
|
92
|
+
return new NodeOmniWorker(code, worker, api);
|
93
|
+
}
|
94
|
+
};
|
95
|
+
__setFunctionName(_classThis, "NodeOmniWorker");
|
96
|
+
(() => {
|
97
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
98
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
99
|
+
NodeOmniWorker = _classThis = _classDescriptor.value;
|
100
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
101
|
+
})();
|
34
102
|
/**
|
35
|
-
*
|
36
|
-
*
|
37
|
-
*
|
38
|
-
*
|
39
|
-
* @param path The relative path to where the worker module is located
|
40
|
-
* @returns A new Node OmniWorker
|
103
|
+
* Expose the functions inside the worker to the rest of the application.
|
104
|
+
* After having exposed the functions, the build step can be initiated.
|
105
|
+
* @param exposable A class, object with functions or a single function to be
|
106
|
+
* exposed to the main thread.
|
41
107
|
*/
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
}
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
*/
|
54
|
-
NodeOmniWorker.expose = (functions) => {
|
55
|
-
if (parentPort) {
|
56
|
-
Comlink.expose(functions, nodeEndpoint(parentPort));
|
57
|
-
}
|
58
|
-
};
|
108
|
+
_classThis.expose = (exposable) => {
|
109
|
+
if (parentPort) {
|
110
|
+
Comlink.expose(exposable, nodeEndpoint(parentPort));
|
111
|
+
}
|
112
|
+
};
|
113
|
+
(() => {
|
114
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
115
|
+
})();
|
116
|
+
return NodeOmniWorker = _classThis;
|
117
|
+
})();
|
118
|
+
export { NodeOmniWorker };
|
59
119
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,UAAU,EAA0B,MAAM,gBAAgB,CAAC;AACpE,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;IAGU,cAAc;4BAF1B,gBAAgB,EAAc,EAC9B,gBAAgB,EAAc;;;;;QAO7B,YACE,IAAY,EACZ,MAAoB,EACpB,GAA4B;YAoCvB,kBAAa,GAAG,GAAY,EAAE,CAAC,CACpC,IAAI,CAAC,IAAI,KAAK,SAAS,CACxB,CAAC;YAEK,QAAG,GAAG,GAAG,EAAE;gBAChB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3C,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,IAAI,CAAC,IAAK,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC,8EAA8E,CAAC,CAAC;gBAC9F,CAAC;YACH,CAAC,CAAA;YAEM,UAAK,GAAG,CAAC,UAAkB,EAAE,EAAE;gBACpC,MAAM,OAAO,GAAwB,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,6BAA6B,CAAI,IAAI,CAAC,CAAC;oBAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAA;YAEM,YAAO,GAAG,KAAK,IAAI,EAAE;gBAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACjC,CAAC,CAAA;YA3DC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAcD;;;;;;;WAOG;QACI,MAAM,CAAC,KAAK,CAAC,KAAK,CACvB,IAAY;YAEZ,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,6BAA6B,CAAI,IAAI,CAAC,CAAC;YAC/D,OAAO,IAAI,cAAc,CAAI,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;;;;;QA3CH,6KAuEC;;;;IAtDC;;;;;OAKG;IACW,iBAAM,GAAG,CAAI,SAAY,EAAE,EAAE;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,AAJmB,CAInB;;QA3BU,uDAAc;;;;SAAd,cAAc"}
|