@lakutata/core 1.0.28 → 1.0.32
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 +4 -0
- package/build/Application.d.ts +4 -0
- package/build/Application.js +20 -7
- package/build/Application.js.map +1 -1
- package/build/ApplicationManagement.js +5 -0
- package/build/ApplicationManagement.js.map +1 -1
- package/build/base/BaseObject.js +1 -1
- package/build/base/BaseObject.js.map +1 -1
- package/build/base/Container.js +16 -0
- package/build/base/Container.js.map +1 -1
- package/build/base/ValidatorClass.d.ts +1 -0
- package/build/base/ValidatorClass.js +70 -53
- package/build/base/ValidatorClass.js.map +1 -1
- package/build/base/abstracts/Module.js +8 -8
- package/build/base/abstracts/Module.js.map +1 -1
- package/build/base/abstracts/Workflow.js +1 -1
- package/build/base/abstracts/Workflow.js.map +1 -1
- package/build/base/process/Process.d.ts +1 -1
- package/build/base/process/Process.js +2 -2
- package/build/base/process/Process.js.map +1 -1
- package/build/base/process/ProcessManager.d.ts +1 -1
- package/build/base/process/ProcessManager.js +2 -2
- package/build/base/process/ProcessManager.js.map +1 -1
- package/build/base/thread/Thread.d.ts +1 -1
- package/build/base/thread/Thread.js +2 -2
- package/build/base/thread/Thread.js.map +1 -1
- package/build/base/thread/ThreadManager.d.ts +1 -1
- package/build/base/thread/ThreadManager.js +2 -2
- package/build/base/thread/ThreadManager.js.map +1 -1
- package/build/decorators/MethodValidation.js.map +1 -1
- package/build/interfaces/IApplicationConfig.d.ts +1 -0
- package/build/interfaces/ShellJsInterfaces.d.ts +162 -0
- package/build/interfaces/ShellJsInterfaces.js +3 -0
- package/build/interfaces/ShellJsInterfaces.js.map +1 -0
- package/build/lib/minified/ShellJs.d.ts +2 -0
- package/build/lib/minified/ShellJs.js +3699 -0
- package/build/lib/minified/ShellJs.js.map +1 -0
- package/build/lib/multipleRunner/constants/Channel.d.ts +5 -0
- package/build/lib/multipleRunner/constants/Channel.js +9 -0
- package/build/lib/multipleRunner/constants/Channel.js.map +1 -0
- package/build/lib/multipleRunner/constants/MetadataKey.d.ts +2 -0
- package/build/lib/multipleRunner/constants/MetadataKey.js +6 -0
- package/build/lib/multipleRunner/constants/MetadataKey.js.map +1 -0
- package/build/lib/multipleRunner/containers/ContainerVolume.d.ts +4 -0
- package/build/lib/multipleRunner/containers/ContainerVolume.js +85 -0
- package/build/lib/multipleRunner/containers/ContainerVolume.js.map +1 -0
- package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.d.ts +3 -0
- package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js +3 -0
- package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js.map +1 -0
- package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.d.ts +4 -0
- package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js +3 -0
- package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js.map +1 -0
- package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.d.ts +7 -0
- package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js +3 -0
- package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js.map +1 -0
- package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.d.ts +3 -0
- package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js +3 -0
- package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js.map +1 -0
- package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.d.ts +7 -0
- package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js +3 -0
- package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js.map +1 -0
- package/build/lib/multipleRunner/lib/Process.d.ts +5 -0
- package/build/lib/multipleRunner/lib/Process.js +44 -0
- package/build/lib/multipleRunner/lib/Process.js.map +1 -0
- package/build/lib/multipleRunner/lib/Thread.d.ts +5 -0
- package/build/lib/multipleRunner/lib/Thread.js +52 -0
- package/build/lib/multipleRunner/lib/Thread.js.map +1 -0
- package/build/lib/multipleRunner/lib/bridges/BaseBridge.d.ts +32 -0
- package/build/lib/multipleRunner/lib/bridges/BaseBridge.js +104 -0
- package/build/lib/multipleRunner/lib/bridges/BaseBridge.js.map +1 -0
- package/build/lib/multipleRunner/lib/bridges/ProcessBridge.d.ts +5 -0
- package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js +20 -0
- package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js.map +1 -0
- package/build/lib/multipleRunner/lib/bridges/ThreadBridge.d.ts +5 -0
- package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js +17 -0
- package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js.map +1 -0
- package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.d.ts +2 -0
- package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js +35 -0
- package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js.map +1 -0
- package/build/lib/multipleRunner/lib/cores/IsElectron.d.ts +1 -0
- package/build/lib/multipleRunner/lib/cores/IsElectron.js +9 -0
- package/build/lib/multipleRunner/lib/cores/IsElectron.js.map +1 -0
- package/build/lib/multipleRunner/lib/cores/ProcessClass.d.ts +5 -0
- package/build/lib/multipleRunner/lib/cores/ProcessClass.js +12 -0
- package/build/lib/multipleRunner/lib/cores/ProcessClass.js.map +1 -0
- package/build/lib/multipleRunner/lib/cores/ThreadClass.d.ts +5 -0
- package/build/lib/multipleRunner/lib/cores/ThreadClass.js +12 -0
- package/build/lib/multipleRunner/lib/cores/ThreadClass.js.map +1 -0
- package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.d.ts +2 -0
- package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js +104 -0
- package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js.map +1 -0
- package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.d.ts +17 -0
- package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js +53 -0
- package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js.map +1 -0
- package/build/plugins/Crypto.js +2 -2
- package/build/plugins/Crypto.js.map +1 -1
- package/build/plugins/Formatter.d.ts +1 -0
- package/build/plugins/Formatter.js +9 -6
- package/build/plugins/Formatter.js.map +1 -1
- package/build/plugins/HttpRequest.js +8 -8
- package/build/plugins/HttpRequest.js.map +1 -1
- package/build/plugins/Logger.js +15 -6
- package/build/plugins/Logger.js.map +1 -1
- package/build/plugins/MessagePack.js +2 -2
- package/build/plugins/MessagePack.js.map +1 -1
- package/build/plugins/Security.js +24 -24
- package/build/plugins/Security.js.map +1 -1
- package/build/plugins/Shell.d.ts +39 -0
- package/build/plugins/Shell.js +58 -0
- package/build/plugins/Shell.js.map +1 -0
- package/build/types/TPluginsConfig.d.ts +1 -0
- package/build/utils/Delay.js +1 -1
- package/build/utils/Delay.js.map +1 -1
- package/build/utils/Timeout.js +1 -1
- package/build/utils/Timeout.js.map +1 -1
- package/build/utils/ValidDataUrl.d.ts +1 -0
- package/build/utils/ValidDataUrl.js +8 -0
- package/build/utils/ValidDataUrl.js.map +1 -0
- package/package.json +6 -5
- package/src/Application.ts +33 -11
- package/src/ApplicationManagement.ts +4 -1
- package/src/base/Container.ts +14 -1
- package/src/base/ValidatorClass.ts +44 -7
- package/src/base/abstracts/Exception.ts +1 -1
- package/src/base/abstracts/Module.ts +2 -1
- package/src/base/process/Process.ts +1 -1
- package/src/base/process/ProcessManager.ts +2 -2
- package/src/base/thread/Thread.ts +1 -1
- package/src/base/thread/ThreadManager.ts +2 -2
- package/src/decorators/MethodValidation.ts +6 -6
- package/src/interfaces/IApplicationConfig.ts +1 -0
- package/src/interfaces/ShellJsInterfaces.ts +858 -0
- package/src/lib/minified/ShellJs.js +1 -0
- package/src/lib/multipleRunner/constants/Channel.ts +5 -0
- package/src/lib/multipleRunner/constants/MetadataKey.ts +2 -0
- package/src/lib/multipleRunner/containers/ContainerVolume.ts +83 -0
- package/src/lib/multipleRunner/definitions/interfaces/ClassConstructor.ts +3 -0
- package/src/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.ts +5 -0
- package/src/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.ts +10 -0
- package/src/lib/multipleRunner/definitions/interfaces/ProxyClass.ts +3 -0
- package/src/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.ts +10 -0
- package/src/lib/multipleRunner/lib/Process.ts +44 -0
- package/src/lib/multipleRunner/lib/Thread.ts +52 -0
- package/src/lib/multipleRunner/lib/bridges/BaseBridge.ts +115 -0
- package/src/lib/multipleRunner/lib/bridges/ProcessBridge.ts +18 -0
- package/src/lib/multipleRunner/lib/bridges/ThreadBridge.ts +15 -0
- package/src/lib/multipleRunner/lib/cores/GenerateExecArgv.ts +28 -0
- package/src/lib/multipleRunner/lib/cores/IsElectron.ts +3 -0
- package/src/lib/multipleRunner/lib/cores/ProcessClass.ts +8 -0
- package/src/lib/multipleRunner/lib/cores/ThreadClass.ts +8 -0
- package/src/lib/multipleRunner/lib/cores/UniParentBridgeHandler.ts +97 -0
- package/src/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.ts +66 -0
- package/src/plugins/Crypto.ts +3 -3
- package/src/plugins/Formatter.ts +10 -5
- package/src/plugins/Logger.ts +8 -2
- package/src/plugins/Shell.ts +371 -0
- package/src/tests/Main.spec.ts +11 -6
- package/src/tests/threads/TestThread.ts +3 -1
- package/src/types/TPluginsConfig.ts +1 -1
- package/src/utils/ValidDataUrl.ts +8 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROPERTY_CHANGE = exports.SET_PROPERTY = exports.INVOKE = exports.SETUP_ERROR = exports.READY = void 0;
|
|
4
|
+
exports.READY = '_____%$ready$%_____';
|
|
5
|
+
exports.SETUP_ERROR = '_____%$setup_error$%_____';
|
|
6
|
+
exports.INVOKE = '__%$invoke$%__';
|
|
7
|
+
exports.SET_PROPERTY = '_____%$set_property$%_____';
|
|
8
|
+
exports.PROPERTY_CHANGE = '_____%$property_change$%_____';
|
|
9
|
+
//# sourceMappingURL=Channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/constants/Channel.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAAW,qBAAqB,CAAA;AACrC,QAAA,WAAW,GAAW,2BAA2B,CAAA;AACjD,QAAA,MAAM,GAAW,gBAAgB,CAAA;AACjC,QAAA,YAAY,GAAW,4BAA4B,CAAA;AACnD,QAAA,eAAe,GAAW,+BAA+B,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MULTIPLE_RUNNER__CLASS_PATH = exports.MULTIPLE_RUNNER_CLASS_NAME = void 0;
|
|
4
|
+
exports.MULTIPLE_RUNNER_CLASS_NAME = 'multipleRunner::class_name';
|
|
5
|
+
exports.MULTIPLE_RUNNER__CLASS_PATH = 'multipleRunner::class_path';
|
|
6
|
+
//# sourceMappingURL=MetadataKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataKey.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/constants/MetadataKey.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAW,4BAA4B,CAAA;AACjE,QAAA,2BAA2B,GAAW,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContainerVolume = exports.THREAD_RUNTIME_CONTAINER_FILE = exports.PROCESS_RUNTIME_CONTAINER_FILE = exports.BASE_RUNTIME_CONTAINER_FILE = void 0;
|
|
4
|
+
const memfs_1 = require("memfs");
|
|
5
|
+
exports.BASE_RUNTIME_CONTAINER_FILE = '/multipleRunner/container/base/BaseRuntimeContainer.js';
|
|
6
|
+
exports.PROCESS_RUNTIME_CONTAINER_FILE = '/multipleRunner/container/ProcessRuntimeContainer.js';
|
|
7
|
+
exports.THREAD_RUNTIME_CONTAINER_FILE = '/multipleRunner/container/ThreadRuntimeContainer.js';
|
|
8
|
+
exports.ContainerVolume = memfs_1.Volume.fromJSON({
|
|
9
|
+
[exports.BASE_RUNTIME_CONTAINER_FILE]: `
|
|
10
|
+
module.exports.BaseRuntimeContainer = function (bridge) {
|
|
11
|
+
bridge.on('create', (name, path) => {
|
|
12
|
+
const module = require(path)[name]
|
|
13
|
+
const moduleInstance = new module(bridge)
|
|
14
|
+
moduleInstance.setup().then(() => {
|
|
15
|
+
const properties = {}
|
|
16
|
+
const moduleInstancePropertiesObject = {}
|
|
17
|
+
for (const propertyName of Object.keys(moduleInstance)) {
|
|
18
|
+
properties[propertyName] = typeof moduleInstance[propertyName]
|
|
19
|
+
if (propertyName !== '__bridge__')
|
|
20
|
+
moduleInstancePropertiesObject[propertyName] = moduleInstance[propertyName]
|
|
21
|
+
}
|
|
22
|
+
const moduleInstanceProxy = new Proxy(moduleInstance, {
|
|
23
|
+
set(target, p, value) {
|
|
24
|
+
moduleInstance[p] = value
|
|
25
|
+
bridge.propertyChange(p.toString(), value)
|
|
26
|
+
return true
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
bridge.onSet((property, value) => {
|
|
30
|
+
moduleInstanceProxy[property] = value
|
|
31
|
+
})
|
|
32
|
+
bridge.ready(properties, JSON.parse(JSON.stringify(moduleInstancePropertiesObject)))
|
|
33
|
+
bridge.onInvoke(async (method, args) => {
|
|
34
|
+
const _args = []
|
|
35
|
+
const callbackSignature = /^__________%\\$CALLBACK\\[\\d+]\\$%__________$/
|
|
36
|
+
for (const arg of args) {
|
|
37
|
+
if (typeof arg === 'string' && callbackSignature.test(arg)) {
|
|
38
|
+
_args.push((...args) => {
|
|
39
|
+
bridge.onCallback(arg, args)
|
|
40
|
+
})
|
|
41
|
+
} else {
|
|
42
|
+
_args.push(arg)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return await moduleInstanceProxy[method].apply(moduleInstanceProxy, _args)
|
|
46
|
+
})
|
|
47
|
+
}).catch(setupError => {
|
|
48
|
+
bridge.setupError(setupError)
|
|
49
|
+
process.exit(1)
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
`,
|
|
54
|
+
[exports.PROCESS_RUNTIME_CONTAINER_FILE]: `
|
|
55
|
+
const reversedArgvs = process.argv.reverse()
|
|
56
|
+
require(reversedArgvs[0])
|
|
57
|
+
const {ProcessBridge} = require(reversedArgvs[0])
|
|
58
|
+
const {BaseRuntimeContainer} = require(reversedArgvs[1])
|
|
59
|
+
BaseRuntimeContainer(new ProcessBridge(process))
|
|
60
|
+
`,
|
|
61
|
+
[exports.THREAD_RUNTIME_CONTAINER_FILE]: `
|
|
62
|
+
const reversedArgvs = process.argv.reverse()
|
|
63
|
+
if(reversedArgvs[3]!=='undefined'){
|
|
64
|
+
try{require(reversedArgvs[3])}catch(e){}
|
|
65
|
+
}
|
|
66
|
+
const {parentPort} = require('worker_threads')
|
|
67
|
+
let _ThreadBridge
|
|
68
|
+
try{
|
|
69
|
+
const {ThreadBridge} = require(reversedArgvs[0])
|
|
70
|
+
_ThreadBridge = ThreadBridge
|
|
71
|
+
}catch(e){
|
|
72
|
+
const tsNodeRegExp=new RegExp("ts-node")
|
|
73
|
+
for(const reversedArgv of reversedArgvs){
|
|
74
|
+
if(tsNodeRegExp.test(reversedArgv)){
|
|
75
|
+
require(reversedArgv)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const {ThreadBridge} = require(reversedArgvs[0])
|
|
79
|
+
_ThreadBridge = ThreadBridge
|
|
80
|
+
}
|
|
81
|
+
const {BaseRuntimeContainer} = require(reversedArgvs[1])
|
|
82
|
+
BaseRuntimeContainer(new _ThreadBridge(parentPort))
|
|
83
|
+
`
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=ContainerVolume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerVolume.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/containers/ContainerVolume.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAEf,QAAA,2BAA2B,GAAW,wDAAwD,CAAA;AAC9F,QAAA,8BAA8B,GAAW,sDAAsD,CAAA;AAC/F,QAAA,6BAA6B,GAAW,qDAAqD,CAAA;AAE7F,QAAA,eAAe,GAAG,cAAM,CAAC,QAAQ,CAAC;IAC9C,CAAC,mCAA2B,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4C3B;IACJ,CAAC,sCAA8B,CAAC,EAAE;;;;;;KAM9B;IACJ,CAAC,qCAA6B,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;KAsB7B;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ClassConstructor.ts"],"names":[],"mappings":""}
|
package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultipleRunnerBaseClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ProcessClass } from '../../lib/cores/ProcessClass';
|
|
2
|
+
import { ClassConstructor } from './ClassConstructor';
|
|
3
|
+
export interface ProcessClassConstructor<T extends ProcessClass> extends ClassConstructor<T> {
|
|
4
|
+
new (...args: any[]): T;
|
|
5
|
+
CLASS_PATH: string;
|
|
6
|
+
CLASS_NAME: string;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProxyClass.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ProxyClass.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ThreadClass } from '../../lib/cores/ThreadClass';
|
|
2
|
+
import { ClassConstructor } from './ClassConstructor';
|
|
3
|
+
export interface ThreadClassConstructor<T extends ThreadClass> extends ClassConstructor<T> {
|
|
4
|
+
new (...args: any[]): T;
|
|
5
|
+
CLASS_PATH: string;
|
|
6
|
+
CLASS_NAME: string;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { ProcessClassConstructor } from '../definitions/interfaces/ProcessClassConstructor';
|
|
3
|
+
import { ProcessClass } from './cores/ProcessClass';
|
|
4
|
+
import { ProxyClass } from '../definitions/interfaces/ProxyClass';
|
|
5
|
+
export declare function Process<T extends ProcessClass>(processClassConstructor: ProcessClassConstructor<T>): Promise<T & ProxyClass>;
|
|
@@ -0,0 +1,44 @@
|
|
|
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.Process = void 0;
|
|
7
|
+
require("reflect-metadata");
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const GenerateExecArgv_1 = require("./cores/GenerateExecArgv");
|
|
11
|
+
const ProcessBridge_1 = require("./bridges/ProcessBridge");
|
|
12
|
+
const UniParentBridgeHandler_1 = require("./cores/UniParentBridgeHandler");
|
|
13
|
+
const ContainerVolume_1 = require("../containers/ContainerVolume");
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const os_1 = __importDefault(require("os"));
|
|
16
|
+
async function Process(processClassConstructor) {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
ProcessProxy(processClassConstructor, (setupError, instance) => {
|
|
19
|
+
if (setupError) {
|
|
20
|
+
reject(setupError);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
resolve(instance);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
exports.Process = Process;
|
|
29
|
+
function ProcessProxy(processClassConstructor, callback) {
|
|
30
|
+
const className = processClassConstructor.CLASS_NAME;
|
|
31
|
+
const classPath = processClassConstructor.CLASS_PATH;
|
|
32
|
+
const tmpProcessRuntimeContainerFilename = path_1.default.resolve(os_1.default.tmpdir(), `./PRC_TMP_${Date.now()}.tmp`);
|
|
33
|
+
const tmpBaseRuntimeContainerFilename = path_1.default.resolve(os_1.default.tmpdir(), `./PBRC_TMP_${Date.now()}.tmp`);
|
|
34
|
+
fs_1.default.writeFileSync(tmpBaseRuntimeContainerFilename, ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.BASE_RUNTIME_CONTAINER_FILE).toString());
|
|
35
|
+
fs_1.default.writeFileSync(tmpProcessRuntimeContainerFilename, ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.PROCESS_RUNTIME_CONTAINER_FILE).toString());
|
|
36
|
+
const childProcess = (0, child_process_1.fork)(tmpProcessRuntimeContainerFilename, [
|
|
37
|
+
tmpBaseRuntimeContainerFilename,
|
|
38
|
+
require.resolve(path_1.default.resolve(__dirname, './bridges/ProcessBridge'))
|
|
39
|
+
], {
|
|
40
|
+
execArgv: (0, GenerateExecArgv_1.GenerateExecArgv)(classPath)
|
|
41
|
+
});
|
|
42
|
+
(0, UniParentBridgeHandler_1.UniParentBridgeHandler)(new ProcessBridge_1.ProcessBridge(childProcess), className, classPath, processClassConstructor, callback);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=Process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/lib/Process.ts"],"names":[],"mappings":";;;;;;AAAA,4BAAyB;AAEzB,iDAAgD;AAChD,gDAAuB;AACvB,+DAAyD;AACzD,2DAAqD;AAErD,2EAAqE;AAErE,mEAIsC;AACtC,4CAAmB;AACnB,4CAAmB;AAEZ,KAAK,UAAU,OAAO,CAAyB,uBAAmD;IACrG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,YAAY,CAAC,uBAAuB,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;YAC3D,IAAI,UAAU,EAAE;gBACZ,MAAM,CAAC,UAAU,CAAC,CAAA;aACrB;iBAAM;gBACH,OAAO,CAAiB,QAAQ,CAAC,CAAA;aACpC;QACL,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAVD,0BAUC;AAED,SAAS,YAAY,CAAyB,uBAAmD,EAAE,QAAkD;IACjJ,MAAM,SAAS,GAAW,uBAAuB,CAAC,UAAU,CAAA;IAC5D,MAAM,SAAS,GAAW,uBAAuB,CAAC,UAAU,CAAA;IAC5D,MAAM,kCAAkC,GAAW,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC3G,MAAM,+BAA+B,GAAW,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACzG,YAAE,CAAC,aAAa,CAAC,+BAA+B,EAAE,iCAAe,CAAC,YAAY,CAAC,6CAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvH,YAAE,CAAC,aAAa,CAAC,kCAAkC,EAAE,iCAAe,CAAC,YAAY,CAAC,gDAA8B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7H,MAAM,YAAY,GAAiB,IAAA,oBAAI,EAAC,kCAAkC,EAAE;QACxE,+BAA+B;QAC/B,OAAO,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;KACtE,EAAE;QACC,QAAQ,EAAE,IAAA,mCAAgB,EAAC,SAAS,CAAC;KACxC,CAAC,CAAA;IACF,IAAA,+CAAsB,EAAC,IAAI,6BAAa,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CAAA;AACpH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { ThreadClassConstructor } from '../definitions/interfaces/ThreadClassConstructor';
|
|
3
|
+
import { ThreadClass } from './cores/ThreadClass';
|
|
4
|
+
import { ProxyClass } from '../definitions/interfaces/ProxyClass';
|
|
5
|
+
export declare function Thread<T extends ThreadClass>(threadClassConstructor: ThreadClassConstructor<T>): Promise<T & ProxyClass>;
|
|
@@ -0,0 +1,52 @@
|
|
|
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.Thread = void 0;
|
|
7
|
+
require("reflect-metadata");
|
|
8
|
+
const worker_threads_1 = require("worker_threads");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const ThreadBridge_1 = require("./bridges/ThreadBridge");
|
|
11
|
+
const GenerateExecArgv_1 = require("./cores/GenerateExecArgv");
|
|
12
|
+
const UniParentBridgeHandler_1 = require("./cores/UniParentBridgeHandler");
|
|
13
|
+
const os_1 = __importDefault(require("os"));
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const ContainerVolume_1 = require("../containers/ContainerVolume");
|
|
16
|
+
const Process_1 = require("./Process");
|
|
17
|
+
const IsElectron_1 = require("./cores/IsElectron");
|
|
18
|
+
async function Thread(threadClassConstructor) {
|
|
19
|
+
if ((0, IsElectron_1.isElectron)()) {
|
|
20
|
+
return await (0, Process_1.Process)(threadClassConstructor);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
ThreadProxy(threadClassConstructor, (setupError, instance) => {
|
|
25
|
+
if (setupError) {
|
|
26
|
+
reject(setupError);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
resolve(instance);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.Thread = Thread;
|
|
36
|
+
function ThreadProxy(threadClassConstructor, callback) {
|
|
37
|
+
const className = threadClassConstructor.CLASS_NAME;
|
|
38
|
+
const classPath = threadClassConstructor.CLASS_PATH;
|
|
39
|
+
const tmpBaseRuntimeContainerFilename = path_1.default.resolve(os_1.default.tmpdir(), `./TBRC_TMP_${Date.now()}.tmp`);
|
|
40
|
+
fs_1.default.writeFileSync(tmpBaseRuntimeContainerFilename, ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.BASE_RUNTIME_CONTAINER_FILE).toString());
|
|
41
|
+
const exeArgv = (0, GenerateExecArgv_1.GenerateExecArgv)(classPath).reverse();
|
|
42
|
+
const worker = new worker_threads_1.Worker(ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.THREAD_RUNTIME_CONTAINER_FILE).toString(), {
|
|
43
|
+
eval: true,
|
|
44
|
+
argv: [
|
|
45
|
+
exeArgv.length > 0 ? exeArgv[0] : 'undefined',
|
|
46
|
+
tmpBaseRuntimeContainerFilename,
|
|
47
|
+
require.resolve(path_1.default.resolve(__dirname, './bridges/ThreadBridge'))
|
|
48
|
+
]
|
|
49
|
+
});
|
|
50
|
+
(0, UniParentBridgeHandler_1.UniParentBridgeHandler)(new ThreadBridge_1.ThreadBridge(worker), className, classPath, threadClassConstructor, callback);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=Thread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Thread.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/lib/Thread.ts"],"names":[],"mappings":";;;;;;AAAA,4BAAyB;AAGzB,mDAAqC;AACrC,gDAAuB;AACvB,yDAAmD;AACnD,+DAAyD;AACzD,2EAAqE;AAErE,4CAAmB;AACnB,4CAAmB;AACnB,mEAIsC;AACtC,uCAAiC;AACjC,mDAA6C;AAEtC,KAAK,UAAU,MAAM,CAAwB,sBAAiD;IACpG,IAAI,IAAA,uBAAU,GAAE,EAAE;QACjB,OAAO,MAAM,IAAA,iBAAO,EAAC,sBAA6B,CAAQ,CAAA;KAC1D;SAAM;QACN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,WAAW,CAAC,sBAAsB,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;gBAC5D,IAAI,UAAU,EAAE;oBACf,MAAM,CAAC,UAAU,CAAC,CAAA;iBAClB;qBAAM;oBACN,OAAO,CAAiB,QAAQ,CAAC,CAAA;iBACjC;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;KACF;AACF,CAAC;AAdD,wBAcC;AAED,SAAS,WAAW,CAAwB,sBAAiD,EAAE,QAAkD;IAChJ,MAAM,SAAS,GAAW,sBAAsB,CAAC,UAAU,CAAA;IAC3D,MAAM,SAAS,GAAW,sBAAsB,CAAC,UAAU,CAAA;IAC3D,MAAM,+BAA+B,GAAW,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACzG,YAAE,CAAC,aAAa,CAAC,+BAA+B,EAAE,iCAAe,CAAC,YAAY,CAAC,6CAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvH,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;IACrD,MAAM,MAAM,GAAW,IAAI,uBAAM,CAAC,iCAAe,CAAC,YAAY,CAAC,+CAA6B,CAAC,CAAC,QAAQ,EAAE,EAAE;QACzG,IAAI,EAAE,IAAI;QACV,IAAI,EAAE;YACL,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YAC7C,+BAA+B;YAC/B,OAAO,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;SAClE;KACD,CAAC,CAAA;IAEF,IAAA,+CAAsB,EAAC,IAAI,2BAAY,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAA;AACzG,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
export declare class BaseBridge {
|
|
4
|
+
protected readonly eventEmitter: EventEmitter;
|
|
5
|
+
protected readonly bridge: any;
|
|
6
|
+
constructor(bridgeObject: any);
|
|
7
|
+
off(channel: string): this;
|
|
8
|
+
on(channel: string, listener: (...args: any[]) => void): this;
|
|
9
|
+
once(channel: string, listener: (...args: any[]) => void): this;
|
|
10
|
+
send(channel: string, ...args: any[]): void;
|
|
11
|
+
ready(properties: {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
}, propertyValues: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}): this;
|
|
16
|
+
onReady(callback: (properties: {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}, propertyValues: {
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}) => void): this;
|
|
21
|
+
error(error: Error): void;
|
|
22
|
+
setupError(error: Error): void;
|
|
23
|
+
invoke(method: string, args: Array<any>): Promise<unknown>;
|
|
24
|
+
onInvoke(handler: (method: string, args: Array<any>) => Promise<any>): void;
|
|
25
|
+
set(property: string, value: any): this;
|
|
26
|
+
onSet(handler: (property: string, value: any) => void): this;
|
|
27
|
+
propertyChange(property: string, value: any): this;
|
|
28
|
+
onPropertyChanged(handler: (property: string, value: any) => void): this;
|
|
29
|
+
callbackHandler(thisArg: any, handler: (...args: any[]) => any): string;
|
|
30
|
+
onCallback(callbackEvtName: string, args: any[]): this;
|
|
31
|
+
terminate(): Promise<void>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
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.BaseBridge = void 0;
|
|
7
|
+
const events_1 = require("events");
|
|
8
|
+
const random_1 = __importDefault(require("random"));
|
|
9
|
+
const Channel_1 = require("../../constants/Channel");
|
|
10
|
+
class BaseBridge {
|
|
11
|
+
constructor(bridgeObject) {
|
|
12
|
+
this.eventEmitter = new events_1.EventEmitter();
|
|
13
|
+
this.bridge = bridgeObject;
|
|
14
|
+
this.bridge.on('message', data => {
|
|
15
|
+
this.eventEmitter.emit.apply(this.eventEmitter, [data.channel].concat(data.args));
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
off(channel) {
|
|
19
|
+
this.eventEmitter.removeAllListeners(channel);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
on(channel, listener) {
|
|
23
|
+
this.eventEmitter.on.apply(this.eventEmitter, [channel, listener]);
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
once(channel, listener) {
|
|
27
|
+
this.eventEmitter.once.apply(this.eventEmitter, [channel, listener]);
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
send(channel, ...args) {
|
|
31
|
+
throw new Error('Method did not implemented');
|
|
32
|
+
}
|
|
33
|
+
ready(properties, propertyValues) {
|
|
34
|
+
this.send(Channel_1.READY, properties, propertyValues);
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
onReady(callback) {
|
|
38
|
+
this.once(Channel_1.READY, callback);
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
error(error) {
|
|
42
|
+
this.send('error', error.message);
|
|
43
|
+
}
|
|
44
|
+
setupError(error) {
|
|
45
|
+
this.send(Channel_1.SETUP_ERROR, error.message);
|
|
46
|
+
}
|
|
47
|
+
async invoke(method, args) {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const invokeId = `ts_${Date.now()}_rnd_${random_1.default.int(100, 999999)}`;
|
|
50
|
+
const responseChannelName = `__%$invoke_res_${invokeId}$%__`;
|
|
51
|
+
this.once(responseChannelName, (errMsg, result) => {
|
|
52
|
+
if (errMsg) {
|
|
53
|
+
reject(new Error(errMsg));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
resolve(result);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
this.send(Channel_1.INVOKE, method, args, responseChannelName);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
onInvoke(handler) {
|
|
63
|
+
this.on(Channel_1.INVOKE, (method, args, responseChannelName) => {
|
|
64
|
+
handler(method, args).then(result => {
|
|
65
|
+
this.send(responseChannelName, null, result);
|
|
66
|
+
}).catch(invokeError => {
|
|
67
|
+
this.send(responseChannelName, invokeError.message, undefined);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
set(property, value) {
|
|
72
|
+
this.send(Channel_1.SET_PROPERTY, property, value);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
onSet(handler) {
|
|
76
|
+
this.on(Channel_1.SET_PROPERTY, handler);
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
propertyChange(property, value) {
|
|
80
|
+
this.send(Channel_1.PROPERTY_CHANGE, property, value);
|
|
81
|
+
this.send('property-changed', property, value);
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
onPropertyChanged(handler) {
|
|
85
|
+
this.on(Channel_1.PROPERTY_CHANGE, handler);
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
callbackHandler(thisArg, handler) {
|
|
89
|
+
const callbackEvtName = `__________%$CALLBACK[${Date.now()}]$%__________`;
|
|
90
|
+
this.once(callbackEvtName, (...args) => {
|
|
91
|
+
handler.apply(thisArg, args);
|
|
92
|
+
});
|
|
93
|
+
return callbackEvtName;
|
|
94
|
+
}
|
|
95
|
+
onCallback(callbackEvtName, args) {
|
|
96
|
+
this.send.apply(this, [callbackEvtName].concat(args));
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
async terminate() {
|
|
100
|
+
throw new Error('Method did not implemented');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.BaseBridge = BaseBridge;
|
|
104
|
+
//# sourceMappingURL=BaseBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/BaseBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProcessBridge = void 0;
|
|
4
|
+
const BaseBridge_1 = require("./BaseBridge");
|
|
5
|
+
class ProcessBridge extends BaseBridge_1.BaseBridge {
|
|
6
|
+
send(channel, ...args) {
|
|
7
|
+
this.bridge.send({
|
|
8
|
+
channel: channel,
|
|
9
|
+
args: args
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async terminate() {
|
|
13
|
+
return new Promise(resolve => {
|
|
14
|
+
this.bridge.once('close', resolve);
|
|
15
|
+
this.bridge.kill();
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.ProcessBridge = ProcessBridge;
|
|
20
|
+
//# sourceMappingURL=ProcessBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/ProcessBridge.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC,MAAa,aAAc,SAAQ,uBAAU;IAElC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SACb,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAfD,sCAeC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ThreadBridge = void 0;
|
|
4
|
+
const BaseBridge_1 = require("./BaseBridge");
|
|
5
|
+
class ThreadBridge extends BaseBridge_1.BaseBridge {
|
|
6
|
+
send(channel, ...args) {
|
|
7
|
+
this.bridge.postMessage({
|
|
8
|
+
channel: channel,
|
|
9
|
+
args: args
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async terminate() {
|
|
13
|
+
await this.bridge.terminate();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ThreadBridge = ThreadBridge;
|
|
17
|
+
//# sourceMappingURL=ThreadBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/ThreadBridge.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC,MAAa,YAAa,SAAQ,uBAAU;IAEjC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QACvC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SACb,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,CAAC;CACJ;AAZD,oCAYC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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.GenerateExecArgv = void 0;
|
|
7
|
+
require("reflect-metadata");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
function GenerateExecArgv(modulePath) {
|
|
10
|
+
const moduleExtName = path_1.default.extname(modulePath).toUpperCase();
|
|
11
|
+
switch (moduleExtName) {
|
|
12
|
+
case '.TS': {
|
|
13
|
+
require('ts-node');
|
|
14
|
+
const registerRegEx = /ts-node\/register/;
|
|
15
|
+
const CMs = require('module')._cache;
|
|
16
|
+
for (const cmPath of Object.keys(CMs)) {
|
|
17
|
+
if (registerRegEx.test(cmPath)) {
|
|
18
|
+
return [
|
|
19
|
+
'-r',
|
|
20
|
+
cmPath
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
case '.JS': {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
default: {
|
|
30
|
+
throw new Error('Invalid module type');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.GenerateExecArgv = GenerateExecArgv;
|
|
35
|
+
//# sourceMappingURL=GenerateExecArgv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateExecArgv.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/GenerateExecArgv.ts"],"names":[],"mappings":";;;;;;AAAA,4BAAyB;AACzB,gDAAuB;AAEvB,SAAgB,gBAAgB,CAAC,UAAkB;IAC/C,MAAM,aAAa,GAAW,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;IACpE,QAAQ,aAAa,EAAE;QACnB,KAAK,KAAK,CAAC,CAAC;YACR,OAAO,CAAC,SAAS,CAAC,CAAA;YAClB,MAAM,aAAa,GAAG,mBAAmB,CAAA;YACzC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;YACpC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC5B,OAAO;wBACH,IAAI;wBACJ,MAAM;qBACT,CAAA;iBACJ;aACJ;YACD,OAAO,EAAE,CAAA;SACZ;QACD,KAAK,KAAK,CAAC,CAAC;YACR,OAAO,EAAE,CAAA;SACZ;QACD,OAAO,CAAC,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;KACJ;AACL,CAAC;AAxBD,4CAwBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isElectron(): boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isElectron = void 0;
|
|
4
|
+
function isElectron() {
|
|
5
|
+
var _a;
|
|
6
|
+
return !!((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.electron);
|
|
7
|
+
}
|
|
8
|
+
exports.isElectron = isElectron;
|
|
9
|
+
//# sourceMappingURL=IsElectron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsElectron.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/IsElectron.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU;;IACtB,OAAO,CAAC,CAAC,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,QAAQ,CAAC,CAAA;AAC1C,CAAC;AAFD,gCAEC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProcessClass = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const MultipleRunnerBaseClass_1 = require("../prototypes/MultipleRunnerBaseClass");
|
|
6
|
+
class ProcessClass extends MultipleRunnerBaseClass_1.MultipleRunnerBaseClass {
|
|
7
|
+
async setup() {
|
|
8
|
+
return super.setup();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ProcessClass = ProcessClass;
|
|
12
|
+
//# sourceMappingURL=ProcessClass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessClass.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/ProcessClass.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,mFAA6E;AAE7E,MAAa,YAAa,SAAQ,iDAAuB;IAC3C,KAAK,CAAC,KAAK;QACjB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;CACJ;AAJD,oCAIC"}
|