@anonaddy/omni-worker 0.0.1 → 0.1.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 +80 -24
- package/dist/cjs/index.js +5 -81
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node/builder/constants.js +19 -0
- package/dist/cjs/node/builder/constants.js.map +1 -0
- package/dist/cjs/node/builder/helpers.js +158 -0
- package/dist/cjs/node/builder/helpers.js.map +1 -0
- package/dist/cjs/node/builder/index.js +25 -0
- package/dist/cjs/node/builder/index.js.map +1 -0
- package/dist/cjs/{builder → node/builder}/node.js +6 -32
- package/dist/cjs/node/builder/node.js.map +1 -0
- package/dist/cjs/node/index.js +66 -0
- package/dist/cjs/node/index.js.map +1 -0
- package/dist/cjs/node/pool.js +86 -0
- package/dist/cjs/node/pool.js.map +1 -0
- package/dist/mjs/index.js +2 -43
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/node/builder/constants.js +13 -0
- package/dist/mjs/node/builder/constants.js.map +1 -0
- package/dist/mjs/node/builder/helpers.js +151 -0
- package/dist/mjs/node/builder/helpers.js.map +1 -0
- package/dist/mjs/node/builder/index.js +17 -0
- package/dist/mjs/node/builder/index.js.map +1 -0
- package/dist/mjs/node/builder/node.js +14 -0
- package/dist/mjs/node/builder/node.js.map +1 -0
- package/dist/mjs/node/index.js +59 -0
- package/dist/mjs/node/index.js.map +1 -0
- package/dist/mjs/node/pool.js +82 -0
- package/dist/mjs/node/pool.js.map +1 -0
- package/dist/types/index.d.ts +3 -25
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/node/builder/constants.d.ts +5 -0
- package/dist/types/node/builder/constants.d.ts.map +1 -0
- package/dist/types/node/builder/helpers.d.ts +3 -0
- package/dist/types/node/builder/helpers.d.ts.map +1 -0
- package/dist/types/node/builder/index.d.ts +8 -0
- package/dist/types/node/builder/index.d.ts.map +1 -0
- package/dist/types/node/builder/node.d.ts +7 -0
- package/dist/types/node/builder/node.d.ts.map +1 -0
- package/dist/types/node/index.d.ts +30 -0
- package/dist/types/node/index.d.ts.map +1 -0
- package/dist/types/node/pool.d.ts +30 -0
- package/dist/types/node/pool.d.ts.map +1 -0
- package/package.json +16 -9
- package/dist/cjs/builder/helpers.js +0 -22
- package/dist/cjs/builder/helpers.js.map +0 -1
- package/dist/cjs/builder/node.js.map +0 -1
- package/dist/cjs/builder/plugins/external-imports.js +0 -44
- package/dist/cjs/builder/plugins/external-imports.js.map +0 -1
- package/dist/cjs/builder/plugins/native-module.js +0 -18
- package/dist/cjs/builder/plugins/native-module.js.map +0 -1
- package/dist/cjs/types/omni-worker.js +0 -3
- package/dist/cjs/types/omni-worker.js.map +0 -1
- package/dist/mjs/builder/helpers.js +0 -16
- package/dist/mjs/builder/helpers.js.map +0 -1
- package/dist/mjs/builder/node.js +0 -40
- package/dist/mjs/builder/node.js.map +0 -1
- package/dist/mjs/builder/plugins/external-imports.js +0 -39
- package/dist/mjs/builder/plugins/external-imports.js.map +0 -1
- package/dist/mjs/builder/plugins/native-module.js +0 -15
- package/dist/mjs/builder/plugins/native-module.js.map +0 -1
- package/dist/mjs/types/omni-worker.js +0 -2
- package/dist/mjs/types/omni-worker.js.map +0 -1
- package/dist/types/builder/helpers.d.ts +0 -2
- package/dist/types/builder/helpers.d.ts.map +0 -1
- package/dist/types/builder/node.d.ts +0 -3
- package/dist/types/builder/node.d.ts.map +0 -1
- package/dist/types/builder/plugins/external-imports.d.ts +0 -4
- package/dist/types/builder/plugins/external-imports.d.ts.map +0 -1
- package/dist/types/builder/plugins/native-module.d.ts +0 -3
- package/dist/types/builder/plugins/native-module.d.ts.map +0 -1
- package/dist/types/types/omni-worker.d.ts +0 -21
- package/dist/types/types/omni-worker.d.ts.map +0 -1
@@ -0,0 +1,30 @@
|
|
1
|
+
import { IOmniWorkerPool, IOmniWorkerPoolOptions } from "../types/pool.d";
|
2
|
+
export declare class NodeOmniWorkerPool<T> implements IOmniWorkerPool<T> {
|
3
|
+
private _pool;
|
4
|
+
private _from;
|
5
|
+
private _options;
|
6
|
+
private _count;
|
7
|
+
private _lastUseIdx;
|
8
|
+
private constructor();
|
9
|
+
/**
|
10
|
+
* First builds the OmniWorkers and then launches a new NodeOmniWorker pool
|
11
|
+
* @param from The (relative) file path from your project's root to the worker .ts file
|
12
|
+
* @param options (Optional) Options object for launching the pool
|
13
|
+
*/
|
14
|
+
static buildAndLaunch<T extends object>(from: string, options?: IOmniWorkerPoolOptions): Promise<NodeOmniWorkerPool<T>>;
|
15
|
+
/**
|
16
|
+
* Launches a new NodeOmniWorker pool according to the options provided
|
17
|
+
* @param worker An already built NodeOmniWorker
|
18
|
+
* @returns A newly created pool
|
19
|
+
*/
|
20
|
+
private static launch;
|
21
|
+
/**
|
22
|
+
* Applies the options provided
|
23
|
+
*/
|
24
|
+
private applyOptions;
|
25
|
+
isInitialized: () => boolean;
|
26
|
+
getNumOfWorkers: () => number;
|
27
|
+
use: () => import("comlink").RemoteObject<T>;
|
28
|
+
destroy: () => Promise<void>;
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=pool.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/node/pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,qBAAa,kBAAkB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAE9D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO;IASP;;;;OAIG;WACiB,cAAc,CAAC,CAAC,SAAS,MAAM,EACjD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAMjC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,MAAM;IAQrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBb,aAAa,gBAAyB;IAEtC,eAAe,eAAqB;IAEpC,GAAG,0CAoBT;IAEM,OAAO,sBASb;CACF"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@anonaddy/omni-worker",
|
3
|
-
"version": "0.0
|
3
|
+
"version": "0.1.0",
|
4
4
|
"description": "Run your code including all imports inside workers on either the web or on NodeJS!",
|
5
5
|
"main": "dist/cjs/index.js",
|
6
6
|
"module": "dist/mjs/index.js",
|
@@ -14,8 +14,8 @@
|
|
14
14
|
"types": "dist/types/index.d.ts",
|
15
15
|
"scripts": {
|
16
16
|
"build": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.mjs.json",
|
17
|
-
"test:
|
18
|
-
"test:
|
17
|
+
"test:dom": "vitest --config vite.config.dom.ts",
|
18
|
+
"test:node": "vitest --config vite.config.node.ts",
|
19
19
|
"prepare": "npm run build"
|
20
20
|
},
|
21
21
|
"files": [
|
@@ -36,16 +36,23 @@
|
|
36
36
|
"author": "anonaddy",
|
37
37
|
"license": "MIT",
|
38
38
|
"devDependencies": {
|
39
|
-
"@types/jest": "^29.5.14",
|
40
39
|
"@types/lodash": "^4.17.15",
|
41
|
-
"
|
42
|
-
"
|
40
|
+
"@types/memory-fs": "^0.3.7",
|
41
|
+
"@types/webpack-node-externals": "^3.0.4",
|
43
42
|
"lodash": "^4.17.21",
|
44
|
-
"
|
45
|
-
"
|
43
|
+
"swisseph": "^0.5.17",
|
44
|
+
"ts-node": "^10.9.2",
|
45
|
+
"typescript": "^5.0.0",
|
46
|
+
"vitest": "^3.0.5"
|
46
47
|
},
|
47
48
|
"dependencies": {
|
49
|
+
"@babel/plugin-transform-modules-commonjs": "^7.26.3",
|
50
|
+
"@babel/preset-env": "^7.26.8",
|
51
|
+
"@babel/preset-typescript": "^7.26.0",
|
52
|
+
"babel-loader": "^9.2.1",
|
48
53
|
"comlink": "^4.4.2",
|
49
|
-
"
|
54
|
+
"terser-webpack-plugin": "^5.3.11",
|
55
|
+
"webpack": "^5.97.1",
|
56
|
+
"webpack-node-externals": "^3.0.0"
|
50
57
|
}
|
51
58
|
}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.getCallerDir = getCallerDir;
|
7
|
-
const path_1 = __importDefault(require("path"));
|
8
|
-
function getCallerDir() {
|
9
|
-
try {
|
10
|
-
const stack = new Error().stack;
|
11
|
-
const line = stack.split('\n')[1].trim();
|
12
|
-
const segment = line.split(' ')[1];
|
13
|
-
const part = segment.split(':')[0];
|
14
|
-
const dirName = path_1.default.dirname(part);
|
15
|
-
return dirName;
|
16
|
-
}
|
17
|
-
catch (e) {
|
18
|
-
console.error('building caller path failed', e);
|
19
|
-
return './';
|
20
|
-
}
|
21
|
-
}
|
22
|
-
//# sourceMappingURL=helpers.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/builder/helpers.ts"],"names":[],"mappings":";;;;;AAEA,oCAaC;AAfD,gDAAwB;AAExB,SAAgB,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,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/builder/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,iDAAmC;AACnC,kFAA+D;AAC/D,mDAAwC;AACxC,uFAA4D;AAC5D,4CAA8B;AAC9B,oEAAsE;AACtE,uCAAyC;AAElC,MAAM,YAAY,GAAG,KAAK,EAAK,IAAY,EAA8B,EAAE;IAEhF,MAAM,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC,YAAY,CAAC;QAC3B,MAAM,EAAE;YACN,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE;YACP,kCAAkB;YAClB,0BAAqB;SACtB;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,IACE,CAAC,WAAW;QACZ,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC7B,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;QACxC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,EACjC,CAAC;QACD,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAI,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC,CAAC;IAElD,OAAO,GAAG,CAAC;AACb,CAAC,CAAA;AAtCY,QAAA,YAAY,gBAsCxB"}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const fs_1 = __importDefault(require("fs"));
|
7
|
-
const path_1 = __importDefault(require("path"));
|
8
|
-
const externalImportsPlugin = ({
|
9
|
-
name: 'external-imports-plugin',
|
10
|
-
setup(build) {
|
11
|
-
const externalModules = new Set();
|
12
|
-
build.onLoad({ filter: /\.ts$|\.js$/ }, async (args) => {
|
13
|
-
// Read the file contents
|
14
|
-
const code = fs_1.default.readFileSync(args.path, "utf8");
|
15
|
-
// Collect imported module names
|
16
|
-
const importPattern = /import\s+(?:[\s\w{},*]+from\s+)?["']([^"']+)["']/g;
|
17
|
-
;
|
18
|
-
let match;
|
19
|
-
while ((match = importPattern.exec(code)) !== null) {
|
20
|
-
let importPath = match[1];
|
21
|
-
// Convert relative paths to absolute paths
|
22
|
-
if (importPath.startsWith(".")) {
|
23
|
-
importPath = path_1.default.resolve(path_1.default.dirname(args.path), importPath);
|
24
|
-
// Strip project root to avoid absolute paths
|
25
|
-
importPath = path_1.default.relative(process.cwd(), importPath);
|
26
|
-
}
|
27
|
-
externalModules.add(importPath);
|
28
|
-
}
|
29
|
-
});
|
30
|
-
build.onResolve({ filter: /.*/ }, (args) => {
|
31
|
-
if (externalModules.has(args.path)) {
|
32
|
-
return { path: args.path, external: true }; // Mark it external
|
33
|
-
}
|
34
|
-
});
|
35
|
-
build.onEnd(() => {
|
36
|
-
build.initialOptions.external = [
|
37
|
-
...(build.initialOptions.external || []),
|
38
|
-
...Array.from(externalModules),
|
39
|
-
];
|
40
|
-
});
|
41
|
-
},
|
42
|
-
});
|
43
|
-
exports.default = externalImportsPlugin;
|
44
|
-
//# sourceMappingURL=external-imports.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"external-imports.js","sourceRoot":"","sources":["../../../../src/builder/plugins/external-imports.ts"],"names":[],"mappings":";;;;;AACA,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,qBAAqB,GAAW,CAAC;IACrC,IAAI,EAAE,yBAAyB;IAC/B,KAAK,CAAC,KAAK;QACT,MAAM,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;QAE/C,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAgB,EAAgB,EAAE;YAC/E,yBAAyB;YACzB,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEhD,gCAAgC;YAChC,MAAM,aAAa,GAAG,mDAAmD,CAAC;YAAA,CAAC;YAC3E,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnD,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE1B,2CAA2C;gBAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;oBAE/D,6CAA6C;oBAC7C,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC;gBAED,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3C,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,mBAAmB;YACjE,CAAC;QACD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACf,KAAK,CAAC,cAAc,CAAC,QAAQ,GAAG;gBAC9B,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;aAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,kBAAe,qBAAqB,CAAC"}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.nativeModulePlugin = void 0;
|
4
|
-
exports.nativeModulePlugin = {
|
5
|
-
name: 'native-module',
|
6
|
-
setup(build) {
|
7
|
-
build.onResolve({ filter: /\.node$/ }, args => {
|
8
|
-
return { path: args.path, namespace: 'native', external: true };
|
9
|
-
});
|
10
|
-
build.onLoad({ filter: /\.node$/, namespace: 'native' }, async (args) => {
|
11
|
-
const fs = require('fs');
|
12
|
-
const path = require('path');
|
13
|
-
const binary = fs.readFileSync(path.resolve(args.pluginData.resolveDir, args.path));
|
14
|
-
return { contents: binary, loader: 'binary' };
|
15
|
-
});
|
16
|
-
},
|
17
|
-
};
|
18
|
-
//# sourceMappingURL=native-module.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"native-module.js","sourceRoot":"","sources":["../../../../src/builder/plugins/native-module.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAW;IACxC,IAAI,EAAE,eAAe;IACrB,KAAK,CAAC,KAAK;QACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,EAAE;YAC5C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACpE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"omni-worker.js","sourceRoot":"","sources":["../../../src/types/omni-worker.ts"],"names":[],"mappings":""}
|
@@ -1,16 +0,0 @@
|
|
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=helpers.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/builder/helpers.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,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/mjs/builder/node.js
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
import * as Comlink from 'comlink';
|
2
|
-
import * as esbuild from 'esbuild';
|
3
|
-
import externalImportsPlugin from './plugins/external-imports';
|
4
|
-
import { Worker } from 'worker_threads';
|
5
|
-
import nodeEndpoint from 'comlink/dist/umd/node-adapter.js';
|
6
|
-
import * as _path from 'path';
|
7
|
-
import { nativeModulePlugin } from '../builder/plugins/native-module';
|
8
|
-
import { getCallerDir } from './helpers';
|
9
|
-
export const buildApiNode = async (path) => {
|
10
|
-
const callerDir = getCallerDir();
|
11
|
-
const resolvedPath = _path.resolve(callerDir, path);
|
12
|
-
const result = await esbuild.build({
|
13
|
-
entryPoints: [resolvedPath],
|
14
|
-
loader: {
|
15
|
-
".ts": "ts",
|
16
|
-
".js": "js",
|
17
|
-
".node": "binary"
|
18
|
-
},
|
19
|
-
format: "cjs",
|
20
|
-
bundle: true,
|
21
|
-
minify: true,
|
22
|
-
write: false,
|
23
|
-
plugins: [
|
24
|
-
nativeModulePlugin,
|
25
|
-
externalImportsPlugin,
|
26
|
-
]
|
27
|
-
});
|
28
|
-
const outputFiles = result.outputFiles;
|
29
|
-
if (!outputFiles ||
|
30
|
-
result.outputFiles.length < 1 ||
|
31
|
-
result.outputFiles[0].text === undefined ||
|
32
|
-
result.outputFiles[0].text === "") {
|
33
|
-
throw Error("no build output for worker");
|
34
|
-
}
|
35
|
-
const scriptData = result.outputFiles[0].text.trim();
|
36
|
-
const worker = new Worker(scriptData, { eval: true });
|
37
|
-
const api = Comlink.wrap(nodeEndpoint(worker));
|
38
|
-
return api;
|
39
|
-
};
|
40
|
-
//# sourceMappingURL=node.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/builder/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAK,IAAY,EAA8B,EAAE;IAEhF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC,YAAY,CAAC;QAC3B,MAAM,EAAE;YACN,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE;YACP,kBAAkB;YAClB,qBAAqB;SACtB;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,IACE,CAAC,WAAW;QACZ,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC7B,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;QACxC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,EACjC,CAAC;QACD,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAElD,OAAO,GAAG,CAAC;AACb,CAAC,CAAA"}
|
@@ -1,39 +0,0 @@
|
|
1
|
-
import fs from 'fs';
|
2
|
-
import path from 'path';
|
3
|
-
const externalImportsPlugin = ({
|
4
|
-
name: 'external-imports-plugin',
|
5
|
-
setup(build) {
|
6
|
-
const externalModules = new Set();
|
7
|
-
build.onLoad({ filter: /\.ts$|\.js$/ }, async (args) => {
|
8
|
-
// Read the file contents
|
9
|
-
const code = fs.readFileSync(args.path, "utf8");
|
10
|
-
// Collect imported module names
|
11
|
-
const importPattern = /import\s+(?:[\s\w{},*]+from\s+)?["']([^"']+)["']/g;
|
12
|
-
;
|
13
|
-
let match;
|
14
|
-
while ((match = importPattern.exec(code)) !== null) {
|
15
|
-
let importPath = match[1];
|
16
|
-
// Convert relative paths to absolute paths
|
17
|
-
if (importPath.startsWith(".")) {
|
18
|
-
importPath = path.resolve(path.dirname(args.path), importPath);
|
19
|
-
// Strip project root to avoid absolute paths
|
20
|
-
importPath = path.relative(process.cwd(), importPath);
|
21
|
-
}
|
22
|
-
externalModules.add(importPath);
|
23
|
-
}
|
24
|
-
});
|
25
|
-
build.onResolve({ filter: /.*/ }, (args) => {
|
26
|
-
if (externalModules.has(args.path)) {
|
27
|
-
return { path: args.path, external: true }; // Mark it external
|
28
|
-
}
|
29
|
-
});
|
30
|
-
build.onEnd(() => {
|
31
|
-
build.initialOptions.external = [
|
32
|
-
...(build.initialOptions.external || []),
|
33
|
-
...Array.from(externalModules),
|
34
|
-
];
|
35
|
-
});
|
36
|
-
},
|
37
|
-
});
|
38
|
-
export default externalImportsPlugin;
|
39
|
-
//# sourceMappingURL=external-imports.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"external-imports.js","sourceRoot":"","sources":["../../../../src/builder/plugins/external-imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,qBAAqB,GAAW,CAAC;IACrC,IAAI,EAAE,yBAAyB;IAC/B,KAAK,CAAC,KAAK;QACT,MAAM,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;QAE/C,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAgB,EAAgB,EAAE;YAC/E,yBAAyB;YACzB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEhD,gCAAgC;YAChC,MAAM,aAAa,GAAG,mDAAmD,CAAC;YAAA,CAAC;YAC3E,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnD,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE1B,2CAA2C;gBAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;oBAE/D,6CAA6C;oBAC7C,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC;gBAED,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3C,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,mBAAmB;YACjE,CAAC;QACD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACf,KAAK,CAAC,cAAc,CAAC,QAAQ,GAAG;gBAC9B,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;aAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
export const nativeModulePlugin = {
|
2
|
-
name: 'native-module',
|
3
|
-
setup(build) {
|
4
|
-
build.onResolve({ filter: /\.node$/ }, args => {
|
5
|
-
return { path: args.path, namespace: 'native', external: true };
|
6
|
-
});
|
7
|
-
build.onLoad({ filter: /\.node$/, namespace: 'native' }, async (args) => {
|
8
|
-
const fs = require('fs');
|
9
|
-
const path = require('path');
|
10
|
-
const binary = fs.readFileSync(path.resolve(args.pluginData.resolveDir, args.path));
|
11
|
-
return { contents: binary, loader: 'binary' };
|
12
|
-
});
|
13
|
-
},
|
14
|
-
};
|
15
|
-
//# sourceMappingURL=native-module.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"native-module.js","sourceRoot":"","sources":["../../../../src/builder/plugins/native-module.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,IAAI,EAAE,eAAe;IACrB,KAAK,CAAC,KAAK;QACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,EAAE;YAC5C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACpE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"omni-worker.js","sourceRoot":"","sources":["../../../src/types/omni-worker.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/builder/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,WAa3B"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/builder/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AASnC,eAAO,MAAM,YAAY,GAAU,CAAC,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAsC7E,CAAA"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"external-imports.d.ts","sourceRoot":"","sources":["../../../../src/builder/plugins/external-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,SAAS,CAAC;AAI7C,QAAA,MAAM,qBAAqB,EAAE,MAwC3B,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"native-module.d.ts","sourceRoot":"","sources":["../../../../src/builder/plugins/native-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,kBAAkB,EAAE,MAahC,CAAA"}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import * as Comlink from 'comlink';
|
2
|
-
/**
|
3
|
-
* The base Interface for all workers
|
4
|
-
*/
|
5
|
-
export interface IOmniWorker<T> {
|
6
|
-
/**
|
7
|
-
* Use this function to see if the worker was successfully initialized
|
8
|
-
*
|
9
|
-
* @returns A boolean on whether or not the OmniWorker was successfully initialized
|
10
|
-
*/
|
11
|
-
isInitialized: () => boolean;
|
12
|
-
/**
|
13
|
-
* Will let you use the worker functions that were exposed from inside the worker.
|
14
|
-
* Please not that since using the worker, all your functions will now return
|
15
|
-
* asynchronously (Promise<>).
|
16
|
-
*
|
17
|
-
* @returns An object with the worker functions that were exposed from the worker
|
18
|
-
*/
|
19
|
-
use: () => Comlink.Remote<T>;
|
20
|
-
}
|
21
|
-
//# sourceMappingURL=omni-worker.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"omni-worker.d.ts","sourceRoot":"","sources":["../../../src/types/omni-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC;;EAEE;AACF,MAAM,WAAW,WAAW,CAAC,CAAC;IAE5B;;;;OAIG;IACH,aAAa,EAAE,MAAM,OAAO,CAAA;IAE5B;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAC7B"}
|