@anonaddy/omni-worker 0.0.1 → 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 +92 -28
- package/dist/cjs/{builder/helpers.js → helpers/builder.js} +2 -2
- package/dist/cjs/{builder/helpers.js.map → helpers/builder.js.map} +1 -1
- package/dist/cjs/helpers/pool.js +9 -0
- package/dist/cjs/helpers/pool.js.map +1 -0
- 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 +144 -0
- package/dist/cjs/node/builder/helpers.js.map +1 -0
- package/dist/cjs/node/builder/index.js +26 -0
- package/dist/cjs/node/builder/index.js.map +1 -0
- package/dist/cjs/node/index.js +125 -0
- package/dist/cjs/node/index.js.map +1 -0
- package/dist/cjs/node/pool.js +144 -0
- package/dist/cjs/node/pool.js.map +1 -0
- 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/web/builder/index.js +47 -0
- package/dist/cjs/web/builder/index.js.map +1 -0
- package/dist/cjs/{types/omni-worker.js → web/builder/model.js} +1 -1
- 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/{builder/helpers.js → helpers/builder.js} +2 -2
- package/dist/mjs/{builder/helpers.js.map → helpers/builder.js.map} +1 -1
- package/dist/mjs/helpers/pool.js +6 -0
- package/dist/mjs/helpers/pool.js.map +1 -0
- 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 +138 -0
- package/dist/mjs/node/builder/helpers.js.map +1 -0
- package/dist/mjs/node/builder/index.js +18 -0
- package/dist/mjs/node/builder/index.js.map +1 -0
- package/dist/mjs/node/index.js +119 -0
- package/dist/mjs/node/index.js.map +1 -0
- package/dist/mjs/node/pool.js +141 -0
- package/dist/mjs/node/pool.js.map +1 -0
- 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/{builder/helpers.d.ts → helpers/builder.d.ts} +1 -1
- 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/constants.d.ts +5 -0
- package/dist/types/node/builder/constants.d.ts.map +1 -0
- package/dist/types/node/builder/helpers.d.ts +2 -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/index.d.ts +32 -0
- package/dist/types/node/index.d.ts.map +1 -0
- package/dist/types/node/pool.d.ts +31 -0
- package/dist/types/node/pool.d.ts.map +1 -0
- 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 +37 -16
- package/dist/cjs/builder/node.js +0 -80
- 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/index.js +0 -84
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/types/omni-worker.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/index.js +0 -44
- package/dist/mjs/index.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.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/index.d.ts +0 -26
- package/dist/types/index.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,103 @@
|
|
1
|
+
import { RemoteObject } from 'comlink/dist/esm/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(pool) 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(pool).
|
14
|
+
* Please not that since using the worker, all your functions will now return
|
15
|
+
* asynchronously (Promise<T>).
|
16
|
+
*
|
17
|
+
* @returns An object with the worker functions that were exposed from the worker
|
18
|
+
*/
|
19
|
+
use: () => RemoteObject<T>;
|
20
|
+
/**
|
21
|
+
* Terminates the underlying worker(s)
|
22
|
+
*/
|
23
|
+
destroy: () => Promise<void>;
|
24
|
+
}
|
25
|
+
/**
|
26
|
+
* Defines whether the class is buildable, meaning that class can be made into
|
27
|
+
* a OmniWorker type.
|
28
|
+
*/
|
29
|
+
export interface IBuildable {
|
30
|
+
build: <T>(url: URL, options: IWebOmniWorkerBuilderOptions) => Promise<IOmniWorker<T>>;
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Defines whether the class can expose code from the module user to the main thread.
|
34
|
+
*/
|
35
|
+
export interface IExposable {
|
36
|
+
expose: <T>(exposable: T) => void;
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* A pool with multiple OmniWorkers
|
40
|
+
*/
|
41
|
+
export interface IOmniWorkerPool<T> extends IOmniWorker<T> {
|
42
|
+
/**
|
43
|
+
* Retrieves the number of workers that were initialized for the pool
|
44
|
+
*/
|
45
|
+
getNumOfWorkers: () => number;
|
46
|
+
}
|
47
|
+
/**
|
48
|
+
* Determines whether an OmniWorker pool is able to build and launch
|
49
|
+
* OmniWorkers
|
50
|
+
*/
|
51
|
+
export interface ILaunchable {
|
52
|
+
/**
|
53
|
+
* First builds the OmniWorkers and then launches a new OmniWorker pool
|
54
|
+
* @param from The (relative) file path from your project's root to the worker .ts file
|
55
|
+
* @param options (Optional) Options object for launching the pool
|
56
|
+
*/
|
57
|
+
buildAndLaunch<T>(url: URL, options?: IWebOmniWorkerBuilderOptions & IOmniWorkerPoolOptions): Promise<IOmniWorkerPool<T>>;
|
58
|
+
/**
|
59
|
+
* Launches a new OmniWorker pool according to the options provided
|
60
|
+
* @param worker An already built OmniWorker
|
61
|
+
* @returns A newly created pool
|
62
|
+
*/
|
63
|
+
launch<T extends object>(worker: IOmniWorker<T>, options?: IOmniWorkerPoolOptions): IOmniWorkerPool<T>;
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* Whether an IOmniWorker is able to be pooled
|
67
|
+
*/
|
68
|
+
export interface IPoolable<T> {
|
69
|
+
/**
|
70
|
+
* Clone an OmniWorker as many times as specified
|
71
|
+
* @param numOfTimes how many times the item should be cloned
|
72
|
+
* @returns a collection of OmniWorkers
|
73
|
+
*/
|
74
|
+
clone: (numOfTimes: number) => IOmniWorker<T>[];
|
75
|
+
}
|
76
|
+
/**
|
77
|
+
* Options for instantiation of a OmniWorkerPool
|
78
|
+
*/
|
79
|
+
export interface IPoolOptions {
|
80
|
+
/**
|
81
|
+
* The desired number of workers to be launched
|
82
|
+
*/
|
83
|
+
numOfWorkers?: number;
|
84
|
+
}
|
85
|
+
/**
|
86
|
+
* The options for instantiating an OmniWorker pool
|
87
|
+
*/
|
88
|
+
export interface IOmniWorkerPoolOptions extends IPoolOptions {
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* JS Extension types
|
92
|
+
*/
|
93
|
+
export type JsExtension = '.cjs' | '.mjs' | '.js';
|
94
|
+
/**
|
95
|
+
* The options provided to the `provideWorker(url, options)` function
|
96
|
+
*/
|
97
|
+
export interface IWebOmniWorkerBuilderOptions {
|
98
|
+
/**
|
99
|
+
* The bundler's target extension (defaults to .js)
|
100
|
+
*/
|
101
|
+
extension?: JsExtension;
|
102
|
+
}
|
103
|
+
//# sourceMappingURL=web-omni-worker.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"web-omni-worker.d.ts","sourceRoot":"","sources":["../../../src/types/web-omni-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;EAEE;AACF,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;;;;OAIG;IACH,aAAa,EAAE,MAAM,OAAO,CAAA;IAE5B;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAA;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,4BAA4B,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACxD;;OAEG;IACH,eAAe,EAAE,MAAM,MAAM,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,cAAc,CAAC,CAAC,EACd,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,4BAA4B,GAAG,sBAAsB,GAC9D,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9B;;;;OAIG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,EACrB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,eAAe,CAAC,CAAC,CAAC,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B;;;;OAIG;IACH,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,YAAY;CAAI;AAGhE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAA;CACxB"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/web/builder/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,GAAG,GAAG,CAItE"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import * as Comlink from 'comlink/dist/esm/comlink';
|
2
|
+
import { IWebOmniWorkerBuilderOptions } from '../../types/web-omni-worker';
|
3
|
+
export declare const buildWebApiAndWorker: <T>(tsUrl: URL, options: IWebOmniWorkerBuilderOptions) => {
|
4
|
+
jsUrl: URL;
|
5
|
+
worker: Worker;
|
6
|
+
api: Comlink.RemoteObject<T>;
|
7
|
+
};
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/web/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAE3E,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAC7B,GAAG,WACD,4BAA4B,KACpC;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;CAS5D,CAAA"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
export type JsExtension = '.cjs' | '.mjs' | '.js';
|
2
|
+
/**
|
3
|
+
* The options provided to the `provideWorker(url, options)` function
|
4
|
+
*/
|
5
|
+
export interface WebOmniWorkerBuilderOptions {
|
6
|
+
/**
|
7
|
+
* The bundler's target extension (defaults to .js)
|
8
|
+
*/
|
9
|
+
extension?: JsExtension;
|
10
|
+
}
|
11
|
+
//# sourceMappingURL=model.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/web/builder/model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAA;CACxB"}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { IOmniWorker, IPoolable } from "../types/web-omni-worker";
|
2
|
+
import * as Comlink from 'comlink/dist/esm/comlink';
|
3
|
+
import { IWebOmniWorkerBuilderOptions } from "../web";
|
4
|
+
/**
|
5
|
+
* OmniWorker for the web
|
6
|
+
*/
|
7
|
+
export declare class WebOmniWorker<T> implements IOmniWorker<T>, IPoolable<T> {
|
8
|
+
private _url;
|
9
|
+
private _options;
|
10
|
+
private _worker;
|
11
|
+
private _api;
|
12
|
+
constructor(url: URL, options: IWebOmniWorkerBuilderOptions, worker: Worker, api: Comlink.RemoteObject<T>);
|
13
|
+
/**
|
14
|
+
* Expose the functions inside the worker to the rest of the application.
|
15
|
+
* After having exposed the functions, the build step can be initiated.
|
16
|
+
* @param exposable A class, object with functions or a single function to be
|
17
|
+
* exposed to the main thread.
|
18
|
+
*/
|
19
|
+
static expose: <T_1>(exposable: T_1) => void;
|
20
|
+
/**
|
21
|
+
* Handles the building of the necessary resources for an OmniWorker to function.
|
22
|
+
* This usually means, building from the consumer's code, creating the comlink
|
23
|
+
* interface between the worker and the main thread as well as the worker itself.
|
24
|
+
*
|
25
|
+
* @param tsUrl A URL object linking to the worker .ts file
|
26
|
+
* @param options Builder options
|
27
|
+
* @returns A WebOmniWorker
|
28
|
+
*/
|
29
|
+
static build<T>(tsUrl: URL, options?: IWebOmniWorkerBuilderOptions): Promise<WebOmniWorker<T>>;
|
30
|
+
isInitialized: () => boolean;
|
31
|
+
use: () => Comlink.RemoteObject<T>;
|
32
|
+
destroy: () => Promise<void>;
|
33
|
+
clone: (numOfTimes: number) => WebOmniWorker<T>[];
|
34
|
+
}
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAC;AAEtD;;GAEG;AACH,qBAEa,aAAa,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAA0B;gBAGpC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAS9B;;;;;OAKG;IACH,OAAc,MAAM,mBAAkB,GAAC,KAAG,IAAI,CAE7C;IAED;;;;;;;;OAQG;WACiB,KAAK,CAAC,CAAC,EACzB,KAAK,EAAE,GAAG,EACV,OAAO,GAAE,4BAER,GACA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAK5B,aAAa,gBAAiC;IAE9C,GAAG,gCAOF;IAED,OAAO,sBAEL;IAEF,KAAK,eAAgB,MAAM,wBASzB;CACH"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { WebOmniWorker } from ".";
|
2
|
+
import { IOmniWorkerPool, IOmniWorkerPoolOptions, IWebOmniWorkerBuilderOptions } from "../types/web-omni-worker";
|
3
|
+
export declare class WebOmniWorkerPool<T> implements IOmniWorkerPool<T> {
|
4
|
+
private _pool;
|
5
|
+
private _from;
|
6
|
+
private _options;
|
7
|
+
private _count;
|
8
|
+
private _lastUseIdx;
|
9
|
+
private constructor();
|
10
|
+
/**
|
11
|
+
* First builds the OmniWorkers and then launches a new WebOmniWorker pool
|
12
|
+
* @param url A URL with the relative file path to the worker .ts file
|
13
|
+
* @param options (Optional) Options object for launching the pool
|
14
|
+
*/
|
15
|
+
static buildAndLaunch<T>(url: URL, options?: IWebOmniWorkerBuilderOptions & IOmniWorkerPoolOptions): Promise<WebOmniWorkerPool<T>>;
|
16
|
+
/**
|
17
|
+
* Launches a new WebOmniWorker pool according to the options provided
|
18
|
+
* @param worker An already built WebOmniWorker
|
19
|
+
* @returns A newly created pool
|
20
|
+
*/
|
21
|
+
static launch<T>(worker: WebOmniWorker<T>, options?: IWebOmniWorkerBuilderOptions & IOmniWorkerPoolOptions): WebOmniWorkerPool<T>;
|
22
|
+
/**
|
23
|
+
* Applies the options provided
|
24
|
+
*/
|
25
|
+
private applyOptions;
|
26
|
+
isInitialized: () => boolean;
|
27
|
+
getNumOfWorkers: () => number;
|
28
|
+
use: () => import("comlink/dist/esm/comlink").RemoteObject<T>;
|
29
|
+
destroy: () => Promise<void>;
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=pool.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/web/pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AAElC,OAAO,EAAe,eAAe,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAE9H,qBACa,iBAAiB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAE7D,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAwD;IACxE,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO;IASP;;;;OAIG;WACiB,cAAc,CAAC,CAAC,EAClC,GAAG,EAAE,GAAG,EACR,OAAO,GAAE,4BAA4B,GAAG,sBAGvC,GACA,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAMhC;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EACb,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE,4BAA4B,GAAG,sBAAsB,GAC9D,iBAAiB,CAAC,CAAC,CAAC;IAKvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBb,aAAa,gBAAyB;IAEtC,eAAe,eAAqB;IAEpC,GAAG,2DAoBT;IAEM,OAAO,sBASb;CACF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/web/provider/helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,SAAQ,GAAG,GAAG,CAIjE"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { WorkerProviderOptions } from "./model";
|
2
|
+
/**
|
3
|
+
* This provider is needed, since most bundlers will "tree shake"
|
4
|
+
* out worker files that are not imported. The reason for that,
|
5
|
+
* is that worker files aren't supposed to be imported.
|
6
|
+
* This wrapper function quickly imports the worker, before building
|
7
|
+
* it.
|
8
|
+
*
|
9
|
+
* @param tsUrl A URL object linking a worker .ts file, created using
|
10
|
+
* new URL('/path/to/your/file.ts', import.meta.url)
|
11
|
+
* @param options Optional options for the provisioning
|
12
|
+
* @returns A callback function, returning the the .js URL for building
|
13
|
+
* the worker
|
14
|
+
*/
|
15
|
+
export declare const provideWorker: (tsUrl: URL, options?: WorkerProviderOptions) => () => URL;
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/web/provider/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,UACjB,GAAG,YACD,qBAAqB,WAOnB,GAWZ,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/web/provider/model.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;CACpC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EAClB,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
@@ -1,21 +1,33 @@
|
|
1
1
|
{
|
2
2
|
"name": "@anonaddy/omni-worker",
|
3
|
-
"version": "0.0
|
3
|
+
"version": "0.2.0",
|
4
4
|
"description": "Run your code including all imports inside workers on either the web or on NodeJS!",
|
5
|
-
"main": "dist/cjs/
|
6
|
-
"
|
5
|
+
"main": "dist/cjs/node.js",
|
6
|
+
"types": "dist/types/node.d.ts",
|
7
7
|
"exports": {
|
8
8
|
".": {
|
9
|
-
"
|
10
|
-
|
9
|
+
"node": {
|
10
|
+
"types": "./dist/types/node.d.ts",
|
11
|
+
"require": "./dist/cjs/node.js",
|
12
|
+
"import": "./dist/mjs/node.js"
|
13
|
+
},
|
14
|
+
"browser": {
|
15
|
+
"types": "./dist/types/web.d.ts",
|
16
|
+
"import": "./dist/mjs/web.js"
|
17
|
+
},
|
18
|
+
"default": {
|
19
|
+
"types": "./dist/types/web.d.ts",
|
20
|
+
"import": "./dist/mjs/web.js"
|
21
|
+
}
|
11
22
|
},
|
12
23
|
"./package.json": "./package.json"
|
13
24
|
},
|
14
|
-
"types": "dist/types/index.d.ts",
|
15
25
|
"scripts": {
|
16
26
|
"build": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.mjs.json",
|
17
|
-
"
|
18
|
-
"
|
27
|
+
"prepack": "npm run build",
|
28
|
+
"pack": "npm pack --silent",
|
29
|
+
"test:dom": "vitest --config vite.config.dom.ts",
|
30
|
+
"test:node": "vitest --config vite.config.node.ts",
|
19
31
|
"prepare": "npm run build"
|
20
32
|
},
|
21
33
|
"files": [
|
@@ -36,16 +48,25 @@
|
|
36
48
|
"author": "anonaddy",
|
37
49
|
"license": "MIT",
|
38
50
|
"devDependencies": {
|
39
|
-
"@types/jest": "^29.5.14",
|
40
51
|
"@types/lodash": "^4.17.15",
|
41
|
-
"
|
42
|
-
"
|
52
|
+
"@types/memory-fs": "^0.3.7",
|
53
|
+
"@types/webpack-node-externals": "^3.0.4",
|
54
|
+
"jsdom": "^26.0.0",
|
43
55
|
"lodash": "^4.17.21",
|
44
|
-
"
|
45
|
-
"
|
56
|
+
"swisseph": "^0.5.17",
|
57
|
+
"ts-node": "^10.9.2",
|
58
|
+
"typescript": "^5.0.0",
|
59
|
+
"vitest": "^3.0.5"
|
46
60
|
},
|
47
|
-
"
|
48
|
-
"
|
49
|
-
"
|
61
|
+
"peerDependencies": {
|
62
|
+
"@babel/plugin-transform-modules-commonjs": "^7.26.3",
|
63
|
+
"@babel/plugin-proposal-decorators": "^7.25.9",
|
64
|
+
"@babel/preset-env": "^7.26.8",
|
65
|
+
"@babel/preset-typescript": "^7.26.0",
|
66
|
+
"babel-loader": "^9.2.1",
|
67
|
+
"terser-webpack-plugin": "^5.3.11",
|
68
|
+
"webpack": "^5.97.1",
|
69
|
+
"webpack-node-externals": "^3.0.0",
|
70
|
+
"comlink": "^4.4.2"
|
50
71
|
}
|
51
72
|
}
|
package/dist/cjs/builder/node.js
DELETED
@@ -1,80 +0,0 @@
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
37
|
-
};
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
-
exports.buildApiNode = void 0;
|
40
|
-
const Comlink = __importStar(require("comlink"));
|
41
|
-
const esbuild = __importStar(require("esbuild"));
|
42
|
-
const external_imports_1 = __importDefault(require("./plugins/external-imports"));
|
43
|
-
const worker_threads_1 = require("worker_threads");
|
44
|
-
const node_adapter_js_1 = __importDefault(require("comlink/dist/umd/node-adapter.js"));
|
45
|
-
const _path = __importStar(require("path"));
|
46
|
-
const native_module_1 = require("../builder/plugins/native-module");
|
47
|
-
const helpers_1 = require("./helpers");
|
48
|
-
const buildApiNode = async (path) => {
|
49
|
-
const callerDir = (0, helpers_1.getCallerDir)();
|
50
|
-
const resolvedPath = _path.resolve(callerDir, path);
|
51
|
-
const result = await esbuild.build({
|
52
|
-
entryPoints: [resolvedPath],
|
53
|
-
loader: {
|
54
|
-
".ts": "ts",
|
55
|
-
".js": "js",
|
56
|
-
".node": "binary"
|
57
|
-
},
|
58
|
-
format: "cjs",
|
59
|
-
bundle: true,
|
60
|
-
minify: true,
|
61
|
-
write: false,
|
62
|
-
plugins: [
|
63
|
-
native_module_1.nativeModulePlugin,
|
64
|
-
external_imports_1.default,
|
65
|
-
]
|
66
|
-
});
|
67
|
-
const outputFiles = result.outputFiles;
|
68
|
-
if (!outputFiles ||
|
69
|
-
result.outputFiles.length < 1 ||
|
70
|
-
result.outputFiles[0].text === undefined ||
|
71
|
-
result.outputFiles[0].text === "") {
|
72
|
-
throw Error("no build output for worker");
|
73
|
-
}
|
74
|
-
const scriptData = result.outputFiles[0].text.trim();
|
75
|
-
const worker = new worker_threads_1.Worker(scriptData, { eval: true });
|
76
|
-
const api = Comlink.wrap((0, node_adapter_js_1.default)(worker));
|
77
|
-
return api;
|
78
|
-
};
|
79
|
-
exports.buildApiNode = buildApiNode;
|
80
|
-
//# sourceMappingURL=node.js.map
|
@@ -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"}
|
package/dist/cjs/index.js
DELETED
@@ -1,84 +0,0 @@
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
37
|
-
};
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
-
exports.NodeOmniWorker = void 0;
|
40
|
-
const worker_threads_1 = require("worker_threads");
|
41
|
-
const Comlink = __importStar(require("comlink"));
|
42
|
-
const node_adapter_js_1 = __importDefault(require("comlink/dist/umd/node-adapter.js"));
|
43
|
-
const node_1 = require("./builder/node");
|
44
|
-
class NodeOmniWorker {
|
45
|
-
constructor(api) {
|
46
|
-
this.isInitialized = () => (this._api !== undefined);
|
47
|
-
this.use = () => {
|
48
|
-
const isInitialized = this.isInitialized();
|
49
|
-
if (isInitialized) {
|
50
|
-
return this._api;
|
51
|
-
}
|
52
|
-
else {
|
53
|
-
throw Error('worker is not yet initialized. make sure to call the .set() function, first');
|
54
|
-
}
|
55
|
-
};
|
56
|
-
this._api = api;
|
57
|
-
return this;
|
58
|
-
}
|
59
|
-
/**
|
60
|
-
* Build the OmniWorker from a worker file. Please note that the functions
|
61
|
-
* on the worker file need to first be exposed using the expose({ <functions> })
|
62
|
-
* functions, in order to start this build step.
|
63
|
-
*
|
64
|
-
* @param path The relative path to where the worker module is located
|
65
|
-
* @returns A new Node OmniWorker
|
66
|
-
*/
|
67
|
-
static async build(path) {
|
68
|
-
const api = await (0, node_1.buildApiNode)(path);
|
69
|
-
return new NodeOmniWorker(api);
|
70
|
-
}
|
71
|
-
}
|
72
|
-
exports.NodeOmniWorker = NodeOmniWorker;
|
73
|
-
/**
|
74
|
-
* Expose the functions inside the worker to the rest of the application.
|
75
|
-
* After having exposed the functions, the build step can be initiated.
|
76
|
-
* @param functions An object with functions inside the worker to be exposed to
|
77
|
-
* the rest of the application.
|
78
|
-
*/
|
79
|
-
NodeOmniWorker.expose = (functions) => {
|
80
|
-
if (worker_threads_1.parentPort) {
|
81
|
-
Comlink.expose(functions, (0, node_adapter_js_1.default)(worker_threads_1.parentPort));
|
82
|
-
}
|
83
|
-
};
|
84
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,mDAA4C;AAC5C,iDAAmC;AACnC,uFAA4D;AAC5D,yCAA8C;AAE9C,MAAa,cAAc;IAGzB,YAAoB,GAAsB;QAgCnC,kBAAa,GAAG,GAAY,EAAE,CAAC,CACpC,IAAI,CAAC,IAAI,KAAK,SAAS,CACxB,CAAC;QAEK,QAAG,GAAG,GAAG,EAAE;YAChB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,IAAK,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC,6EAA6E,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC,CAAA;QA1CC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAcD;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,KAAK,CACvB,IAAY;QAEZ,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAY,EAAI,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,cAAc,CAAI,GAAG,CAAC,CAAC;IACpC,CAAC;;AAjCH,wCA+CC;AAvCC;;;;;GAKG;AACW,qBAAM,GAAG,CAAI,SAAY,EAAE,EAAE;IACzC,IAAI,2BAAU,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAA,yBAAY,EAAC,2BAAU,CAAC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,AAJmB,CAInB"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"omni-worker.js","sourceRoot":"","sources":["../../../src/types/omni-worker.ts"],"names":[],"mappings":""}
|
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
|