exodus-framework 2.0.895 → 2.0.897
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/service.d.ts +2 -0
- package/lib/app/classes/service.d.ts.map +1 -1
- package/lib/app/classes/service.js +21 -2
- package/lib/app/exodus.d.ts.map +1 -1
- package/lib/app/exodus.js +6 -1
- package/lib/services/express.d.ts +2 -0
- package/lib/services/express.d.ts.map +1 -1
- package/lib/services/express.js +35 -31
- package/lib/services/rabitmq.d.ts +1 -0
- package/lib/services/rabitmq.d.ts.map +1 -1
- package/lib/services/rabitmq.js +9 -3
- package/lib/services/sequelize.d.ts +2 -0
- package/lib/services/sequelize.d.ts.map +1 -1
- package/lib/services/sequelize.js +17 -1
- package/lib/services/socket.d.ts +1 -1
- package/lib/services/socket.d.ts.map +1 -1
- package/lib/services/socket.js +5 -5
- package/package.json +1 -1
@@ -23,6 +23,8 @@ declare abstract class Service<D = any> extends Managed {
|
|
23
23
|
onStartFail(): Promise<void>;
|
24
24
|
onStartSuccessfully(): Promise<void>;
|
25
25
|
onExodusStarted(): Promise<void>;
|
26
|
+
onExodusMasterStarted(): Promise<void>;
|
27
|
+
onExodusClusterStarted(): Promise<void>;
|
26
28
|
protected sendToServiceCluster(clusterId: number, event: string, data: D): void;
|
27
29
|
protected sendToServiceMaster(event: string, data: D): void;
|
28
30
|
protected onServiceMasterReceived(_worker: Worker, _eventKey: string, _data: any): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/app/classes/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,KAAK,cAAc,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG;IACxD,QAAQ,CAAC,CAAC;CACX,CAAC;AAWF,uBAAe,OAAO,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,OAAO;IAC7C,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,IAAI,CAA6B;IACzC,SAAS,CAAC,iBAAiB,SAAQ;IACnC,SAAS,CAAC,gBAAgB,SAAK;IAC/B,SAAS,CAAC,oBAAoB,SAAK;;IAgBnC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAEjC,CAAC;IAU3B,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAY/C,aAAa;cAyBV,mBAAmB;cASnB,oBAAoB;IAYvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAW3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAGjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAQlC,cAAc;IAQd,WAAW;IAQX,mBAAmB;IASnB,eAAe;
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/app/classes/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,KAAK,cAAc,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG;IACxD,QAAQ,CAAC,CAAC;CACX,CAAC;AAWF,uBAAe,OAAO,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,OAAO;IAC7C,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,IAAI,CAA6B;IACzC,SAAS,CAAC,iBAAiB,SAAQ;IACnC,SAAS,CAAC,gBAAgB,SAAK;IAC/B,SAAS,CAAC,oBAAoB,SAAK;;IAgBnC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAEjC,CAAC;IAU3B,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAY/C,aAAa;cAyBV,mBAAmB;cASnB,oBAAoB;IAYvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAW3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAGjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAQlC,cAAc;IAQd,WAAW;IAQX,mBAAmB;IASnB,eAAe;IAcf,qBAAqB;IAMrB,sBAAsB;IAWnC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAYxE,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAapD,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAWhF,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAWzD,aAAa,IAAI,OAAO;IAIxB,eAAe;CAGvB;AACD,eAAe,OAAO,CAAC"}
|
@@ -129,7 +129,7 @@ class Service extends _managed.default {
|
|
129
129
|
* @memberof Service
|
130
130
|
*/
|
131
131
|
async onStartFail() {
|
132
|
-
this.log(`Erro on init this service.`, 'danger');
|
132
|
+
// this.log(`Erro on init this service.`, 'danger');
|
133
133
|
}
|
134
134
|
/**
|
135
135
|
* Quando o serviço inicializar com sucesso
|
@@ -145,7 +145,26 @@ class Service extends _managed.default {
|
|
145
145
|
*
|
146
146
|
* @memberof Service
|
147
147
|
*/
|
148
|
-
async onExodusStarted() {
|
148
|
+
async onExodusStarted() {
|
149
|
+
if (this.isMaster()) {
|
150
|
+
await this.onExodusMasterStarted();
|
151
|
+
}
|
152
|
+
if (this.isCluster()) {
|
153
|
+
await this.onExodusClusterStarted();
|
154
|
+
}
|
155
|
+
}
|
156
|
+
/**
|
157
|
+
* Mesmo que onExodusStarted mas no master
|
158
|
+
*
|
159
|
+
* @memberof Service
|
160
|
+
*/
|
161
|
+
async onExodusMasterStarted() {}
|
162
|
+
/**
|
163
|
+
* Mesmo que onExodusStarted mas no cluster
|
164
|
+
*
|
165
|
+
* @memberof Service
|
166
|
+
*/
|
167
|
+
async onExodusClusterStarted() {}
|
149
168
|
|
150
169
|
/**
|
151
170
|
* Enviar dados para a instância deste serviço no cluster
|
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":"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;
|
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;IAwBlB,OAAO,CAAC,cAAc;IAef,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO;YAGzB,YAAY;YAiBZ,YAAY;CAoB3B;AACD,eAAe,MAAM,CAAC"}
|
package/lib/app/exodus.js
CHANGED
@@ -29,12 +29,17 @@ class Exodus extends _managed.default {
|
|
29
29
|
if (this.isMaster()) {
|
30
30
|
this.log(`Iniciando em Master ${process.pid}`);
|
31
31
|
if (await this.initServices()) {
|
32
|
+
await Promise.all(this.services.map(async s => {
|
33
|
+
!s.isStartFailed() && (await s.onExodusStarted());
|
34
|
+
}));
|
32
35
|
this.createClusters();
|
33
36
|
}
|
34
37
|
}
|
35
38
|
if (this.isCluster()) {
|
36
39
|
this.log(`Iniciando em Cluster ${this.getWorkId()}`);
|
37
|
-
await this.initServices()
|
40
|
+
if (await this.initServices()) {
|
41
|
+
this.services.forEach(s => s.onExodusStarted());
|
42
|
+
}
|
38
43
|
}
|
39
44
|
}
|
40
45
|
|
@@ -5,7 +5,9 @@ import { THttpResponse } from '../contracts/http';
|
|
5
5
|
declare class ExpressService extends Service {
|
6
6
|
private server;
|
7
7
|
private mainRouter;
|
8
|
+
onServiceClusterInit(): Promise<void>;
|
8
9
|
onStartCluster(): Promise<boolean>;
|
10
|
+
onExodusClusterStarted(): Promise<void>;
|
9
11
|
getHttpServer(): http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
|
10
12
|
sendResponse(objResponse: THttpResponse, res: Response, next?: NextFunction): void;
|
11
13
|
responseTypeMiddleware(req: Request, res: Response, next: NextFunction): void;
|
@@ -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,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;IAGd,cAAc;
|
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;IAGd,oBAAoB;IAIpB,cAAc;IAoBd,sBAAsB;IAS5B,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,QAC3B,GAAG,OACH,OAAO,OACP,QAAQ,KAEV,YAAY,mBAoBf;IAEW,YAAY,CAAC,MAAM,EAAE,MAAM;IAyBxC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM;CAGrC;AAED,eAAe,cAAc,CAAC"}
|
package/lib/services/express.js
CHANGED
@@ -24,37 +24,41 @@ class ExpressService extends _service.default {
|
|
24
24
|
mainRouter;
|
25
25
|
|
26
26
|
//!Deve ser iniciado no cluster, pois no master causa erro de port bind
|
27
|
+
async onServiceClusterInit() {
|
28
|
+
await super.onServiceClusterInit();
|
29
|
+
if (!this.mainRouter) throw new Error('Need router'); //!sem router
|
30
|
+
}
|
27
31
|
async onStartCluster() {
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
});
|
32
|
+
await super.onStartCluster();
|
33
|
+
const expss = (0, _express.default)();
|
34
|
+
this.server = http.createServer(expss);
|
35
|
+
expss.use('/public', _express.default.static(_core.default.settings.getHttp().publicPath));
|
36
|
+
expss.use((0, _expressRequestsLogger.default)({
|
37
|
+
logger: (0, _logger.default)()
|
38
|
+
}));
|
39
|
+
expss.set('query parser', str => _qs.default.parse(str));
|
40
|
+
expss.use(this.responseTypeMiddleware.bind(this));
|
41
|
+
expss.use(_express.default.json({
|
42
|
+
limit: '10mb'
|
43
|
+
}));
|
44
|
+
expss.use(_express.default.urlencoded({
|
45
|
+
extended: true,
|
46
|
+
limit: '10mb'
|
47
|
+
}));
|
48
|
+
expss.use((0, _cors.default)({
|
49
|
+
origin: '*'
|
50
|
+
}));
|
51
|
+
expss.use(this.mainRouter);
|
52
|
+
expss.use(this.handleAuthorizationFailure.bind(this));
|
53
|
+
expss.use(this.handleNotFoud.bind(this));
|
54
|
+
expss.use(this.handleRequestProcessFailure.bind(this));
|
55
|
+
return true;
|
56
|
+
}
|
57
|
+
async onExodusClusterStarted() {
|
58
|
+
await super.onExodusClusterStarted();
|
59
|
+
this.server.listen(_core.default.settings.getAppication().port, () => {
|
60
|
+
(0, _logger.default)().info(`servidor iniciado na porta: ${_core.default.settings.getAppication().port}`);
|
61
|
+
this.log(`🌍 Http Server Listering On: ${_core.default.settings.getAppication().port}`, 'success');
|
58
62
|
});
|
59
63
|
}
|
60
64
|
getHttpServer() {
|
@@ -96,7 +100,7 @@ class ExpressService extends _service.default {
|
|
96
100
|
next();
|
97
101
|
}
|
98
102
|
|
99
|
-
//*
|
103
|
+
//* Handler errors
|
100
104
|
handleNotFoud(req, res) {
|
101
105
|
this.sendResponse({
|
102
106
|
message: 'Endereço não encontrado',
|
@@ -12,6 +12,7 @@ declare class RabbitMQService extends Service {
|
|
12
12
|
private isConnected;
|
13
13
|
onServiceClusterInit(): Promise<void>;
|
14
14
|
onStartCluster(): Promise<boolean>;
|
15
|
+
onExodusClusterStarted(): Promise<void>;
|
15
16
|
onStartFail(): Promise<void>;
|
16
17
|
connect(): Promise<boolean>;
|
17
18
|
registerHandles(): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAUtB,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,oBAAoB,CAA0D;IAEtF,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;
|
1
|
+
{"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAUtB,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,oBAAoB,CAA0D;IAEtF,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEf,oBAAoB;IAcpB,cAAc;IAMd,sBAAsB;IAMtB,WAAW;IAKX,OAAO;IA+BP,eAAe;IAM5B,OAAO,CAAC,iBAAiB;IAYnB,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAoBzF,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IA2BjD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,wBAAwB;IAI/C,aAAa,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACvD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAY9B,cAAc,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAW7D,YAAY,CACjB,CAAC,SAAS,MAAM,oBAAoB,EACpC,CAAC,SAAS,MAAM,oBAAoB,EACpC,IAAI,EAAE;QACN,IAAI,EAAE;YAAE,KAAK,EAAE,CAAC,CAAC;YAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAA;SAAE,CAAC;QAClD,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,SAAS,EAAE,MAAM,IAAI,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;CAkBF;AAED,eAAe,eAAe,CAAC"}
|
package/lib/services/rabitmq.js
CHANGED
@@ -29,6 +29,7 @@ class RabbitMQService extends _service.default {
|
|
29
29
|
isConnected = false; // Flag para controlar o estado da conexão
|
30
30
|
|
31
31
|
async onServiceClusterInit() {
|
32
|
+
await super.onServiceClusterInit();
|
32
33
|
if (!this.mainRouter) throw new Error('Need router'); //!sem router
|
33
34
|
|
34
35
|
//Start params
|
@@ -43,9 +44,17 @@ class RabbitMQService extends _service.default {
|
|
43
44
|
}; // # Register native router
|
44
45
|
}
|
45
46
|
async onStartCluster() {
|
47
|
+
await super.onStartCluster();
|
46
48
|
return this.connect();
|
47
49
|
}
|
50
|
+
async onExodusClusterStarted() {
|
51
|
+
await super.onExodusClusterStarted();
|
52
|
+
await this.channel.consume(this.queueName, this.consumeFromQueue.bind(this), {
|
53
|
+
noAck: false
|
54
|
+
});
|
55
|
+
}
|
48
56
|
async onStartFail() {
|
57
|
+
await super.onStartFail();
|
49
58
|
this.log(`Not possible to connect RabitMQ`, 'danger');
|
50
59
|
}
|
51
60
|
async connect() {
|
@@ -80,9 +89,6 @@ class RabbitMQService extends _service.default {
|
|
80
89
|
for (const topic of Object.keys(this.mainRouter)) {
|
81
90
|
await this.channel.bindQueue(this.queueName, this.exchangeName, topic);
|
82
91
|
}
|
83
|
-
await this.channel.consume(this.queueName, this.consumeFromQueue.bind(this), {
|
84
|
-
noAck: false
|
85
|
-
});
|
86
92
|
}
|
87
93
|
setupErrorHandles() {
|
88
94
|
this.channel.on('error', err => {
|
@@ -9,6 +9,7 @@ declare class SequelizeService extends Service {
|
|
9
9
|
models: StaticServiceModel<any>[];
|
10
10
|
connections: Map<string, Sequelize>;
|
11
11
|
initializedModels: Map<string, ModelStatic<any>>;
|
12
|
+
initializingdModels: Map<string, boolean>;
|
12
13
|
relations: Map<string, EnvDBHost>;
|
13
14
|
private isReconnecting;
|
14
15
|
private isMasterConnected;
|
@@ -36,6 +37,7 @@ declare class SequelizeService extends Service {
|
|
36
37
|
getRelation(tenantId: string): Promise<EnvDBHost>;
|
37
38
|
getModel<M extends ServiceModel<Model>>(model: StaticServiceModel<M>, tenantId: string): Promise<ModelStatic<M>>;
|
38
39
|
static registerModels(models: StaticServiceModel<any>[]): void;
|
40
|
+
initModels(): Promise<void>;
|
39
41
|
}
|
40
42
|
export default SequelizeService;
|
41
43
|
//# sourceMappingURL=sequelize.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../src/services/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAsB,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;AAKpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUlD,cAAM,gBAAiB,SAAQ,OAAO;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAS;IAGtB,aAAa;
|
1
|
+
{"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../src/services/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAsB,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;AAKpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUlD,cAAM,gBAAiB,SAAQ,OAAO;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAS;IAGtB,aAAa;IAkBb,OAAO;IAaP,WAAW;IAMX,gBAAgB;IA+BhB,KAAK,CAAC,QAAQ,EAAE,MAAM;IAe7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA8BhC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAsBpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAiBvC,MAAM,CAAC,QAAQ,EAAE,MAAM;IA6BvB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS;IAkBpE,SAAS,CAAC,QAAQ,EAAE,MAAM;IAK1B,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,SAAI;IAe/B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IA2CpD,cAAc,CAAC,IAAI,EAAE;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB;IA4BY,WAAW,CAAC,QAAQ,EAAE,MAAM;IAe5B,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAC,KAAK,CAAC,EACjD,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;WAWZ,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE;IAGjD,UAAU;CAOxB;AAED,eAAe,gBAAgB,CAAC"}
|
@@ -26,6 +26,7 @@ class SequelizeService extends _service.default {
|
|
26
26
|
models;
|
27
27
|
connections;
|
28
28
|
initializedModels;
|
29
|
+
initializingdModels;
|
29
30
|
relations;
|
30
31
|
isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
|
31
32
|
isMasterConnected = false; // Flag para controlar o estado da conexão
|
@@ -39,6 +40,7 @@ class SequelizeService extends _service.default {
|
|
39
40
|
this.masterDB = _database.masterDB;
|
40
41
|
this.connections = new Map();
|
41
42
|
this.initializedModels = new Map();
|
43
|
+
this.initializingdModels = new Map();
|
42
44
|
this.relations = new Map();
|
43
45
|
this.models = [...this.models, ..._models.NativeModels];
|
44
46
|
this.startAttemptDelay = 5 * 1000;
|
@@ -46,7 +48,13 @@ class SequelizeService extends _service.default {
|
|
46
48
|
}
|
47
49
|
async onStart() {
|
48
50
|
await super.onStart();
|
49
|
-
|
51
|
+
if (await this.connectDatabases()) {
|
52
|
+
this.log(`⌛️ Inicializando models`);
|
53
|
+
await this.initModels();
|
54
|
+
this.log(`✅ Models inicializados`);
|
55
|
+
return true;
|
56
|
+
}
|
57
|
+
return false;
|
50
58
|
}
|
51
59
|
async onStartFail() {
|
52
60
|
await super.onStartFail();
|
@@ -303,5 +311,13 @@ class SequelizeService extends _service.default {
|
|
303
311
|
static registerModels(models) {
|
304
312
|
this.getService().models = models;
|
305
313
|
}
|
314
|
+
async initModels() {
|
315
|
+
const tenants = await _models.EnvDBHost.findAll({
|
316
|
+
attributes: ['envUuid']
|
317
|
+
});
|
318
|
+
for (const model of this.models) {
|
319
|
+
tenants.forEach(async t => await this.getModel(model, t.envUuid));
|
320
|
+
}
|
321
|
+
}
|
306
322
|
}
|
307
323
|
var _default = exports.default = SequelizeService;
|
package/lib/services/socket.d.ts
CHANGED
@@ -10,7 +10,7 @@ declare class SocketIOService extends Service {
|
|
10
10
|
private eventhandlers;
|
11
11
|
private clientHandlers;
|
12
12
|
onServiceClusterInit(): Promise<void>;
|
13
|
-
|
13
|
+
onExodusClusterStarted(): Promise<void>;
|
14
14
|
private onConnection;
|
15
15
|
private bindEvents;
|
16
16
|
createSocket(app: HttpServer, cors?: CorsOptions | CorsOptionsDelegate): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/services/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAMpE,OAAO,mBAAmB,MAAM,qCAAqC,CAAC;AAUtE,cAAM,eAAgB,SAAQ,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,cAAc,CAAsC;IAE/C,oBAAoB;
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/services/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAMpE,OAAO,mBAAmB,MAAM,qCAAqC,CAAC;AAUtE,cAAM,eAAgB,SAAQ,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,cAAc,CAAsC;IAE/C,oBAAoB;IAOpB,sBAAsB;YAcrB,YAAY;IAsC1B,OAAO,CAAC,UAAU;IAgCX,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,GAAE,WAAW,GAAG,mBAAqC;IAM9F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;IAIlD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,mBAAmB,CAAC,EAAE;YAIxD,gBAAgB;CAY/B;AAED,eAAe,eAAe,CAAC"}
|
package/lib/services/socket.js
CHANGED
@@ -26,21 +26,21 @@ class SocketIOService extends _service.default {
|
|
26
26
|
clientHandlers = [];
|
27
27
|
async onServiceClusterInit() {
|
28
28
|
await super.onServiceClusterInit();
|
29
|
+
if (!this.mainRouter) throw new Error('Need router'); //!sem router
|
30
|
+
|
29
31
|
this.eventhandlers = new Map();
|
30
32
|
}
|
31
|
-
async
|
32
|
-
await super.
|
33
|
-
|
33
|
+
async onExodusClusterStarted() {
|
34
|
+
await super.onExodusClusterStarted();
|
35
|
+
//! este depende de ExpressService para iniciar, por isso está aqui
|
34
36
|
|
35
37
|
try {
|
36
38
|
this.createSocket(_express.default.getService().getHttpServer());
|
37
39
|
await this.registerHandlers();
|
38
40
|
this.server.on('connection', this.onConnection.bind(this));
|
39
41
|
this.log('✅ Socket server created');
|
40
|
-
return true;
|
41
42
|
} catch (error) {
|
42
43
|
(0, _utils.logger)().error(error, `Not connected to SocketIO`);
|
43
|
-
return false;
|
44
44
|
}
|
45
45
|
}
|
46
46
|
async onConnection(socket) {
|