exodus-framework 2.0.816 → 2.0.817
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/lib/app/classes/broadcast.d.ts +16 -0
- package/lib/app/classes/broadcast.d.ts.map +1 -0
- package/lib/app/classes/broadcast.js +76 -0
- package/lib/app/classes/communication.d.ts +20 -0
- package/lib/app/classes/communication.d.ts.map +1 -0
- package/lib/app/classes/communication.js +53 -0
- package/lib/app/classes/event.d.ts +30 -0
- package/lib/app/classes/event.d.ts.map +1 -0
- package/lib/app/classes/event.js +88 -0
- package/lib/app/classes/managed.d.ts +53 -0
- package/lib/app/classes/managed.d.ts.map +1 -0
- package/lib/app/classes/managed.js +192 -0
- package/lib/app/classes/service.d.ts +23 -0
- package/lib/app/classes/service.d.ts.map +1 -0
- package/lib/app/classes/service.js +68 -0
- package/lib/app/classes/singleton.d.ts +8 -0
- package/lib/app/classes/singleton.d.ts.map +1 -0
- package/lib/app/{singleton.js → classes/singleton.js} +3 -3
- package/lib/app/classes/system.d.ts +6 -0
- package/lib/app/classes/system.d.ts.map +1 -0
- package/lib/app/classes/system.js +49 -0
- package/lib/app/controller.d.ts +6 -5
- package/lib/app/controller.d.ts.map +1 -1
- package/lib/app/controller.js +8 -7
- package/lib/app/core.d.ts +0 -30
- package/lib/app/core.d.ts.map +1 -1
- package/lib/app/core.js +1 -196
- package/lib/app/error.d.ts +3 -3
- package/lib/app/error.d.ts.map +1 -1
- package/lib/app/error.js +3 -3
- package/lib/app/exodus.d.ts +4 -4
- package/lib/app/exodus.d.ts.map +1 -1
- package/lib/app/exodus.js +23 -9
- package/lib/app/index.d.ts +2 -2
- package/lib/app/index.d.ts.map +1 -1
- package/lib/app/index.js +2 -2
- package/lib/app/settings.js +1 -1
- package/lib/contracts/singleton.d.ts +3 -4
- package/lib/contracts/singleton.d.ts.map +1 -1
- package/lib/services/express.d.ts +1 -1
- package/lib/services/express.d.ts.map +1 -1
- package/lib/services/express.js +1 -1
- package/lib/services/file.d.ts +1 -1
- package/lib/services/file.d.ts.map +1 -1
- package/lib/services/file.js +1 -1
- package/lib/services/rabitmq.d.ts +1 -1
- package/lib/services/rabitmq.d.ts.map +1 -1
- package/lib/services/rabitmq.js +1 -1
- package/lib/services/redis.d.ts +1 -1
- package/lib/services/redis.d.ts.map +1 -1
- package/lib/services/redis.js +1 -1
- package/lib/services/sequelize.d.ts +1 -1
- package/lib/services/sequelize.d.ts.map +1 -1
- package/lib/services/sequelize.js +1 -1
- package/lib/services/socket.d.ts +1 -1
- package/lib/services/socket.d.ts.map +1 -1
- package/lib/services/socket.js +1 -1
- package/lib/services/task/queue/QueueTask.d.ts +12 -12
- package/lib/services/task/queue/QueueTask.d.ts.map +1 -1
- package/lib/services/task/queue/QueueTask.js +49 -29
- package/lib/services/task/scheduler/SchedulerTask.d.ts +2 -2
- package/lib/services/task/scheduler/SchedulerTask.d.ts.map +1 -1
- package/lib/services/task/scheduler/SchedulerTask.js +11 -10
- package/lib/services/test.d.ts +4 -5
- package/lib/services/test.d.ts.map +1 -1
- package/lib/services/test.js +8 -8
- package/lib/tasks/schedule/teste.js +4 -4
- package/lib/utils/logger.d.ts.map +1 -1
- package/package.json +1 -1
- package/lib/app/service.d.ts +0 -34
- package/lib/app/service.d.ts.map +0 -1
- package/lib/app/service.js +0 -106
- package/lib/app/singleton.d.ts +0 -8
- package/lib/app/singleton.d.ts.map +0 -1
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
-
var
|
7
|
+
var _managed = _interopRequireDefault(require("./managed"));
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
9
9
|
/**
|
10
10
|
* Classe base para gerênciamento de instancia Singleton
|
@@ -13,9 +13,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
13
13
|
*
|
14
14
|
* @abstract
|
15
15
|
* @class Singleton
|
16
|
-
* @extends {
|
16
|
+
* @extends {Managed}
|
17
17
|
*/
|
18
|
-
class Singleton extends
|
18
|
+
class Singleton extends _managed.default {
|
19
19
|
// #Singleton
|
20
20
|
static instance;
|
21
21
|
static singleton() {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/app/classes/system.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,cAAM,MAAM;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,YAAuB;CA0CvD;AACD,eAAe,MAAM,CAAC"}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _cluster = _interopRequireDefault(require("cluster"));
|
8
|
+
var _dateFns = require("date-fns");
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
+
class System {
|
11
|
+
log(msg, level = 'normal') {
|
12
|
+
if (!msg) return;
|
13
|
+
let query = '\x1b[97m[%s]';
|
14
|
+
const params = [(0, _dateFns.format)(new Date(), 'HH:mm:ss')];
|
15
|
+
if (_cluster.default.isWorker) {
|
16
|
+
query = query + `\x1b[96m[%s]`;
|
17
|
+
params.push(`Cluster${_cluster.default.worker.id}`);
|
18
|
+
}
|
19
|
+
query = query + `\x1b[33m[%s]`;
|
20
|
+
params.push(this.constructor.name || 'unknow');
|
21
|
+
switch (level) {
|
22
|
+
case 'info':
|
23
|
+
query = query + `\x1b[94m `;
|
24
|
+
break;
|
25
|
+
case 'danger':
|
26
|
+
query = query + `\x1b[91m `;
|
27
|
+
break;
|
28
|
+
case 'warning':
|
29
|
+
query = query + `\x1b[33m `;
|
30
|
+
break;
|
31
|
+
case 'success':
|
32
|
+
query = query + `\x1b[92m `;
|
33
|
+
break;
|
34
|
+
case 'especial':
|
35
|
+
query = query + `\x1b[95m `;
|
36
|
+
break;
|
37
|
+
case 'comment':
|
38
|
+
query = query + `\x1b[97m `;
|
39
|
+
break;
|
40
|
+
case 'normal':
|
41
|
+
query = query + `\x1b[0m `;
|
42
|
+
break;
|
43
|
+
}
|
44
|
+
query = query + `%s\x1b[0m`;
|
45
|
+
params.push(msg);
|
46
|
+
console.log(query, ...params);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
var _default = exports.default = System;
|
package/lib/app/controller.d.ts
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
import { NextFunction, Response } from 'express';
|
2
2
|
import { IAccount, IServiceRequestor, THttpResponse, TSocket, TSocketEventDataMap, TSocketEventHandle } from '../contracts';
|
3
|
-
import
|
4
|
-
|
3
|
+
import Managed from './classes/managed';
|
4
|
+
import System from './classes/system';
|
5
|
+
export declare abstract class HttpController extends System {
|
5
6
|
constructor();
|
6
7
|
protected send<D = any>(objResponse: THttpResponse<D>, res: Response, next?: NextFunction): void;
|
7
8
|
protected validate(data: Record<string, any>): Promise<void>;
|
8
9
|
}
|
9
|
-
export declare abstract class SocketController extends
|
10
|
+
export declare abstract class SocketController extends System {
|
10
11
|
constructor();
|
11
12
|
protected handlerEventBind<K extends keyof TSocketEventDataMap>(cb: TSocketEventHandle<K>): (req: SocketRequest, data: TSocketEventDataMap[K]) => void;
|
12
13
|
protected bufferToData(data: Buffer): number[];
|
13
14
|
}
|
14
|
-
export declare class SocketRequest extends
|
15
|
+
export declare class SocketRequest extends Managed {
|
15
16
|
protected socket: TSocket;
|
16
17
|
protected event: keyof TSocketEventDataMap;
|
17
18
|
readonly auth: {
|
@@ -31,7 +32,7 @@ export declare class SocketRequest extends Core {
|
|
31
32
|
getSocket(): TSocket;
|
32
33
|
protected dataToBuffer(data: any): Buffer;
|
33
34
|
}
|
34
|
-
export declare abstract class MessagingController extends
|
35
|
+
export declare abstract class MessagingController extends System {
|
35
36
|
constructor();
|
36
37
|
protected bufferToData(data: Buffer): number[];
|
37
38
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/app/controller.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/app/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAStC,8BAAsB,cAAe,SAAQ,MAAM;;IAejD,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI;IAIhG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAG7C;AAUD,8BAAsB,gBAAiB,SAAQ,MAAM;;IAKnD,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAC1E,aAAa,QAAQ,mBAAmB,CAAC,CAAC,CAAC;IAM1D,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;CAGpC;AACD,qBAAa,aAAc,SAAQ,OAAO;IAatC,SAAS,CAAC,MAAM,EAAE,OAAO;IACzB,SAAS,CAAC,KAAK,EAAE,MAAM,mBAAmB;IAb5C,QAAQ,CAAC,IAAI,EAAE;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,QAAQ,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;gBAEpB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,mBAAmB;IAS5C,IAAI,CAAC,CAAC,SAAS,MAAM,mBAAmB,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAI5F,QAAQ;IAGR,SAAS;IAIT,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG;CAGjC;AAED,8BAAsB,mBAAoB,SAAQ,MAAM;;IAKtD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;CAGpC;AAED,eAAe,cAAc,CAAC"}
|
package/lib/app/controller.js
CHANGED
@@ -5,16 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.default = exports.SocketRequest = exports.SocketController = exports.MessagingController = exports.HttpController = void 0;
|
7
7
|
var _express = _interopRequireDefault(require("../services/express"));
|
8
|
-
var
|
8
|
+
var _managed = _interopRequireDefault(require("./classes/managed"));
|
9
|
+
var _system = _interopRequireDefault(require("./classes/system"));
|
9
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
11
|
/**
|
11
12
|
* Classe base dos conttrolers http
|
12
13
|
*
|
13
14
|
* @abstract
|
14
15
|
* @class Controller
|
15
|
-
* @extends {
|
16
|
+
* @extends {System}
|
16
17
|
*/
|
17
|
-
class HttpController extends
|
18
|
+
class HttpController extends _system.default {
|
18
19
|
constructor() {
|
19
20
|
super();
|
20
21
|
}
|
@@ -43,10 +44,10 @@ class HttpController extends _core.default {
|
|
43
44
|
* @export
|
44
45
|
* @abstract
|
45
46
|
* @class SocketController
|
46
|
-
* @extends {
|
47
|
+
* @extends {System}
|
47
48
|
*/
|
48
49
|
exports.HttpController = HttpController;
|
49
|
-
class SocketController extends
|
50
|
+
class SocketController extends _system.default {
|
50
51
|
constructor() {
|
51
52
|
super();
|
52
53
|
}
|
@@ -61,7 +62,7 @@ class SocketController extends _core.default {
|
|
61
62
|
}
|
62
63
|
}
|
63
64
|
exports.SocketController = SocketController;
|
64
|
-
class SocketRequest extends
|
65
|
+
class SocketRequest extends _managed.default {
|
65
66
|
auth;
|
66
67
|
tenant;
|
67
68
|
requestor;
|
@@ -89,7 +90,7 @@ class SocketRequest extends _core.default {
|
|
89
90
|
}
|
90
91
|
}
|
91
92
|
exports.SocketRequest = SocketRequest;
|
92
|
-
class MessagingController extends
|
93
|
+
class MessagingController extends _system.default {
|
93
94
|
constructor() {
|
94
95
|
super();
|
95
96
|
}
|
package/lib/app/core.d.ts
CHANGED
@@ -1,39 +1,9 @@
|
|
1
|
-
import { Worker } from 'cluster';
|
2
|
-
import { TLoggerLevel } from '../contracts/console';
|
3
1
|
import CoreSettings from './settings';
|
4
|
-
import { TClusterBroadCastMessage } from '../contracts/core';
|
5
2
|
declare abstract class Core {
|
6
|
-
protected isSystem: boolean;
|
7
3
|
static settings: CoreSettings;
|
8
|
-
private static _isMaster;
|
9
|
-
private static _isCluster;
|
10
|
-
constructor(isSystem?: boolean);
|
11
|
-
log(msg: string, level?: TLoggerLevel): void;
|
12
|
-
private init;
|
13
|
-
private createClusters;
|
14
|
-
private listenClusterMessage;
|
15
|
-
private masterInit;
|
16
|
-
private clusterInit;
|
17
|
-
private clusterMessage;
|
18
|
-
private clusterExit;
|
19
|
-
private masterReceiveMessage;
|
20
|
-
protected onInit(): void;
|
21
|
-
protected onMasterInit(): void;
|
22
|
-
protected onClusterInit(_worker: Worker): void;
|
23
|
-
protected onClusterReceiveMessage(_message: TClusterBroadCastMessage): void;
|
24
|
-
protected onMasterReceiveMessage(_worker: Worker, _message: TClusterBroadCastMessage): void;
|
25
|
-
protected onClusterExit(worker: Worker, code: number, signal: string): void;
|
26
|
-
broadcastMessage(message: any): void;
|
27
|
-
sendMessageToCluster(clusterId: number, eventKey: string, data: any): void;
|
28
|
-
sendMessageToMaster(eventKey: string, data: any): void;
|
29
4
|
static getVersion(): string | undefined;
|
30
|
-
protected getCluster(): Worker;
|
31
|
-
protected getClusterCount(): number;
|
32
|
-
protected getClusters(): NodeJS.Dict<Worker>;
|
33
5
|
static setSettings(settings: CoreSettings): void;
|
34
6
|
static getSettings(): CoreSettings;
|
35
|
-
isCluster(): boolean;
|
36
|
-
isMaster(): boolean;
|
37
7
|
}
|
38
8
|
export default Core;
|
39
9
|
//# sourceMappingURL=core.d.ts.map
|
package/lib/app/core.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/app/core.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/app/core.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,YAAY,CAAC;AAWtC,uBAAe,IAAI;IACjB,MAAM,CAAC,QAAQ,eAAsB;IAGrC,MAAM,CAAC,UAAU,IAAI,MAAM,GAAG,SAAS;IAYvC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY;IAKzC,MAAM,CAAC,WAAW;CAGnB;AAED,eAAe,IAAI,CAAC"}
|
package/lib/app/core.js
CHANGED
@@ -4,15 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
-
var _cluster = _interopRequireDefault(require("cluster"));
|
8
|
-
var _dateFns = require("date-fns");
|
9
7
|
var fs = _interopRequireWildcard(require("fs"));
|
10
8
|
var _path = _interopRequireDefault(require("path"));
|
11
9
|
var _settings = _interopRequireDefault(require("./settings"));
|
12
|
-
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
13
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
14
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
15
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
16
13
|
/**
|
17
14
|
* Class base responsável pelo gerênciamento RUNTIME da aplicação
|
18
15
|
* controle de cache, uso de memoria e gerênciamento de dados locais
|
@@ -24,183 +21,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
24
21
|
*/
|
25
22
|
class Core {
|
26
23
|
static settings = new _settings.default();
|
27
|
-
static _isMaster = false;
|
28
|
-
static _isCluster = false;
|
29
|
-
constructor(isSystem = false) {
|
30
|
-
this.isSystem = isSystem;
|
31
|
-
this.init();
|
32
|
-
process.setMaxListeners(30);
|
33
|
-
}
|
34
|
-
log(msg, level = 'normal') {
|
35
|
-
if (!msg) return;
|
36
|
-
let query = '\x1b[97m[%s]';
|
37
|
-
const params = [(0, _dateFns.format)(new Date(), 'HH:mm:ss')];
|
38
|
-
if (_cluster.default.isWorker) {
|
39
|
-
query = query + `\x1b[96m[%s]`;
|
40
|
-
params.push(`Cluster${_cluster.default.worker.id}`);
|
41
|
-
}
|
42
|
-
query = query + `\x1b[33m[%s]`;
|
43
|
-
params.push(this.constructor.name || 'unknow');
|
44
|
-
switch (level) {
|
45
|
-
case 'info':
|
46
|
-
query = query + `\x1b[94m `;
|
47
|
-
break;
|
48
|
-
case 'danger':
|
49
|
-
query = query + `\x1b[91m `;
|
50
|
-
break;
|
51
|
-
case 'warning':
|
52
|
-
query = query + `\x1b[33m `;
|
53
|
-
break;
|
54
|
-
case 'success':
|
55
|
-
query = query + `\x1b[92m `;
|
56
|
-
break;
|
57
|
-
case 'especial':
|
58
|
-
query = query + `\x1b[95m `;
|
59
|
-
break;
|
60
|
-
case 'comment':
|
61
|
-
query = query + `\x1b[97m `;
|
62
|
-
break;
|
63
|
-
case 'normal':
|
64
|
-
query = query + `\x1b[0m `;
|
65
|
-
break;
|
66
|
-
}
|
67
|
-
query = query + `%s\x1b[0m`;
|
68
|
-
params.push(msg);
|
69
|
-
console.log(query, ...params);
|
70
|
-
}
|
71
|
-
|
72
|
-
//# Init
|
73
|
-
init() {
|
74
|
-
if (this.isSystem) {
|
75
|
-
if (!Core.settings) {
|
76
|
-
throw new Error('Settings not defined');
|
77
|
-
}
|
78
|
-
}
|
79
|
-
if (_cluster.default.isPrimary) {
|
80
|
-
Core._isMaster = true;
|
81
|
-
} else {
|
82
|
-
Core._isCluster = true;
|
83
|
-
}
|
84
|
-
this.onInit();
|
85
|
-
if (this.isMaster()) {
|
86
|
-
this.masterInit();
|
87
|
-
} else {
|
88
|
-
this.clusterInit(this.getCluster());
|
89
|
-
}
|
90
|
-
}
|
91
|
-
createClusters() {
|
92
|
-
for (let i = 0; i < Core.settings.getAppication().clusters; i++) {
|
93
|
-
_cluster.default.fork();
|
94
|
-
}
|
95
|
-
_cluster.default.on('exit', (worker, _code, _signal) => {
|
96
|
-
this.log(`Cluster ${worker.process.pid} foi encerrado`, 'warning');
|
97
|
-
if (Core.settings.getAppication().clustersRestarts) {
|
98
|
-
this.log(`Reiniciando cluster`, 'warning');
|
99
|
-
_cluster.default.fork();
|
100
|
-
}
|
101
|
-
});
|
102
|
-
}
|
103
|
-
listenClusterMessage() {
|
104
|
-
for (const id in _cluster.default.workers) {
|
105
|
-
const worker = _cluster.default.workers[id];
|
106
|
-
if (worker) {
|
107
|
-
worker.setMaxListeners(30);
|
108
|
-
worker.on('message', message => this.masterReceiveMessage(worker, message));
|
109
|
-
worker.on('exit', (code, signal) => this.clusterExit(worker, code, signal));
|
110
|
-
}
|
111
|
-
}
|
112
|
-
}
|
113
|
-
|
114
|
-
//? NonMuted
|
115
|
-
masterInit() {
|
116
|
-
if (this.isSystem) {
|
117
|
-
this.log(`✨ Starting ${Core.settings.getAppication().description} · Clusters: ${Core.settings.getAppication().clusters}`);
|
118
|
-
this.log(`✨ Core version ${Core.getVersion()}`);
|
119
|
-
this.createClusters();
|
120
|
-
}
|
121
|
-
this.listenClusterMessage();
|
122
|
-
this.onMasterInit();
|
123
|
-
}
|
124
|
-
clusterInit(worker) {
|
125
|
-
if (this.isSystem) {
|
126
|
-
this.log(`📊 started · PID ${worker.process.pid}`);
|
127
|
-
}
|
128
|
-
process.on('message', message => this.clusterMessage(message));
|
129
|
-
this.onClusterInit(worker);
|
130
|
-
}
|
131
|
-
clusterMessage(message) {
|
132
|
-
this.onClusterReceiveMessage(message);
|
133
|
-
}
|
134
|
-
clusterExit(worker, code, signal) {
|
135
|
-
this.onClusterExit(worker, code, signal);
|
136
|
-
}
|
137
|
-
masterReceiveMessage(worker, data) {
|
138
|
-
if (!data || !data.data || !data.eventKey) return;
|
139
|
-
this.onMasterReceiveMessage(worker, data);
|
140
|
-
}
|
141
|
-
|
142
|
-
//? Muted
|
143
|
-
onInit() {
|
144
|
-
return;
|
145
|
-
}
|
146
|
-
onMasterInit() {
|
147
|
-
return;
|
148
|
-
}
|
149
|
-
onClusterInit(_worker) {
|
150
|
-
return;
|
151
|
-
}
|
152
|
-
onClusterReceiveMessage(_message) {
|
153
|
-
return;
|
154
|
-
}
|
155
|
-
onMasterReceiveMessage(_worker, _message) {
|
156
|
-
return;
|
157
|
-
}
|
158
|
-
onClusterExit(worker, code, signal) {
|
159
|
-
console.log(`Cluster ${worker.process.pid} has exited with code ${code} and signal ${signal}`);
|
160
|
-
}
|
161
|
-
broadcastMessage(message) {
|
162
|
-
for (const id in _cluster.default.workers) {
|
163
|
-
_cluster.default.workers[id]?.send(message);
|
164
|
-
}
|
165
|
-
}
|
166
|
-
sendMessageToCluster(clusterId, eventKey, data) {
|
167
|
-
if (this.isCluster()) {
|
168
|
-
/* logger().warn(
|
169
|
-
{ clusterId, eventKey, data },
|
170
|
-
'Não é possível enviar uma mensagem para o cluster sendo o cluster...'
|
171
|
-
); */
|
172
|
-
return;
|
173
|
-
}
|
174
|
-
const worker = _cluster.default.workers[clusterId];
|
175
|
-
if (worker) {
|
176
|
-
worker.send({
|
177
|
-
eventKey,
|
178
|
-
data
|
179
|
-
});
|
180
|
-
} else {
|
181
|
-
/* logger().warn(
|
182
|
-
{ clusterId, eventKey, data },
|
183
|
-
'Não foi possível enviar a mensagem para o cluster, cluster não encontrado'
|
184
|
-
); */
|
185
|
-
}
|
186
|
-
}
|
187
|
-
sendMessageToMaster(eventKey, data) {
|
188
|
-
if (this.isMaster()) {
|
189
|
-
/* logger().warn(
|
190
|
-
{ clusterId, eventKey, data },
|
191
|
-
'Não é possível enviar uma mensagem para o master sendo o maste...'
|
192
|
-
); */
|
193
|
-
return;
|
194
|
-
}
|
195
|
-
try {
|
196
|
-
process.send({
|
197
|
-
eventKey,
|
198
|
-
data
|
199
|
-
});
|
200
|
-
} catch (error) {
|
201
|
-
new _.ErrorHandler('Houve um erro ao enviar a mensagem para o master', error);
|
202
|
-
}
|
203
|
-
}
|
204
24
|
|
205
25
|
//# System info
|
206
26
|
static getVersion() {
|
@@ -213,15 +33,6 @@ class Core {
|
|
213
33
|
return undefined;
|
214
34
|
}
|
215
35
|
}
|
216
|
-
getCluster() {
|
217
|
-
return _cluster.default.worker;
|
218
|
-
}
|
219
|
-
getClusterCount() {
|
220
|
-
return Core.settings.getAppication().clusters;
|
221
|
-
}
|
222
|
-
getClusters() {
|
223
|
-
return _cluster.default.workers;
|
224
|
-
}
|
225
36
|
|
226
37
|
//#Setters
|
227
38
|
static setSettings(settings) {
|
@@ -232,11 +43,5 @@ class Core {
|
|
232
43
|
static getSettings() {
|
233
44
|
return this.settings;
|
234
45
|
}
|
235
|
-
isCluster() {
|
236
|
-
return Core._isCluster;
|
237
|
-
}
|
238
|
-
isMaster() {
|
239
|
-
return Core._isMaster;
|
240
|
-
}
|
241
46
|
}
|
242
47
|
var _default = exports.default = Core;
|
package/lib/app/error.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { EHttpResponseCode, TApplicationResponse } from '../contracts';
|
2
|
-
import
|
3
|
-
export declare class ErrorHandler extends
|
2
|
+
import Managed from './classes/managed';
|
3
|
+
export declare class ErrorHandler extends Managed {
|
4
4
|
readonly message: string;
|
5
5
|
readonly error: Error;
|
6
6
|
readonly caller: string | null;
|
@@ -9,7 +9,7 @@ export declare class ErrorHandler extends Core {
|
|
9
9
|
private register;
|
10
10
|
private getCallerClassName;
|
11
11
|
}
|
12
|
-
export declare class HttpError extends
|
12
|
+
export declare class HttpError extends Managed {
|
13
13
|
readonly message: string;
|
14
14
|
readonly statusCode: number;
|
15
15
|
readonly level: TApplicationResponse;
|
package/lib/app/error.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/app/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/app/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC,qBAAa,YAAa,SAAQ,OAAO;IACvC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBAE1B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IASzC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,kBAAkB;CAa3B;AAED,qBAAa,SAAU,SAAQ,OAAO;IACpC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,oBAAoB,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;gBAER,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,iBAAiB,CAAC;QAC/B,KAAK,CAAC,EAAE,oBAAoB,CAAC;QAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAUD,OAAO,CAAC,MAAM;CAKf"}
|
package/lib/app/error.js
CHANGED
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.HttpError = exports.ErrorHandler = void 0;
|
7
7
|
var _contracts = require("../contracts");
|
8
8
|
var _utils = require("../utils");
|
9
|
-
var
|
9
|
+
var _managed = _interopRequireDefault(require("./classes/managed"));
|
10
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
-
class ErrorHandler extends
|
11
|
+
class ErrorHandler extends _managed.default {
|
12
12
|
message;
|
13
13
|
error;
|
14
14
|
caller;
|
@@ -42,7 +42,7 @@ class ErrorHandler extends _core.default {
|
|
42
42
|
}
|
43
43
|
}
|
44
44
|
exports.ErrorHandler = ErrorHandler;
|
45
|
-
class HttpError extends
|
45
|
+
class HttpError extends _managed.default {
|
46
46
|
message;
|
47
47
|
statusCode;
|
48
48
|
level;
|
package/lib/app/exodus.d.ts
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
import { Service } from '.';
|
2
|
-
import
|
2
|
+
import Managed from './classes/managed';
|
3
3
|
import CoreSettings from './settings';
|
4
|
-
declare class Exodus extends
|
4
|
+
declare class Exodus extends Managed {
|
5
5
|
private services;
|
6
6
|
constructor(settings: CoreSettings);
|
7
|
-
protected onInit(): void;
|
8
7
|
start(): Promise<void>;
|
8
|
+
private createClusters;
|
9
9
|
register(service: typeof Service): void;
|
10
|
-
initServices
|
10
|
+
private initServices;
|
11
11
|
}
|
12
12
|
export default Exodus;
|
13
13
|
//# sourceMappingURL=exodus.d.ts.map
|
package/lib/app/exodus.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"exodus.d.ts","sourceRoot":"","sources":["../../src/app/exodus.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"exodus.d.ts","sourceRoot":"","sources":["../../src/app/exodus.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,GAAG,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC,OAAO,YAAY,MAAM,YAAY,CAAC;AAUtC,cAAM,MAAO,SAAQ,OAAO;IAC1B,OAAO,CAAC,QAAQ,CAAY;gBAEhB,QAAQ,EAAE,YAAY;IAOrB,KAAK;IAclB,OAAO,CAAC,cAAc;IAef,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO;YAGzB,YAAY;CAgB3B;AACD,eAAe,MAAM,CAAC"}
|
package/lib/app/exodus.js
CHANGED
@@ -4,8 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
var _cluster = _interopRequireDefault(require("cluster"));
|
7
8
|
var _ = require(".");
|
9
|
+
var _managed = _interopRequireDefault(require("./classes/managed"));
|
8
10
|
var _core = _interopRequireDefault(require("./core"));
|
11
|
+
var _event = _interopRequireDefault(require("./classes/event"));
|
9
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
13
|
/**
|
11
14
|
* Classe da aplicação principal
|
@@ -14,29 +17,40 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
14
17
|
* @class Exodus
|
15
18
|
* @extends {Core}
|
16
19
|
*/
|
17
|
-
class Exodus extends
|
20
|
+
class Exodus extends _managed.default {
|
18
21
|
services;
|
19
|
-
|
20
|
-
//* Initialization
|
21
22
|
constructor(settings) {
|
22
|
-
super(
|
23
|
+
super();
|
23
24
|
_core.default.setSettings(settings);
|
24
25
|
this.services = [];
|
25
26
|
}
|
26
|
-
onInit() {
|
27
|
-
// system inited
|
28
|
-
}
|
29
27
|
async start() {
|
28
|
+
_event.default.Start();
|
30
29
|
if (this.isMaster()) {
|
31
30
|
this.log(`Iniciando em Master ${process.pid}`);
|
31
|
+
this.createClusters();
|
32
32
|
}
|
33
33
|
if (this.isCluster()) {
|
34
|
-
this.log(`Iniciando em Cluster ${this.
|
34
|
+
this.log(`Iniciando em Cluster ${this.getWorkId()}`);
|
35
35
|
}
|
36
36
|
this.initServices();
|
37
37
|
}
|
38
38
|
|
39
|
-
|
39
|
+
//# Cluster Management
|
40
|
+
createClusters() {
|
41
|
+
for (let i = 0; i < _core.default.settings.getAppication().clusters; i++) {
|
42
|
+
_cluster.default.fork();
|
43
|
+
}
|
44
|
+
_event.default.registerClusterExitHandle((_code, worker) => {
|
45
|
+
this.log(`Cluster ${worker.process.pid} foi encerrado`, 'warning');
|
46
|
+
if (_core.default.settings.getAppication().clustersRestarts) {
|
47
|
+
this.log(`Reiniciando cluster`, 'warning');
|
48
|
+
_cluster.default.fork();
|
49
|
+
}
|
50
|
+
});
|
51
|
+
}
|
52
|
+
|
53
|
+
//# Service Management
|
40
54
|
register(service) {
|
41
55
|
this.services.push(service.getService());
|
42
56
|
}
|
package/lib/app/index.d.ts
CHANGED
@@ -2,7 +2,7 @@ export { default as Exodus } from './exodus';
|
|
2
2
|
export * from './controller';
|
3
3
|
export * from './error';
|
4
4
|
export { default as Core } from './core';
|
5
|
-
export { default as Service } from './service';
|
6
|
-
export { default as Singleton } from './singleton';
|
5
|
+
export { default as Service } from './classes/service';
|
6
|
+
export { default as Singleton } from './classes/singleton';
|
7
7
|
export { default as CoreSettings } from './settings';
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/app/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/lib/app/index.js
CHANGED
@@ -66,7 +66,7 @@ Object.keys(_error).forEach(function (key) {
|
|
66
66
|
});
|
67
67
|
});
|
68
68
|
var _core = _interopRequireDefault(require("./core"));
|
69
|
-
var _service = _interopRequireDefault(require("./service"));
|
70
|
-
var _singleton = _interopRequireDefault(require("./singleton"));
|
69
|
+
var _service = _interopRequireDefault(require("./classes/service"));
|
70
|
+
var _singleton = _interopRequireDefault(require("./classes/singleton"));
|
71
71
|
var _settings = _interopRequireDefault(require("./settings"));
|
72
72
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
package/lib/app/settings.js
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
import Singleton from '../app/singleton';
|
2
|
-
type NonConstructorKeys<T> = {
|
1
|
+
import Singleton from '../app/classes/singleton';
|
2
|
+
export type NonConstructorKeys<T> = {
|
3
3
|
[P in keyof T]: T[P] extends new () => any ? never : P;
|
4
4
|
}[keyof T];
|
5
|
-
type NonConstructor<T> = Pick<T, NonConstructorKeys<T>>;
|
5
|
+
export type NonConstructor<T> = Pick<T, NonConstructorKeys<T>>;
|
6
6
|
export type StaticSingleton<S extends Singleton> = NonConstructor<typeof Singleton> & {
|
7
7
|
new (): S;
|
8
8
|
};
|
9
|
-
export {};
|
10
9
|
//# sourceMappingURL=singleton.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/contracts/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,
|
1
|
+
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/contracts/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,0BAA0B,CAAC;AAEjD,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;KACjC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,KAAK,GAAG,CAAC;CACvD,CAAC,MAAM,CAAC,CAAC,CAAC;AACX,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,IAAI,cAAc,CAAC,OAAO,SAAS,CAAC,GAAG;IACpF,QAAQ,CAAC,CAAC;CACX,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { NextFunction, Response, Router } from 'express';
|
2
2
|
import * as http from 'http';
|
3
|
-
import Service from '../app/service';
|
3
|
+
import Service from '../app/classes/service';
|
4
4
|
import { THttpResponse } from '../contracts/http';
|
5
5
|
declare class ExpressService extends Service {
|
6
6
|
private server;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/services/express.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,OAAO,OAAO,MAAM,
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/services/express.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,cAAM,cAAe,SAAQ,OAAO;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,UAAU,CAAS;IAEd,oBAAoB;IAG3B,aAAa;IA0BnB,aAAa;IAIb,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY;IAiC3E,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;IAMtE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IAWzC,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;IAUtF,2BAA2B,QACpB,GAAG,OACH,OAAO,OACP,QAAQ,KAEV,YAAY,mBAoBf;IAEI,YAAY,CAAC,MAAM,EAAE,MAAM;IAyBjC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM;CAGrC;AAED,eAAe,cAAc,CAAC"}
|