@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.
Files changed (73) hide show
  1. package/README.md +80 -24
  2. package/dist/cjs/index.js +5 -81
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/node/builder/constants.js +19 -0
  5. package/dist/cjs/node/builder/constants.js.map +1 -0
  6. package/dist/cjs/node/builder/helpers.js +158 -0
  7. package/dist/cjs/node/builder/helpers.js.map +1 -0
  8. package/dist/cjs/node/builder/index.js +25 -0
  9. package/dist/cjs/node/builder/index.js.map +1 -0
  10. package/dist/cjs/{builder → node/builder}/node.js +6 -32
  11. package/dist/cjs/node/builder/node.js.map +1 -0
  12. package/dist/cjs/node/index.js +66 -0
  13. package/dist/cjs/node/index.js.map +1 -0
  14. package/dist/cjs/node/pool.js +86 -0
  15. package/dist/cjs/node/pool.js.map +1 -0
  16. package/dist/mjs/index.js +2 -43
  17. package/dist/mjs/index.js.map +1 -1
  18. package/dist/mjs/node/builder/constants.js +13 -0
  19. package/dist/mjs/node/builder/constants.js.map +1 -0
  20. package/dist/mjs/node/builder/helpers.js +151 -0
  21. package/dist/mjs/node/builder/helpers.js.map +1 -0
  22. package/dist/mjs/node/builder/index.js +17 -0
  23. package/dist/mjs/node/builder/index.js.map +1 -0
  24. package/dist/mjs/node/builder/node.js +14 -0
  25. package/dist/mjs/node/builder/node.js.map +1 -0
  26. package/dist/mjs/node/index.js +59 -0
  27. package/dist/mjs/node/index.js.map +1 -0
  28. package/dist/mjs/node/pool.js +82 -0
  29. package/dist/mjs/node/pool.js.map +1 -0
  30. package/dist/types/index.d.ts +3 -25
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/dist/types/node/builder/constants.d.ts +5 -0
  33. package/dist/types/node/builder/constants.d.ts.map +1 -0
  34. package/dist/types/node/builder/helpers.d.ts +3 -0
  35. package/dist/types/node/builder/helpers.d.ts.map +1 -0
  36. package/dist/types/node/builder/index.d.ts +8 -0
  37. package/dist/types/node/builder/index.d.ts.map +1 -0
  38. package/dist/types/node/builder/node.d.ts +7 -0
  39. package/dist/types/node/builder/node.d.ts.map +1 -0
  40. package/dist/types/node/index.d.ts +30 -0
  41. package/dist/types/node/index.d.ts.map +1 -0
  42. package/dist/types/node/pool.d.ts +30 -0
  43. package/dist/types/node/pool.d.ts.map +1 -0
  44. package/package.json +16 -9
  45. package/dist/cjs/builder/helpers.js +0 -22
  46. package/dist/cjs/builder/helpers.js.map +0 -1
  47. package/dist/cjs/builder/node.js.map +0 -1
  48. package/dist/cjs/builder/plugins/external-imports.js +0 -44
  49. package/dist/cjs/builder/plugins/external-imports.js.map +0 -1
  50. package/dist/cjs/builder/plugins/native-module.js +0 -18
  51. package/dist/cjs/builder/plugins/native-module.js.map +0 -1
  52. package/dist/cjs/types/omni-worker.js +0 -3
  53. package/dist/cjs/types/omni-worker.js.map +0 -1
  54. package/dist/mjs/builder/helpers.js +0 -16
  55. package/dist/mjs/builder/helpers.js.map +0 -1
  56. package/dist/mjs/builder/node.js +0 -40
  57. package/dist/mjs/builder/node.js.map +0 -1
  58. package/dist/mjs/builder/plugins/external-imports.js +0 -39
  59. package/dist/mjs/builder/plugins/external-imports.js.map +0 -1
  60. package/dist/mjs/builder/plugins/native-module.js +0 -15
  61. package/dist/mjs/builder/plugins/native-module.js.map +0 -1
  62. package/dist/mjs/types/omni-worker.js +0 -2
  63. package/dist/mjs/types/omni-worker.js.map +0 -1
  64. package/dist/types/builder/helpers.d.ts +0 -2
  65. package/dist/types/builder/helpers.d.ts.map +0 -1
  66. package/dist/types/builder/node.d.ts +0 -3
  67. package/dist/types/builder/node.d.ts.map +0 -1
  68. package/dist/types/builder/plugins/external-imports.d.ts +0 -4
  69. package/dist/types/builder/plugins/external-imports.d.ts.map +0 -1
  70. package/dist/types/builder/plugins/native-module.d.ts +0 -3
  71. package/dist/types/builder/plugins/native-module.d.ts.map +0 -1
  72. package/dist/types/types/omni-worker.d.ts +0 -21
  73. 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.1",
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:node": "jest --config jest.node.config.ts --detectOpenHandles",
18
- "test:dom": "jest --config jest.dom.config.ts",
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
- "jest": "^29.0.0",
42
- "jest-environment-jsdom": "^29.7.0",
40
+ "@types/memory-fs": "^0.3.7",
41
+ "@types/webpack-node-externals": "^3.0.4",
43
42
  "lodash": "^4.17.21",
44
- "ts-jest": "^29.0.0",
45
- "typescript": "^5.0.0"
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
- "esbuild": "^0.24.2"
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,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=omni-worker.js.map
@@ -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"}
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=omni-worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"omni-worker.js","sourceRoot":"","sources":["../../../src/types/omni-worker.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export declare function getCallerDir(): string;
2
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/builder/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,WAa3B"}
@@ -1,3 +0,0 @@
1
- import * as Comlink from 'comlink';
2
- export declare const buildApiNode: <T>(path: string) => Promise<Comlink.Remote<T>>;
3
- //# sourceMappingURL=node.d.ts.map
@@ -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,4 +0,0 @@
1
- import { Plugin } from "esbuild";
2
- declare const externalImportsPlugin: Plugin;
3
- export default externalImportsPlugin;
4
- //# sourceMappingURL=external-imports.d.ts.map
@@ -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,3 +0,0 @@
1
- import { Plugin } from 'esbuild';
2
- export declare const nativeModulePlugin: Plugin;
3
- //# sourceMappingURL=native-module.d.ts.map
@@ -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"}