@venizia/ignis-helpers 0.0.1-2 → 0.0.1-4
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/LICENSE.md +102 -0
- package/README.md +43 -0
- package/dist/common/constants/app.d.ts +1 -1
- package/dist/common/constants/app.js +8 -8
- package/dist/common/constants/http.d.ts +1 -1
- package/dist/common/constants/http.js +13 -13
- package/dist/common/constants/index.d.ts +3 -3
- package/dist/common/constants/mime.d.ts +1 -1
- package/dist/common/constants/mime.js +4 -4
- package/dist/common/index.d.ts +2 -2
- package/dist/common/types.d.ts +13 -13
- package/dist/common/types.js +2 -2
- package/dist/helpers/base.d.ts +1 -1
- package/dist/helpers/base.js +3 -3
- package/dist/helpers/cron/cron.helper.d.ts +2 -2
- package/dist/helpers/cron/cron.helper.js +2 -2
- package/dist/helpers/cron/index.d.ts +1 -1
- package/dist/helpers/crypto/algorithms/aes.algorithm.d.ts +3 -3
- package/dist/helpers/crypto/algorithms/aes.algorithm.js +10 -10
- package/dist/helpers/crypto/algorithms/base.algorithm.d.ts +2 -2
- package/dist/helpers/crypto/algorithms/base.algorithm.js +1 -1
- package/dist/helpers/crypto/algorithms/index.d.ts +3 -3
- package/dist/helpers/crypto/algorithms/rsa.algorithm.d.ts +3 -3
- package/dist/helpers/crypto/algorithms/rsa.algorithm.js +10 -10
- package/dist/helpers/crypto/common/index.d.ts +2 -2
- package/dist/helpers/crypto/index.d.ts +2 -2
- package/dist/helpers/env/app-env.d.ts +1 -1
- package/dist/helpers/env/app-env.js +9 -9
- package/dist/helpers/env/index.d.ts +2 -2
- package/dist/helpers/error/app-error.d.ts +1 -1
- package/dist/helpers/error/index.d.ts +2 -2
- package/dist/helpers/error/types.d.ts +1 -1
- package/dist/helpers/error/types.js +5 -5
- package/dist/helpers/index.d.ts +14 -14
- package/dist/helpers/inversion/common/index.d.ts +2 -2
- package/dist/helpers/inversion/common/keys.js +6 -6
- package/dist/helpers/inversion/common/types.d.ts +4 -4
- package/dist/helpers/inversion/container.d.ts +2 -2
- package/dist/helpers/inversion/index.d.ts +4 -4
- package/dist/helpers/inversion/registry.d.ts +2 -2
- package/dist/helpers/logger/application-logger.d.ts +2 -2
- package/dist/helpers/logger/application-logger.js +8 -8
- package/dist/helpers/logger/default-logger.d.ts +3 -3
- package/dist/helpers/logger/default-logger.js +23 -23
- package/dist/helpers/logger/factory.d.ts +1 -1
- package/dist/helpers/logger/factory.js +1 -1
- package/dist/helpers/logger/index.d.ts +5 -5
- package/dist/helpers/logger/transports/dgram.transport.d.ts +2 -2
- package/dist/helpers/logger/transports/dgram.transport.js +5 -5
- package/dist/helpers/logger/transports/index.d.ts +1 -1
- package/dist/helpers/logger/types.d.ts +1 -1
- package/dist/helpers/logger/types.js +9 -9
- package/dist/helpers/network/http-request/base-network-request.helper.d.ts +12 -12
- package/dist/helpers/network/http-request/base-network-request.helper.js +10 -10
- package/dist/helpers/network/http-request/fetcher/axios-fetcher.d.ts +5 -5
- package/dist/helpers/network/http-request/fetcher/axios-fetcher.js +5 -5
- package/dist/helpers/network/http-request/fetcher/base-fetcher.d.ts +1 -1
- package/dist/helpers/network/http-request/fetcher/base-fetcher.js +8 -8
- package/dist/helpers/network/http-request/fetcher/index.d.ts +3 -3
- package/dist/helpers/network/http-request/fetcher/node-fetcher.d.ts +2 -2
- package/dist/helpers/network/http-request/fetcher/node-fetcher.js +6 -6
- package/dist/helpers/network/http-request/index.d.ts +2 -2
- package/dist/helpers/network/http-request/types.d.ts +4 -4
- package/dist/helpers/network/index.d.ts +3 -3
- package/dist/helpers/network/tcp-socket/base-tcp-client.helper.d.ts +4 -4
- package/dist/helpers/network/tcp-socket/base-tcp-client.helper.js +17 -17
- package/dist/helpers/network/tcp-socket/base-tcp-server.helper.d.ts +6 -6
- package/dist/helpers/network/tcp-socket/base-tcp-server.helper.js +18 -18
- package/dist/helpers/network/tcp-socket/index.d.ts +6 -6
- package/dist/helpers/network/tcp-socket/network-tcp-client.helper.d.ts +4 -4
- package/dist/helpers/network/tcp-socket/network-tcp-server.helper.d.ts +4 -4
- package/dist/helpers/network/tcp-socket/network-tls-tcp-client.helper.d.ts +4 -4
- package/dist/helpers/network/tcp-socket/network-tls-tcp-server.helper.d.ts +4 -4
- package/dist/helpers/network/udp-socket/index.d.ts +1 -1
- package/dist/helpers/network/udp-socket/network-udp-client.helper.d.ts +3 -3
- package/dist/helpers/network/udp-socket/network-udp-client.helper.js +14 -14
- package/dist/helpers/queue/bullmq/helper.d.ts +4 -4
- package/dist/helpers/queue/bullmq/helper.js +10 -10
- package/dist/helpers/queue/bullmq/index.d.ts +1 -1
- package/dist/helpers/queue/common/index.d.ts +1 -1
- package/dist/helpers/queue/common/types.d.ts +1 -1
- package/dist/helpers/queue/index.d.ts +4 -4
- package/dist/helpers/queue/internal/helper.d.ts +3 -3
- package/dist/helpers/queue/internal/helper.js +11 -11
- package/dist/helpers/queue/internal/index.d.ts +1 -1
- package/dist/helpers/queue/mqtt/helper.d.ts +2 -2
- package/dist/helpers/queue/mqtt/helper.js +8 -8
- package/dist/helpers/queue/mqtt/index.d.ts +1 -1
- package/dist/helpers/redis/cluster.helper.d.ts +3 -3
- package/dist/helpers/redis/default.helper.d.ts +3 -3
- package/dist/helpers/redis/default.helper.js +40 -40
- package/dist/helpers/redis/index.d.ts +4 -4
- package/dist/helpers/redis/single.helper.d.ts +3 -3
- package/dist/helpers/redis/types.d.ts +3 -3
- package/dist/helpers/socket-io/client/helper.d.ts +3 -3
- package/dist/helpers/socket-io/client/helper.js +8 -8
- package/dist/helpers/socket-io/client/index.d.ts +1 -1
- package/dist/helpers/socket-io/common/constants.js +10 -10
- package/dist/helpers/socket-io/common/index.d.ts +2 -2
- package/dist/helpers/socket-io/common/types.d.ts +6 -6
- package/dist/helpers/socket-io/index.d.ts +3 -3
- package/dist/helpers/socket-io/server/helper.d.ts +3 -3
- package/dist/helpers/socket-io/server/helper.js +41 -41
- package/dist/helpers/socket-io/server/index.d.ts +1 -1
- package/dist/helpers/storage/in-memory/helper.d.ts +2 -2
- package/dist/helpers/storage/in-memory/index.d.ts +1 -1
- package/dist/helpers/storage/index.d.ts +2 -2
- package/dist/helpers/storage/minio/helper.d.ts +3 -3
- package/dist/helpers/storage/minio/helper.js +7 -7
- package/dist/helpers/storage/minio/index.d.ts +1 -1
- package/dist/helpers/testing/base-test-plan.d.ts +2 -2
- package/dist/helpers/testing/base-test-plan.js +4 -4
- package/dist/helpers/testing/common/constants.d.ts +1 -1
- package/dist/helpers/testing/common/constants.js +3 -3
- package/dist/helpers/testing/common/index.d.ts +2 -2
- package/dist/helpers/testing/common/types.d.ts +3 -3
- package/dist/helpers/testing/describe.d.ts +2 -2
- package/dist/helpers/testing/describe.js +5 -5
- package/dist/helpers/testing/index.d.ts +6 -6
- package/dist/helpers/testing/test-case.d.ts +3 -3
- package/dist/helpers/testing/test-case.js +1 -1
- package/dist/helpers/testing/test-handler.d.ts +3 -3
- package/dist/helpers/testing/test-handler.js +2 -2
- package/dist/helpers/testing/test-plan.d.ts +2 -2
- package/dist/helpers/worker-thread/base.d.ts +6 -6
- package/dist/helpers/worker-thread/base.js +15 -15
- package/dist/helpers/worker-thread/base.js.map +1 -1
- package/dist/helpers/worker-thread/index.d.ts +4 -4
- package/dist/helpers/worker-thread/types.d.ts +2 -2
- package/dist/helpers/worker-thread/worker-bus.d.ts +4 -4
- package/dist/helpers/worker-thread/worker-bus.d.ts.map +1 -1
- package/dist/helpers/worker-thread/worker-bus.js +14 -9
- package/dist/helpers/worker-thread/worker-bus.js.map +1 -1
- package/dist/helpers/worker-thread/worker-pool.d.ts +2 -2
- package/dist/helpers/worker-thread/worker-pool.js +6 -6
- package/dist/index.d.ts +4 -4
- package/dist/utilities/crypto.utility.d.ts +1 -1
- package/dist/utilities/crypto.utility.js +2 -2
- package/dist/utilities/date.utility.d.ts +1 -1
- package/dist/utilities/date.utility.js +6 -6
- package/dist/utilities/index.d.ts +7 -7
- package/dist/utilities/module.utility.js +2 -2
- package/dist/utilities/parse.utility.js +18 -18
- package/dist/utilities/performance.utility.d.ts +1 -1
- package/dist/utilities/performance.utility.js +5 -5
- package/dist/utilities/promise.utility.d.ts +1 -1
- package/dist/utilities/promise.utility.js +3 -3
- package/dist/utilities/request.utility.d.ts +1 -1
- package/dist/utilities/request.utility.js +7 -7
- package/package.json +23 -29
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Worker, WorkerOptions } from
|
|
2
|
-
import { AnyType, ValueOrPromise } from
|
|
3
|
-
import { BaseHelper } from
|
|
4
|
-
import { IWorker, IWorkerBus, IWorkerThread } from
|
|
1
|
+
import { Worker, WorkerOptions } from 'node:worker_threads';
|
|
2
|
+
import { AnyType, ValueOrPromise } from '../../common/types';
|
|
3
|
+
import { BaseHelper } from '../../helpers/base';
|
|
4
|
+
import { IWorker, IWorkerBus, IWorkerThread } from './types';
|
|
5
5
|
export declare abstract class AbstractWorkerHelper<MessageType> extends BaseHelper implements IWorker<MessageType> {
|
|
6
6
|
worker: Worker;
|
|
7
7
|
options: WorkerOptions;
|
|
@@ -20,13 +20,13 @@ export declare abstract class AbstractWorkerHelper<MessageType> extends BaseHelp
|
|
|
20
20
|
}): ValueOrPromise<void>;
|
|
21
21
|
}
|
|
22
22
|
export declare class BaseWorkerHelper<MessageType> extends AbstractWorkerHelper<MessageType> {
|
|
23
|
-
protected eventHandlers?: Partial<Pick<IWorker<MessageType>,
|
|
23
|
+
protected eventHandlers?: Partial<Pick<IWorker<MessageType>, 'onOnline' | 'onExit' | 'onError' | 'onMessage' | 'onMessageError'>>;
|
|
24
24
|
constructor(opts: {
|
|
25
25
|
scope?: string;
|
|
26
26
|
identifier: string;
|
|
27
27
|
path: string | URL;
|
|
28
28
|
options: WorkerOptions;
|
|
29
|
-
eventHandlers?: Partial<Pick<IWorker<MessageType>,
|
|
29
|
+
eventHandlers?: Partial<Pick<IWorker<MessageType>, 'onOnline' | 'onExit' | 'onError' | 'onMessage' | 'onMessageError'>>;
|
|
30
30
|
});
|
|
31
31
|
onOnline(): ValueOrPromise<void>;
|
|
32
32
|
onExit(opts: {
|
|
@@ -23,53 +23,53 @@ class BaseWorkerHelper extends AbstractWorkerHelper {
|
|
|
23
23
|
this.eventHandlers.onOnline();
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
this.logger.info(
|
|
26
|
+
this.logger.info('[online] Worker ONLINE');
|
|
27
27
|
}
|
|
28
28
|
onExit(opts) {
|
|
29
29
|
if (this.eventHandlers?.onExit) {
|
|
30
30
|
this.eventHandlers.onExit({ code: opts.code });
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
|
-
this.logger.warn(
|
|
33
|
+
this.logger.warn('[onExit] Worker EXIT | Code: %s', opts.code);
|
|
34
34
|
}
|
|
35
35
|
onError(opts) {
|
|
36
36
|
if (this.eventHandlers?.onError) {
|
|
37
37
|
this.eventHandlers.onError({ error: opts.error });
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
this.logger.error(
|
|
40
|
+
this.logger.error('[onError] Worker ERROR | Error: %s', opts.error);
|
|
41
41
|
}
|
|
42
42
|
onMessage(opts) {
|
|
43
43
|
if (this.eventHandlers?.onMessage) {
|
|
44
44
|
this.eventHandlers.onMessage({ message: opts.message });
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
|
-
this.logger.error(
|
|
47
|
+
this.logger.error('[onMessage] Worker MESSAGE | message: %j', opts.message);
|
|
48
48
|
}
|
|
49
49
|
onMessageError(opts) {
|
|
50
50
|
if (this.eventHandlers?.onMessageError) {
|
|
51
51
|
this.eventHandlers.onMessageError({ error: opts.error });
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
this.logger.error(
|
|
54
|
+
this.logger.error('[onMessageError] Worker MESSAGE_ERROR | Error: %s', opts.error);
|
|
55
55
|
}
|
|
56
56
|
binding() {
|
|
57
57
|
if (!this.worker) {
|
|
58
|
-
throw (0, error_1.getError)({ message:
|
|
58
|
+
throw (0, error_1.getError)({ message: '[binding] Invalid worker instance to bind event handlers' });
|
|
59
59
|
}
|
|
60
|
-
this.worker.on(
|
|
60
|
+
this.worker.on('online', () => {
|
|
61
61
|
this.onOnline();
|
|
62
62
|
});
|
|
63
|
-
this.worker.on(
|
|
63
|
+
this.worker.on('exit', code => {
|
|
64
64
|
this.onExit({ code });
|
|
65
65
|
});
|
|
66
|
-
this.worker.on(
|
|
67
|
-
this.onError({ error });
|
|
66
|
+
this.worker.on('error', error => {
|
|
67
|
+
this.onError({ error: error instanceof Error ? error : new Error(String(error)) });
|
|
68
68
|
});
|
|
69
|
-
this.worker.on(
|
|
69
|
+
this.worker.on('message', message => {
|
|
70
70
|
this.onMessage({ message });
|
|
71
71
|
});
|
|
72
|
-
this.worker.on(
|
|
72
|
+
this.worker.on('messageerror', error => {
|
|
73
73
|
this.onMessageError({ error });
|
|
74
74
|
});
|
|
75
75
|
}
|
|
@@ -88,7 +88,7 @@ class BaseWorkerThreadHelper extends AbstractWorkerThreadHelper {
|
|
|
88
88
|
super({ scope, identifier: scope });
|
|
89
89
|
if (node_worker_threads_1.isMainThread) {
|
|
90
90
|
throw (0, error_1.getError)({
|
|
91
|
-
message:
|
|
91
|
+
message: '[BaseWorker] Cannot start worker in MAIN_THREAD',
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
94
|
this.buses = {};
|
|
@@ -99,7 +99,7 @@ class BaseWorkerThreadHelper extends AbstractWorkerThreadHelper {
|
|
|
99
99
|
}
|
|
100
100
|
const { key, bus } = opts;
|
|
101
101
|
if (this.buses[key]) {
|
|
102
|
-
this.logger.warn(
|
|
102
|
+
this.logger.warn('[bindWorkerBus] Worker Bus existed | key: %s', key);
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
105
|
this.buses[key] = bus;
|
|
@@ -110,7 +110,7 @@ class BaseWorkerThreadHelper extends AbstractWorkerThreadHelper {
|
|
|
110
110
|
}
|
|
111
111
|
const { key } = opts;
|
|
112
112
|
if (!(key in this.buses)) {
|
|
113
|
-
this.logger.warn(
|
|
113
|
+
this.logger.warn('[unbindWorkerBus] Worker Bus not existed | key: %s', key);
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
this.buses[key]?.port?.removeAllListeners();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/helpers/worker-thread/base.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/helpers/worker-thread/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from './base';
|
|
2
|
+
export * from './types';
|
|
3
|
+
export * from './worker-bus';
|
|
4
|
+
export * from './worker-pool';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AnyType, ValueOrPromise } from
|
|
2
|
-
import { MessagePort, Transferable, Worker, WorkerOptions } from
|
|
1
|
+
import { AnyType, ValueOrPromise } from '../../common/types';
|
|
2
|
+
import { MessagePort, Transferable, Worker, WorkerOptions } from 'node:worker_threads';
|
|
3
3
|
export interface IWorker<MessageType> {
|
|
4
4
|
worker: Worker;
|
|
5
5
|
options: WorkerOptions;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ValueOrPromise } from
|
|
2
|
-
import { BaseHelper } from
|
|
3
|
-
import { MessagePort, Transferable } from
|
|
4
|
-
import { IWorkerBus, IWorkerMessageBusHandler } from
|
|
1
|
+
import { ValueOrPromise } from '../../common/types';
|
|
2
|
+
import { BaseHelper } from '../../helpers/base';
|
|
3
|
+
import { MessagePort, Transferable } from 'node:worker_threads';
|
|
4
|
+
import { IWorkerBus, IWorkerMessageBusHandler } from './types';
|
|
5
5
|
export declare abstract class AbstractWorkerMessageBusHandlerHelper<IConsumePayload> extends BaseHelper implements IWorkerMessageBusHandler<IConsumePayload> {
|
|
6
6
|
onMessage: (opts: {
|
|
7
7
|
message: IConsumePayload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-bus.d.ts","sourceRoot":"","sources":["../../../src/helpers/worker-thread/worker-bus.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"worker-bus.d.ts","sourceRoot":"","sources":["../../../src/helpers/worker-thread/worker-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,12 @@ class BaseWorkerMessageBusHandlerHelper extends AbstractWorkerMessageBusHandlerH
|
|
|
15
15
|
this.onExit = opts?.onExit
|
|
16
16
|
? opts.onExit
|
|
17
17
|
: (_opts) => {
|
|
18
|
-
this.logger.warn(
|
|
18
|
+
this.logger.warn('[onExit] worker EXITED | exitCode: %s', _opts.exitCode);
|
|
19
19
|
};
|
|
20
20
|
this.onError = opts?.onError
|
|
21
21
|
? opts.onError
|
|
22
22
|
: (_opts) => {
|
|
23
|
-
this.logger.error(
|
|
23
|
+
this.logger.error('[onError] worker error: %s', _opts.error);
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -37,29 +37,34 @@ class BaseWorkerBusHelper extends AbstractWorkerBusHelper {
|
|
|
37
37
|
this.port = opts.port;
|
|
38
38
|
this.handler = opts.busHandler;
|
|
39
39
|
// Binding events
|
|
40
|
-
this.port.on(
|
|
40
|
+
this.port.on('message', message => {
|
|
41
41
|
this.handler.onMessage({ message });
|
|
42
42
|
});
|
|
43
|
-
this.port.on(
|
|
43
|
+
this.port.on('error', error => {
|
|
44
44
|
this.handler.onError({ error });
|
|
45
45
|
});
|
|
46
|
-
this.port.on(
|
|
46
|
+
this.port.on('messageerror', error => {
|
|
47
47
|
this.handler.onError({ error });
|
|
48
48
|
});
|
|
49
|
-
this.port.on(
|
|
49
|
+
this.port.on('exit', exitCode => {
|
|
50
50
|
this.handler.onExit({ exitCode });
|
|
51
51
|
});
|
|
52
|
-
this.port.on(
|
|
52
|
+
this.port.on('close', () => {
|
|
53
53
|
this.handler.onClose();
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
postMessage(opts) {
|
|
57
57
|
if (!this.port) {
|
|
58
|
-
this.logger.error(
|
|
58
|
+
this.logger.error('[postMessage] Failed to post message to main | Invalid parentPort!');
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
this.onBeforePostMessage?.(opts);
|
|
62
|
-
|
|
62
|
+
if (opts.transferList) {
|
|
63
|
+
this.port.postMessage(opts.message, [...opts.transferList]);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.port.postMessage(opts.message);
|
|
67
|
+
}
|
|
63
68
|
this.onAfterPostMessage?.(opts);
|
|
64
69
|
}
|
|
65
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-bus.js","sourceRoot":"","sources":["../../../src/helpers/worker-thread/worker-bus.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAI5C,8FAA8F;AAC9F,MAAsB,qCACpB,SAAQ,iBAAU;CAOnB;AARD,sFAQC;AAED,8FAA8F;AAC9F,MAAa,iCAEX,SAAQ,qCAAsD;IAC9D,YAAY,IAMX;QACC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAErD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QAEvD,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM;YACxB,CAAC,CAAC,IAAI,CAAC,MAAM;YACb,CAAC,CAAC,CAAC,KAAoC,EAAE,EAAE;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5E,CAAC,CAAC;QAEN,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO;YAC1B,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC,CAAC,KAAuB,EAAE,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,CAAC,CAAC;IACR,CAAC;CACF;AA5BD,8EA4BC;AAED,8FAA8F;AAC9F,MAAsB,uBACpB,SAAQ,iBAAU;CAYnB;AAbD,0DAaC;AAED,8FAA8F;AAC9F,MAAa,mBAAsD,SAAQ,uBAG1E;IACC,YAAY,IAIX;QACC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAErD,aAAa;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QAE/B,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,WAAW,CAAC,IAGX;QACC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-bus.js","sourceRoot":"","sources":["../../../src/helpers/worker-thread/worker-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseHelper } from
|
|
2
|
-
import { IWorker } from
|
|
1
|
+
import { BaseHelper } from '../../helpers/base';
|
|
2
|
+
import { IWorker } from './types';
|
|
3
3
|
export declare class WorkerPoolHelper extends BaseHelper {
|
|
4
4
|
private static instance;
|
|
5
5
|
protected registry: Map<string | symbol, IWorker<any>>;
|
|
@@ -33,25 +33,25 @@ class WorkerPoolHelper extends base_1.BaseHelper {
|
|
|
33
33
|
register(opts) {
|
|
34
34
|
if (!this.registry) {
|
|
35
35
|
throw (0, error_1.getError)({
|
|
36
|
-
message:
|
|
36
|
+
message: '[register] Invalid worker registry instance | please init registry before register new worker!',
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
if (this.registry.size === this.numberOfCPUs && !this.ignoreMaxWarning) {
|
|
40
|
-
this.logger.warn(
|
|
40
|
+
this.logger.warn('[register] SKIP register worker | Pool size reached maximum number of cores | CPUs: %s | ignoreMaxWarning: %s', this.numberOfCPUs, this.ignoreMaxWarning);
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
const { key, worker } = opts;
|
|
44
44
|
if (this.registry.has(key)) {
|
|
45
|
-
this.logger.error(
|
|
45
|
+
this.logger.error('[register] SKIP register worker | Worker key existed in pool | key: %s', key);
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
this.registry.set(key, worker);
|
|
49
|
-
this.logger.info(
|
|
49
|
+
this.logger.info('[register] Successfully register worker | key: %s | poolSize: %s', key, this.registry.size);
|
|
50
50
|
}
|
|
51
51
|
async unregister(opts) {
|
|
52
52
|
const { key } = opts;
|
|
53
53
|
if (!this.has({ key })) {
|
|
54
|
-
this.logger.warn(
|
|
54
|
+
this.logger.warn('[unregister] SKIP unregister worker | Worker not existed | key: %s', key);
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
const w = this.get({ key });
|
|
@@ -59,7 +59,7 @@ class WorkerPoolHelper extends base_1.BaseHelper {
|
|
|
59
59
|
await w.worker.terminate();
|
|
60
60
|
}
|
|
61
61
|
this.registry.delete(key);
|
|
62
|
-
this.logger.info(
|
|
62
|
+
this.logger.info('[unregister] Successfully unregister worker | key: %s | poolSize: %s', key, this.registry.size);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.WorkerPoolHelper = WorkerPoolHelper;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export * from './common';
|
|
3
|
+
export * from './helpers';
|
|
4
|
+
export * from './utilities';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -8,13 +8,13 @@ const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
|
8
8
|
const hash = (text, options) => {
|
|
9
9
|
const { algorithm, secret, outputType } = options;
|
|
10
10
|
switch (algorithm) {
|
|
11
|
-
case
|
|
11
|
+
case 'SHA256': {
|
|
12
12
|
if (!secret) {
|
|
13
13
|
return text;
|
|
14
14
|
}
|
|
15
15
|
return node_crypto_1.default.createHmac(algorithm, secret).update(text).digest(outputType);
|
|
16
16
|
}
|
|
17
|
-
case
|
|
17
|
+
case 'MD5': {
|
|
18
18
|
return node_crypto_1.default.createHash(algorithm).update(text).digest(outputType);
|
|
19
19
|
}
|
|
20
20
|
default: {
|
|
@@ -17,7 +17,7 @@ dayjs_1.default.extend(utc_1.default);
|
|
|
17
17
|
dayjs_1.default.extend(timezone_1.default);
|
|
18
18
|
dayjs_1.default.extend(weekday_1.default);
|
|
19
19
|
dayjs_1.default.extend(isoWeek_1.default);
|
|
20
|
-
const tz = process.env.APP_ENV_APPLICATION_TIMEZONE ??
|
|
20
|
+
const tz = process.env.APP_ENV_APPLICATION_TIMEZONE ?? 'Asia/Ho_Chi_Minh';
|
|
21
21
|
dayjs_1.default.tz.setDefault(tz);
|
|
22
22
|
const sleep = (ms) => {
|
|
23
23
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
@@ -30,25 +30,25 @@ const isWeekday = (date) => {
|
|
|
30
30
|
exports.isWeekday = isWeekday;
|
|
31
31
|
const getPreviousWeekday = (opts) => {
|
|
32
32
|
const { date } = opts ?? { date: (0, dayjs_1.default)() };
|
|
33
|
-
let rs = (0, dayjs_1.default)(date).clone().subtract(1,
|
|
33
|
+
let rs = (0, dayjs_1.default)(date).clone().subtract(1, 'day');
|
|
34
34
|
while (!(0, exports.isWeekday)(rs.toISOString())) {
|
|
35
|
-
rs = rs.subtract(1,
|
|
35
|
+
rs = rs.subtract(1, 'day');
|
|
36
36
|
}
|
|
37
37
|
return rs;
|
|
38
38
|
};
|
|
39
39
|
exports.getPreviousWeekday = getPreviousWeekday;
|
|
40
40
|
const getNextWeekday = (opts) => {
|
|
41
41
|
const { date } = opts ?? { date: (0, dayjs_1.default)() };
|
|
42
|
-
let rs = (0, dayjs_1.default)(date).clone().add(1,
|
|
42
|
+
let rs = (0, dayjs_1.default)(date).clone().add(1, 'day');
|
|
43
43
|
while (!(0, exports.isWeekday)(rs.toISOString())) {
|
|
44
|
-
rs = rs.add(1,
|
|
44
|
+
rs = rs.add(1, 'day');
|
|
45
45
|
}
|
|
46
46
|
return rs;
|
|
47
47
|
};
|
|
48
48
|
exports.getNextWeekday = getNextWeekday;
|
|
49
49
|
const getDateTz = (opts) => {
|
|
50
50
|
const { date, timezone, useClientTz = false, timeOffset = 0 } = opts;
|
|
51
|
-
return (0, dayjs_1.default)(date).tz(timezone, useClientTz).add(timeOffset,
|
|
51
|
+
return (0, dayjs_1.default)(date).tz(timezone, useClientTz).add(timeOffset, 'hour');
|
|
52
52
|
};
|
|
53
53
|
exports.getDateTz = getDateTz;
|
|
54
54
|
const hrTime = () => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
1
|
+
export * from './crypto.utility';
|
|
2
|
+
export * from './date.utility';
|
|
3
|
+
export * from './module.utility';
|
|
4
|
+
export * from './parse.utility';
|
|
5
|
+
export * from './performance.utility';
|
|
6
|
+
export * from './promise.utility';
|
|
7
|
+
export * from './request.utility';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -4,7 +4,7 @@ exports.validateModule = void 0;
|
|
|
4
4
|
const logger_1 = require("../helpers/logger");
|
|
5
5
|
const error_1 = require("../helpers/error");
|
|
6
6
|
const validateModule = (opts) => {
|
|
7
|
-
const { scope =
|
|
7
|
+
const { scope = '', modules = [] } = opts;
|
|
8
8
|
for (const module of modules) {
|
|
9
9
|
try {
|
|
10
10
|
import(module);
|
|
@@ -12,7 +12,7 @@ const validateModule = (opts) => {
|
|
|
12
12
|
catch (error) {
|
|
13
13
|
logger_1.applicationLogger.error("[validateModule] Failed to import '%s' | Error: %s", module, error);
|
|
14
14
|
throw (0, error_1.getError)({
|
|
15
|
-
message: `[validateModule] ${module} is required${scope ? ` for ${scope}` :
|
|
15
|
+
message: `[validateModule] ${module} is required${scope ? ` for ${scope}` : ''}. Please install '${module}'`,
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -8,11 +8,11 @@ const get_1 = __importDefault(require("lodash/get"));
|
|
|
8
8
|
const round_1 = __importDefault(require("lodash/round"));
|
|
9
9
|
const error_1 = require("../helpers/error");
|
|
10
10
|
// -------------------------------------------------------------------------
|
|
11
|
-
const INTL_0_DIGITS_FORMATER = new Intl.NumberFormat(
|
|
11
|
+
const INTL_0_DIGITS_FORMATER = new Intl.NumberFormat('en-US', {
|
|
12
12
|
maximumFractionDigits: 0,
|
|
13
13
|
minimumFractionDigits: 0,
|
|
14
14
|
});
|
|
15
|
-
const INTL_2_DIGITS_FORMATER = new Intl.NumberFormat(
|
|
15
|
+
const INTL_2_DIGITS_FORMATER = new Intl.NumberFormat('en-US', {
|
|
16
16
|
maximumFractionDigits: 2,
|
|
17
17
|
minimumFractionDigits: 2,
|
|
18
18
|
});
|
|
@@ -22,7 +22,7 @@ exports.getUID = getUID;
|
|
|
22
22
|
// -------------------------------------------------------------------------
|
|
23
23
|
const toCamel = (s) => {
|
|
24
24
|
return s.replace(/([-_][a-z])/gi, (sub) => {
|
|
25
|
-
return sub.toUpperCase().replace(
|
|
25
|
+
return sub.toUpperCase().replace('-', '').replace('_', '');
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
exports.toCamel = toCamel;
|
|
@@ -34,13 +34,13 @@ const keysToCamel = (object) => {
|
|
|
34
34
|
const value = (0, get_1.default)(object, key);
|
|
35
35
|
let valueType = typeof value;
|
|
36
36
|
if (Array.isArray(value)) {
|
|
37
|
-
valueType =
|
|
37
|
+
valueType = 'array';
|
|
38
38
|
}
|
|
39
39
|
else if (value instanceof Date) {
|
|
40
|
-
valueType =
|
|
40
|
+
valueType = 'date';
|
|
41
41
|
}
|
|
42
42
|
switch (valueType) {
|
|
43
|
-
case
|
|
43
|
+
case 'object': {
|
|
44
44
|
if (!value) {
|
|
45
45
|
n[(0, exports.toCamel)(key)] = value;
|
|
46
46
|
break;
|
|
@@ -82,7 +82,7 @@ const int = (input) => {
|
|
|
82
82
|
if (!input || isNaN(input)) {
|
|
83
83
|
return 0;
|
|
84
84
|
}
|
|
85
|
-
const normalized = input?.toString()?.replace(/,/g,
|
|
85
|
+
const normalized = input?.toString()?.replace(/,/g, '');
|
|
86
86
|
return Number.parseInt(normalized, 10) ?? 0;
|
|
87
87
|
};
|
|
88
88
|
exports.int = int;
|
|
@@ -91,15 +91,15 @@ const float = (input, digit = 2) => {
|
|
|
91
91
|
if (!input || isNaN(input)) {
|
|
92
92
|
return 0;
|
|
93
93
|
}
|
|
94
|
-
const normalized = input?.toString()?.replace(/,/g,
|
|
94
|
+
const normalized = input?.toString()?.replace(/,/g, '');
|
|
95
95
|
return (0, round_1.default)(Number.parseFloat(normalized), digit);
|
|
96
96
|
};
|
|
97
97
|
exports.float = float;
|
|
98
98
|
// -------------------------------------------------------------------------
|
|
99
99
|
const toBoolean = (input) => {
|
|
100
|
-
return ((input !==
|
|
101
|
-
input !==
|
|
102
|
-
input !==
|
|
100
|
+
return ((input !== '' &&
|
|
101
|
+
input !== 'false' &&
|
|
102
|
+
input !== '0' &&
|
|
103
103
|
input !== false &&
|
|
104
104
|
input !== 0 &&
|
|
105
105
|
input !== null &&
|
|
@@ -129,7 +129,7 @@ const toStringDecimal = (input, digit = 2, options = { useLocaleFormat: true })
|
|
|
129
129
|
if (digit === 2) {
|
|
130
130
|
return INTL_2_DIGITS_FORMATER.format(number);
|
|
131
131
|
}
|
|
132
|
-
const formater = new Intl.NumberFormat(
|
|
132
|
+
const formater = new Intl.NumberFormat('en-US', {
|
|
133
133
|
maximumFractionDigits: digit,
|
|
134
134
|
minimumFractionDigits: digit,
|
|
135
135
|
});
|
|
@@ -137,14 +137,14 @@ const toStringDecimal = (input, digit = 2, options = { useLocaleFormat: true })
|
|
|
137
137
|
};
|
|
138
138
|
exports.toStringDecimal = toStringDecimal;
|
|
139
139
|
// -------------------------------------------------------------------------
|
|
140
|
-
const getNumberValue = (input, method =
|
|
140
|
+
const getNumberValue = (input, method = 'int') => {
|
|
141
141
|
if (!input) {
|
|
142
142
|
return 0;
|
|
143
143
|
}
|
|
144
144
|
let raw;
|
|
145
145
|
switch (typeof input) {
|
|
146
|
-
case
|
|
147
|
-
raw = input.replace(/,|\./gi,
|
|
146
|
+
case 'string': {
|
|
147
|
+
raw = input.replace(/,|\./gi, '');
|
|
148
148
|
break;
|
|
149
149
|
}
|
|
150
150
|
default: {
|
|
@@ -153,7 +153,7 @@ const getNumberValue = (input, method = "int") => {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
switch (method) {
|
|
156
|
-
case
|
|
156
|
+
case 'int': {
|
|
157
157
|
return (0, exports.int)(raw);
|
|
158
158
|
}
|
|
159
159
|
default: {
|
|
@@ -180,7 +180,7 @@ const parseArrayToRecordWithKey = (opts) => {
|
|
|
180
180
|
arr.forEach(element => {
|
|
181
181
|
if (!(keyMap in element)) {
|
|
182
182
|
throw (0, error_1.getError)({
|
|
183
|
-
message:
|
|
183
|
+
message: 'Invalid keyMap',
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
resultRecord[element[keyMap]] = element;
|
|
@@ -205,7 +205,7 @@ const parseArrayToMapWithKey = (arr, keyMap) => {
|
|
|
205
205
|
arr.forEach(element => {
|
|
206
206
|
if (!(keyMap in element)) {
|
|
207
207
|
throw (0, error_1.getError)({
|
|
208
|
-
message:
|
|
208
|
+
message: 'Invalid keyMap',
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
211
|
resultMap.set(element[keyMap], element);
|
|
@@ -14,12 +14,12 @@ exports.getExecutedPerformance = getExecutedPerformance;
|
|
|
14
14
|
const executeWithPerformanceMeasure = (opts) => {
|
|
15
15
|
return new Promise((resolve, reject) => {
|
|
16
16
|
const t = performance.now();
|
|
17
|
-
const { logger = console, level =
|
|
17
|
+
const { logger = console, level = 'debug', scope, description = 'Executing', args, task, } = opts;
|
|
18
18
|
if (args) {
|
|
19
|
-
logger?.[level](
|
|
19
|
+
logger?.[level]('[%s] START | %s... | Args: %j', scope, description, args);
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
|
-
logger?.[level](
|
|
22
|
+
logger?.[level]('[%s] START | %s ...', scope, description);
|
|
23
23
|
}
|
|
24
24
|
Promise.resolve(task())
|
|
25
25
|
.then(resolve)
|
|
@@ -27,10 +27,10 @@ const executeWithPerformanceMeasure = (opts) => {
|
|
|
27
27
|
.finally(() => {
|
|
28
28
|
const took = performance.now() - t;
|
|
29
29
|
if (args) {
|
|
30
|
-
logger?.[level](
|
|
30
|
+
logger?.[level]('[%s] DONE | %s | Args: %j | Took: %s (ms)', scope, description, args, took);
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
33
|
-
logger?.[level](
|
|
33
|
+
logger?.[level]('[%s] DONE | %s | Took: %s (ms)', scope, description, took);
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
});
|
|
@@ -53,14 +53,14 @@ async function transformValueOrPromise(valueOrPromise, transformer) {
|
|
|
53
53
|
*/
|
|
54
54
|
function isPromiseLike(value) {
|
|
55
55
|
return (!!value &&
|
|
56
|
-
(typeof value ===
|
|
57
|
-
typeof value.then ===
|
|
56
|
+
(typeof value === 'object' || typeof value === 'function') &&
|
|
57
|
+
typeof value.then === 'function');
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Try to get the value synchronously, throw if it's a promise
|
|
61
61
|
*/
|
|
62
62
|
function getDeepProperty(obj, path) {
|
|
63
|
-
const keys = path.split(
|
|
63
|
+
const keys = path.split('.');
|
|
64
64
|
let result = obj;
|
|
65
65
|
for (const key of keys) {
|
|
66
66
|
if (result == null) {
|