@lakutata/core 1.0.38 → 1.0.41

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.
@@ -11,8 +11,11 @@ class BaseBridge {
11
11
  constructor(bridgeObject) {
12
12
  this.eventEmitter = new events_1.EventEmitter();
13
13
  this.bridge = bridgeObject;
14
- this.bridge.on('message', data => {
14
+ this.bridge
15
+ .on('message', data => {
15
16
  this.eventEmitter.emit.apply(this.eventEmitter, [data.channel].concat(data.args));
17
+ })
18
+ .on('error', bridgeError => {
16
19
  });
17
20
  }
18
21
  off(channel) {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/BaseBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/BaseBridge.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,13 @@ exports.ProcessBridge = void 0;
4
4
  const BaseBridge_1 = require("./BaseBridge");
5
5
  class ProcessBridge extends BaseBridge_1.BaseBridge {
6
6
  send(channel, ...args) {
7
- this.bridge.send({
8
- channel: channel,
9
- args: args
10
- });
7
+ const childProcessBridge = this.bridge;
8
+ if (childProcessBridge.connected) {
9
+ childProcessBridge.send({
10
+ channel: channel,
11
+ args: args
12
+ });
13
+ }
11
14
  }
12
15
  async terminate() {
13
16
  return new Promise(resolve => {
@@ -1 +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"}
1
+ {"version":3,"file":"ProcessBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/ProcessBridge.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAGvC,MAAa,aAAc,SAAQ,uBAAU;IAErC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAC1C,MAAM,kBAAkB,GAAiB,IAAI,CAAC,MAAM,CAAA;QACpD,IAAI,kBAAkB,CAAC,SAAS,EAAE;YACjC,kBAAkB,CAAC,IAAI,CAAC;gBACvB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI;aACV,CAAC,CAAA;SACF;IACF,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAlBD,sCAkBC"}
@@ -4,10 +4,15 @@ exports.ThreadBridge = void 0;
4
4
  const BaseBridge_1 = require("./BaseBridge");
5
5
  class ThreadBridge extends BaseBridge_1.BaseBridge {
6
6
  send(channel, ...args) {
7
- this.bridge.postMessage({
8
- channel: channel,
9
- args: args
10
- });
7
+ try {
8
+ const workerThreadBridge = this.bridge;
9
+ workerThreadBridge.postMessage({
10
+ channel: channel,
11
+ args: args
12
+ });
13
+ }
14
+ catch (e) {
15
+ }
11
16
  }
12
17
  async terminate() {
13
18
  await this.bridge.terminate();
@@ -1 +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"}
1
+ {"version":3,"file":"ThreadBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/ThreadBridge.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAGvC,MAAa,YAAa,SAAQ,uBAAU;IAEpC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAC1C,IAAI;YACH,MAAM,kBAAkB,GAAW,IAAI,CAAC,MAAM,CAAA;YAC9C,kBAAkB,CAAC,WAAW,CAAC;gBAC9B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI;aACV,CAAC,CAAA;SACF;QAAC,OAAO,CAAC,EAAE;SACX;IACF,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IAC9B,CAAC;CACD;AAhBD,oCAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakutata/core",
3
- "version": "1.0.38",
3
+ "version": "1.0.41",
4
4
  "description": "Lakutata Framework Core",
5
5
  "main": "./build/Core.js",
6
6
  "types": "./build/Core.d.ts",
@@ -3,113 +3,116 @@ import random from 'random'
3
3
  import {INVOKE, PROPERTY_CHANGE, READY, SET_PROPERTY, SETUP_ERROR} from '../../constants/Channel'
4
4
 
5
5
  export class BaseBridge {
6
- protected readonly eventEmitter: EventEmitter = new EventEmitter()
7
- protected readonly bridge: any
8
-
9
- constructor(bridgeObject: any) {
10
- this.bridge = bridgeObject
11
- this.bridge.on('message', data => {
12
- this.eventEmitter.emit.apply(this.eventEmitter, [data.channel].concat(data.args) as any)
13
- })
14
- }
15
-
16
- public off(channel: string) {
17
- this.eventEmitter.removeAllListeners(channel)
18
- return this
19
- }
20
-
21
- public on(channel: string, listener: (...args: any[]) => void) {
22
- this.eventEmitter.on.apply(this.eventEmitter, [channel, listener])
23
- return this
24
- }
25
-
26
- public once(channel: string, listener: (...args: any[]) => void) {
27
- this.eventEmitter.once.apply(this.eventEmitter, [channel, listener])
28
- return this
29
- }
30
-
31
- public send(channel: string, ...args: any[]) {
32
- throw new Error('Method did not implemented')
33
- }
34
-
35
- public ready(properties: { [key: string]: any }, propertyValues: { [key: string]: any }) {
36
- this.send(READY, properties, propertyValues)
37
- return this
38
- }
39
-
40
- public onReady(callback: (properties: { [key: string]: any }, propertyValues: { [key: string]: any }) => void) {
41
- this.once(READY, callback)
42
- return this
43
- }
44
-
45
- public error(error: Error) {
46
- this.send('error', error.message)
47
- }
48
-
49
- public setupError(error: Error) {
50
- this.send(SETUP_ERROR, error.message)
51
- }
52
-
53
- public async invoke(method: string, args: Array<any>) {
54
- return new Promise((resolve, reject) => {
55
- const invokeId: string = `ts_${Date.now()}_rnd_${random.int(100, 999999)}`
56
- const responseChannelName: string = `__%$invoke_res_${invokeId}$%__`
57
- this.once(responseChannelName, (errMsg: string, result: any) => {
58
- if (errMsg) {
59
- reject(new Error(errMsg))
60
- } else {
61
- resolve(result)
62
- }
63
- })
64
- this.send(INVOKE, method, args, responseChannelName)
65
- })
66
- }
67
-
68
- public onInvoke(handler: (method: string, args: Array<any>) => Promise<any>): void {
69
- this.on(INVOKE, (method: string, args: Array<any>, responseChannelName: string) => {
70
- handler(method, args).then(result => {
71
- this.send(responseChannelName, null, result)
72
- }).catch(invokeError => {
73
- this.send(responseChannelName, invokeError.message, undefined)
74
- })
75
- })
76
- }
77
-
78
- public set(property: string, value: any) {
79
- this.send(SET_PROPERTY, property, value)
80
- return this
81
- }
82
-
83
- public onSet(handler: (property: string, value: any) => void) {
84
- this.on(SET_PROPERTY, handler)
85
- return this
86
- }
87
-
88
- public propertyChange(property: string, value: any) {
89
- this.send(PROPERTY_CHANGE, property, value)
90
- this.send('property-changed', property, value)
91
- return this
92
- }
93
-
94
- public onPropertyChanged(handler: (property: string, value: any) => void) {
95
- this.on(PROPERTY_CHANGE, handler)
96
- return this
97
- }
98
-
99
- public callbackHandler(thisArg: any, handler: (...args: any[]) => any): string {
100
- const callbackEvtName: string = `__________%$CALLBACK[${Date.now()}]$%__________`
101
- this.once(callbackEvtName, (...args: any[]) => {
102
- handler.apply(thisArg, args)
103
- })
104
- return callbackEvtName
105
- }
106
-
107
- public onCallback(callbackEvtName: string, args: any[]) {
108
- this.send.apply(this, [callbackEvtName].concat(args) as any)
109
- return this
110
- }
111
-
112
- public async terminate(): Promise<void> {
113
- throw new Error('Method did not implemented')
114
- }
6
+ protected readonly eventEmitter: EventEmitter = new EventEmitter()
7
+ protected readonly bridge: any
8
+
9
+ constructor(bridgeObject: any) {
10
+ this.bridge = bridgeObject
11
+ this.bridge
12
+ .on('message', data => {
13
+ this.eventEmitter.emit.apply(this.eventEmitter, [data.channel].concat(data.args) as any)
14
+ })
15
+ .on('error', bridgeError => {
16
+ })
17
+ }
18
+
19
+ public off(channel: string) {
20
+ this.eventEmitter.removeAllListeners(channel)
21
+ return this
22
+ }
23
+
24
+ public on(channel: string, listener: (...args: any[]) => void) {
25
+ this.eventEmitter.on.apply(this.eventEmitter, [channel, listener])
26
+ return this
27
+ }
28
+
29
+ public once(channel: string, listener: (...args: any[]) => void) {
30
+ this.eventEmitter.once.apply(this.eventEmitter, [channel, listener])
31
+ return this
32
+ }
33
+
34
+ public send(channel: string, ...args: any[]) {
35
+ throw new Error('Method did not implemented')
36
+ }
37
+
38
+ public ready(properties: { [key: string]: any }, propertyValues: { [key: string]: any }) {
39
+ this.send(READY, properties, propertyValues)
40
+ return this
41
+ }
42
+
43
+ public onReady(callback: (properties: { [key: string]: any }, propertyValues: { [key: string]: any }) => void) {
44
+ this.once(READY, callback)
45
+ return this
46
+ }
47
+
48
+ public error(error: Error) {
49
+ this.send('error', error.message)
50
+ }
51
+
52
+ public setupError(error: Error) {
53
+ this.send(SETUP_ERROR, error.message)
54
+ }
55
+
56
+ public async invoke(method: string, args: Array<any>) {
57
+ return new Promise((resolve, reject) => {
58
+ const invokeId: string = `ts_${Date.now()}_rnd_${random.int(100, 999999)}`
59
+ const responseChannelName: string = `__%$invoke_res_${invokeId}$%__`
60
+ this.once(responseChannelName, (errMsg: string, result: any) => {
61
+ if (errMsg) {
62
+ reject(new Error(errMsg))
63
+ } else {
64
+ resolve(result)
65
+ }
66
+ })
67
+ this.send(INVOKE, method, args, responseChannelName)
68
+ })
69
+ }
70
+
71
+ public onInvoke(handler: (method: string, args: Array<any>) => Promise<any>): void {
72
+ this.on(INVOKE, (method: string, args: Array<any>, responseChannelName: string) => {
73
+ handler(method, args).then(result => {
74
+ this.send(responseChannelName, null, result)
75
+ }).catch(invokeError => {
76
+ this.send(responseChannelName, invokeError.message, undefined)
77
+ })
78
+ })
79
+ }
80
+
81
+ public set(property: string, value: any) {
82
+ this.send(SET_PROPERTY, property, value)
83
+ return this
84
+ }
85
+
86
+ public onSet(handler: (property: string, value: any) => void) {
87
+ this.on(SET_PROPERTY, handler)
88
+ return this
89
+ }
90
+
91
+ public propertyChange(property: string, value: any) {
92
+ this.send(PROPERTY_CHANGE, property, value)
93
+ this.send('property-changed', property, value)
94
+ return this
95
+ }
96
+
97
+ public onPropertyChanged(handler: (property: string, value: any) => void) {
98
+ this.on(PROPERTY_CHANGE, handler)
99
+ return this
100
+ }
101
+
102
+ public callbackHandler(thisArg: any, handler: (...args: any[]) => any): string {
103
+ const callbackEvtName: string = `__________%$CALLBACK[${Date.now()}]$%__________`
104
+ this.once(callbackEvtName, (...args: any[]) => {
105
+ handler.apply(thisArg, args)
106
+ })
107
+ return callbackEvtName
108
+ }
109
+
110
+ public onCallback(callbackEvtName: string, args: any[]) {
111
+ this.send.apply(this, [callbackEvtName].concat(args) as any)
112
+ return this
113
+ }
114
+
115
+ public async terminate(): Promise<void> {
116
+ throw new Error('Method did not implemented')
117
+ }
115
118
  }
@@ -1,18 +1,22 @@
1
1
  import {BaseBridge} from './BaseBridge'
2
+ import {ChildProcess} from 'child_process'
2
3
 
3
4
  export class ProcessBridge extends BaseBridge {
4
5
 
5
- public send(channel: string, ...args: any[]) {
6
- this.bridge.send({
7
- channel: channel,
8
- args: args
9
- })
10
- }
6
+ public send(channel: string, ...args: any[]) {
7
+ const childProcessBridge: ChildProcess = this.bridge
8
+ if (childProcessBridge.connected) {
9
+ childProcessBridge.send({
10
+ channel: channel,
11
+ args: args
12
+ })
13
+ }
14
+ }
11
15
 
12
- public async terminate(): Promise<void> {
13
- return new Promise(resolve => {
14
- this.bridge.once('close', resolve)
15
- this.bridge.kill()
16
- })
17
- }
16
+ public async terminate(): Promise<void> {
17
+ return new Promise(resolve => {
18
+ this.bridge.once('close', resolve)
19
+ this.bridge.kill()
20
+ })
21
+ }
18
22
  }
@@ -1,15 +1,20 @@
1
1
  import {BaseBridge} from './BaseBridge'
2
+ import {Worker} from 'worker_threads'
2
3
 
3
4
  export class ThreadBridge extends BaseBridge {
4
5
 
5
- public send(channel: string, ...args: any[]) {
6
- this.bridge.postMessage({
7
- channel: channel,
8
- args: args
9
- })
10
- }
6
+ public send(channel: string, ...args: any[]): void {
7
+ try {
8
+ const workerThreadBridge: Worker = this.bridge
9
+ workerThreadBridge.postMessage({
10
+ channel: channel,
11
+ args: args
12
+ })
13
+ } catch (e) {
14
+ }
15
+ }
11
16
 
12
- public async terminate(): Promise<void> {
13
- await this.bridge.terminate()
14
- }
17
+ public async terminate(): Promise<void> {
18
+ await this.bridge.terminate()
19
+ }
15
20
  }
@@ -8,4 +8,4 @@ export class TestProcess extends Process {
8
8
  public async procTest() {
9
9
  console.log('this is procTest', process.title)
10
10
  }
11
- }
11
+ }