exodus-framework 2.0.894 → 2.0.896
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 +5 -1
- package/lib/app/classes/service.d.ts.map +1 -1
- package/lib/app/classes/service.js +40 -8
- package/lib/app/exodus.d.ts.map +1 -1
- package/lib/app/exodus.js +9 -3
- 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/file.d.ts +1 -1
- package/lib/services/file.d.ts.map +1 -1
- package/lib/services/file.js +2 -1
- package/lib/services/rabitmq.d.ts +1 -4
- package/lib/services/rabitmq.d.ts.map +1 -1
- package/lib/services/rabitmq.js +12 -13
- package/lib/services/redis.d.ts +0 -4
- package/lib/services/redis.d.ts.map +1 -1
- package/lib/services/redis.js +6 -11
- package/lib/services/security.d.ts +1 -1
- package/lib/services/security.d.ts.map +1 -1
- package/lib/services/security.js +3 -1
- package/lib/services/sequelize.d.ts +0 -4
- package/lib/services/sequelize.d.ts.map +1 -1
- package/lib/services/sequelize.js +6 -10
- package/lib/services/socket.d.ts +2 -2
- package/lib/services/socket.d.ts.map +1 -1
- package/lib/services/socket.js +7 -5
- package/package.json +1 -1
@@ -7,7 +7,9 @@ type TStaticService<S> = NonConstructor<typeof Service> & {
|
|
7
7
|
declare abstract class Service<D = any> extends Managed {
|
8
8
|
static instance: Service;
|
9
9
|
private eCom;
|
10
|
-
protected
|
10
|
+
protected startAttemptDelay: number;
|
11
|
+
protected maxStartAttempts: number;
|
12
|
+
protected currentStartAttempts: number;
|
11
13
|
constructor();
|
12
14
|
static singleton<S extends Service>(this: TStaticService<S>): S;
|
13
15
|
static getService<S extends Service>(this: TStaticService<S>): S;
|
@@ -21,6 +23,8 @@ declare abstract class Service<D = any> extends Managed {
|
|
21
23
|
onStartFail(): Promise<void>;
|
22
24
|
onStartSuccessfully(): Promise<void>;
|
23
25
|
onExodusStarted(): Promise<void>;
|
26
|
+
onExodusMasterStarted(): Promise<void>;
|
27
|
+
onExodusClusterStarted(): Promise<void>;
|
24
28
|
protected sendToServiceCluster(clusterId: number, event: string, data: D): void;
|
25
29
|
protected sendToServiceMaster(event: string, data: D): void;
|
26
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,
|
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"}
|
@@ -21,7 +21,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
21
21
|
class Service extends _managed.default {
|
22
22
|
static instance;
|
23
23
|
eCom;
|
24
|
-
|
24
|
+
startAttemptDelay = 1000; // Tempo de espera para cada tentativa de inicialização
|
25
|
+
maxStartAttempts = 3; // Numero de tentativas máximas para iniciar o serviço
|
26
|
+
currentStartAttempts = 1; // Numero de tentativas atual para iniciar o serviço
|
25
27
|
|
26
28
|
constructor() {
|
27
29
|
super();
|
@@ -118,22 +120,51 @@ class Service extends _managed.default {
|
|
118
120
|
*
|
119
121
|
* @memberof Service
|
120
122
|
*/
|
121
|
-
async onStartAttempt() {
|
123
|
+
async onStartAttempt() {
|
124
|
+
this.currentStartAttempts += 1;
|
125
|
+
}
|
122
126
|
/**
|
123
127
|
* Executado quando a inicialização deste serviço falhar
|
124
128
|
*
|
125
129
|
* @memberof Service
|
126
130
|
*/
|
127
|
-
async onStartFail() {
|
128
|
-
|
129
|
-
|
131
|
+
async onStartFail() {
|
132
|
+
// this.log(`Erro on init this service.`, 'danger');
|
133
|
+
}
|
134
|
+
/**
|
135
|
+
* Quando o serviço inicializar com sucesso
|
136
|
+
*
|
137
|
+
* @memberof Service
|
138
|
+
*/
|
139
|
+
async onStartSuccessfully() {
|
140
|
+
this.currentStartAttempts = 1;
|
141
|
+
}
|
130
142
|
/**
|
131
143
|
* Quando todos os serviços foram carregados
|
132
144
|
* Pode ser usado para eliminar dados utilizados na inicialização
|
133
145
|
*
|
134
146
|
* @memberof Service
|
135
147
|
*/
|
136
|
-
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() {}
|
137
168
|
|
138
169
|
/**
|
139
170
|
* Enviar dados para a instância deste serviço no cluster
|
@@ -147,6 +178,7 @@ class Service extends _managed.default {
|
|
147
178
|
sendToServiceCluster(clusterId, event, data) {
|
148
179
|
this.eCom.sendMessageToCluster(clusterId, event, data);
|
149
180
|
}
|
181
|
+
|
150
182
|
/**
|
151
183
|
* Enviar dados para a instancia deste serviço no master
|
152
184
|
*
|
@@ -191,10 +223,10 @@ class Service extends _managed.default {
|
|
191
223
|
* @memberof Service
|
192
224
|
*/
|
193
225
|
isStartFailed() {
|
194
|
-
return
|
226
|
+
return this.currentStartAttempts > this.maxStartAttempts;
|
195
227
|
}
|
196
228
|
getAttemptDelay() {
|
197
|
-
return this.
|
229
|
+
return this.startAttemptDelay;
|
198
230
|
}
|
199
231
|
}
|
200
232
|
var _default = exports.default = Service;
|
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
@@ -28,12 +28,18 @@ class Exodus extends _managed.default {
|
|
28
28
|
_event.default.Start();
|
29
29
|
if (this.isMaster()) {
|
30
30
|
this.log(`Iniciando em Master ${process.pid}`);
|
31
|
-
await this.initServices()
|
32
|
-
|
31
|
+
if (await this.initServices()) {
|
32
|
+
await Promise.all(this.services.map(async s => {
|
33
|
+
!s.isStartFailed() && (await s.onExodusStarted());
|
34
|
+
}));
|
35
|
+
this.createClusters();
|
36
|
+
}
|
33
37
|
}
|
34
38
|
if (this.isCluster()) {
|
35
39
|
this.log(`Iniciando em Cluster ${this.getWorkId()}`);
|
36
|
-
await this.initServices()
|
40
|
+
if (await this.initServices()) {
|
41
|
+
this.services.forEach(s => s.onExodusStarted());
|
42
|
+
}
|
37
43
|
}
|
38
44
|
}
|
39
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',
|
package/lib/services/file.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import Service from '../app/classes/service';
|
2
2
|
import { TFilePathSettings } from '../contracts/settings';
|
3
3
|
declare class FileService extends Service {
|
4
|
-
|
4
|
+
onStart(): Promise<boolean>;
|
5
5
|
private checkPaths;
|
6
6
|
private cleanTemp;
|
7
7
|
save(filename: string, destiny: keyof TFilePathSettings): Promise<string | boolean>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/services/file.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAK7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,cAAM,WAAY,SAAQ,OAAO;
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/services/file.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAK7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,cAAM,WAAY,SAAQ,OAAO;IAClB,OAAO;YAKN,UAAU;YAKV,SAAS;IASjB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB;IAavD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB;IAW/D,SAAS,CAAC,MAAM,EAAE,MAAM,iBAAiB,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI;CAIxE;AACD,eAAe,WAAW,CAAC"}
|
package/lib/services/file.js
CHANGED
@@ -13,8 +13,9 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
13
13
|
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; }
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
15
15
|
class FileService extends _service.default {
|
16
|
-
async
|
16
|
+
async onStart() {
|
17
17
|
await Promise.all([this.checkPaths(), this.cleanTemp()]);
|
18
|
+
return true;
|
18
19
|
}
|
19
20
|
async checkPaths() {
|
20
21
|
for (const path of Object.values(_app.Core.settings.getAppication().filePaths)) {
|
@@ -10,13 +10,10 @@ declare class RabbitMQService extends Service {
|
|
10
10
|
private queueName;
|
11
11
|
private isReconnecting;
|
12
12
|
private isConnected;
|
13
|
-
private connectionRetries;
|
14
|
-
private connectionMaxRetries;
|
15
13
|
onServiceClusterInit(): Promise<void>;
|
16
14
|
onStartCluster(): Promise<boolean>;
|
17
|
-
|
15
|
+
onExodusClusterStarted(): Promise<void>;
|
18
16
|
onStartFail(): Promise<void>;
|
19
|
-
isStartFailed(): boolean;
|
20
17
|
connect(): Promise<boolean>;
|
21
18
|
registerHandles(): Promise<void>;
|
22
19
|
private setupErrorHandles;
|
@@ -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
@@ -27,12 +27,14 @@ class RabbitMQService extends _service.default {
|
|
27
27
|
queueName;
|
28
28
|
isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
|
29
29
|
isConnected = false; // Flag para controlar o estado da conexão
|
30
|
-
connectionRetries = 1; // quantidade de tentativas de reconexão
|
31
|
-
connectionMaxRetries = 3; // quantidade de tentativas de reconexão
|
32
30
|
|
33
31
|
async onServiceClusterInit() {
|
32
|
+
await super.onServiceClusterInit();
|
34
33
|
if (!this.mainRouter) throw new Error('Need router'); //!sem router
|
35
34
|
|
35
|
+
//Start params
|
36
|
+
this.startAttemptDelay = 5 * 1000;
|
37
|
+
this.maxStartAttempts = 3;
|
36
38
|
this.exchangeName = _app.Core.settings.getMessaging().exchanges.main;
|
37
39
|
this.queueName = _app.Core.settings.getAppication().appId;
|
38
40
|
this.eventCustomListeners = new Map();
|
@@ -40,24 +42,25 @@ class RabbitMQService extends _service.default {
|
|
40
42
|
..._messaging.default,
|
41
43
|
...this.mainRouter
|
42
44
|
}; // # Register native router
|
43
|
-
this.attemptDelay = 5 * 1000;
|
44
45
|
}
|
45
46
|
async onStartCluster() {
|
47
|
+
await super.onStartCluster();
|
46
48
|
return this.connect();
|
47
49
|
}
|
48
|
-
async
|
49
|
-
|
50
|
+
async onExodusClusterStarted() {
|
51
|
+
await super.onExodusClusterStarted();
|
52
|
+
await this.channel.consume(this.queueName, this.consumeFromQueue.bind(this), {
|
53
|
+
noAck: false
|
54
|
+
});
|
50
55
|
}
|
51
56
|
async onStartFail() {
|
57
|
+
await super.onStartFail();
|
52
58
|
this.log(`Not possible to connect RabitMQ`, 'danger');
|
53
59
|
}
|
54
|
-
isStartFailed() {
|
55
|
-
return this.connectionRetries > this.connectionMaxRetries;
|
56
|
-
}
|
57
60
|
async connect() {
|
58
61
|
if (this.isConnected) return true;
|
59
62
|
if (this.isReconnecting) return false;
|
60
|
-
this.log(`⌛️ Connecting to Rabbit-MQ Server: ${this.
|
63
|
+
this.log(`⌛️ Connecting to Rabbit-MQ Server: ${this.currentStartAttempts}/${this.maxStartAttempts}`);
|
61
64
|
this.isReconnecting = true;
|
62
65
|
try {
|
63
66
|
const query = `amqp://${_app.Core.settings.getMessaging().user}:${_app.Core.settings.getMessaging().pass}@${_app.Core.settings.getMessaging().host}:5672`;
|
@@ -72,7 +75,6 @@ class RabbitMQService extends _service.default {
|
|
72
75
|
});
|
73
76
|
this.isConnected = true;
|
74
77
|
this.isReconnecting = false;
|
75
|
-
this.connectionRetries = 0;
|
76
78
|
this.setupErrorHandles();
|
77
79
|
await this.registerHandles();
|
78
80
|
this.log(`✅ Rabbit MQ Connection is ready`);
|
@@ -87,9 +89,6 @@ class RabbitMQService extends _service.default {
|
|
87
89
|
for (const topic of Object.keys(this.mainRouter)) {
|
88
90
|
await this.channel.bindQueue(this.queueName, this.exchangeName, topic);
|
89
91
|
}
|
90
|
-
await this.channel.consume(this.queueName, this.consumeFromQueue.bind(this), {
|
91
|
-
noAck: false
|
92
|
-
});
|
93
92
|
}
|
94
93
|
setupErrorHandles() {
|
95
94
|
this.channel.on('error', err => {
|
package/lib/services/redis.d.ts
CHANGED
@@ -4,13 +4,9 @@ declare class RedisService extends Service {
|
|
4
4
|
private client;
|
5
5
|
private isReconnecting;
|
6
6
|
private isConnected;
|
7
|
-
private connectionRetries;
|
8
|
-
private connectionMaxRetries;
|
9
7
|
onServiceInit(): Promise<void>;
|
10
8
|
onStart(): Promise<boolean>;
|
11
|
-
onStartAttempt(): Promise<void>;
|
12
9
|
onStartFail(): Promise<void>;
|
13
|
-
isStartFailed(): boolean;
|
14
10
|
private connect;
|
15
11
|
private setupErrorHandles;
|
16
12
|
setValue(key: string, value: string): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/services/redis.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAUlD,cAAM,YAAa,SAAQ,OAAO;IAChC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/services/redis.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAUlD,cAAM,YAAa,SAAQ,OAAO;IAChC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEf,aAAa;IAOb,OAAO;IAMP,WAAW;YAMV,OAAO;IA2BrB,OAAO,CAAC,iBAAiB;IAQnB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGtC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM;CAGlC;AAED,eAAe,YAAY,CAAC"}
|
package/lib/services/redis.js
CHANGED
@@ -21,28 +21,24 @@ class RedisService extends _service.default {
|
|
21
21
|
client;
|
22
22
|
isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
|
23
23
|
isConnected = false; // Flag para controlar o estado da conexão
|
24
|
-
connectionRetries = 1; // quantidade de tentativas de reconexão
|
25
|
-
connectionMaxRetries = 3; // quantidade de tentativas de reconexão
|
26
24
|
|
27
25
|
async onServiceInit() {
|
28
|
-
|
26
|
+
await super.onServiceInit();
|
27
|
+
this.startAttemptDelay = 5 * 1000;
|
28
|
+
this.maxStartAttempts = 3;
|
29
29
|
}
|
30
30
|
async onStart() {
|
31
|
+
await super.onStart();
|
31
32
|
return this.connect();
|
32
33
|
}
|
33
|
-
async onStartAttempt() {
|
34
|
-
this.connectionRetries += 1;
|
35
|
-
}
|
36
34
|
async onStartFail() {
|
35
|
+
await super.onStartFail();
|
37
36
|
this.log(`Not possible to connect Redis`, 'danger');
|
38
37
|
}
|
39
|
-
isStartFailed() {
|
40
|
-
return this.connectionRetries > this.connectionMaxRetries;
|
41
|
-
}
|
42
38
|
async connect() {
|
43
39
|
if (this.isConnected) return true;
|
44
40
|
if (this.isReconnecting) return false;
|
45
|
-
this.log(`⌛️ Connecting to Redis Server: ${this.
|
41
|
+
this.log(`⌛️ Connecting to Redis Server: ${this.currentStartAttempts}/${this.maxStartAttempts}`);
|
46
42
|
this.isReconnecting = true;
|
47
43
|
try {
|
48
44
|
const queryConnect = `redis://${_app.Core.settings.getCache().host}:${_app.Core.settings.getCache().port}`;
|
@@ -54,7 +50,6 @@ class RedisService extends _service.default {
|
|
54
50
|
await this.client.connect();
|
55
51
|
this.isConnected = true;
|
56
52
|
this.isReconnecting = false;
|
57
|
-
this.connectionRetries = 0;
|
58
53
|
this.setupErrorHandles();
|
59
54
|
this.log(`✅ Redis Connection is ready`);
|
60
55
|
return true;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/services/security.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,GAAG,EAAO,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAQ,OAAO,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,cAAM,eAAgB,SAAQ,OAAO;IACnC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,gBAAgB,CAAU;
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/services/security.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,GAAG,EAAO,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAQ,OAAO,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,cAAM,eAAgB,SAAQ,OAAO;IACnC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,gBAAgB,CAAU;IAErB,OAAO;IAWpB,OAAO,CAAC,UAAU;YAMJ,cAAc;YAad,aAAa;IAMd,cAAc;;;;IASd,oBAAoB;IAUpB,YAAY,CAAC,IAAI,EAAE,MAAM;IAS/B,aAAa;IAQb,YAAY;IAQZ,mBAAmB;IASb,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG;IAyB3C,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;IAkBhF,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG;IAyBzC,eAAe,CAAC,CAAC,GAAG,GAAG,EAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,GAAG,CAAC,GAAG,GACjB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAiBjD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAoBtD,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK;CAgBhE;AAED,eAAe,eAAe,CAAC"}
|
package/lib/services/security.js
CHANGED
@@ -16,11 +16,13 @@ class SecurityService extends _app.Service {
|
|
16
16
|
privateKey;
|
17
17
|
publicKey;
|
18
18
|
servicePublicKey;
|
19
|
-
async
|
19
|
+
async onStart() {
|
20
|
+
await super.onStart();
|
20
21
|
this.checkPaths();
|
21
22
|
await this.loadPrivateKey();
|
22
23
|
await this.loadPublicKey();
|
23
24
|
await this.loadServicePublicKey();
|
25
|
+
return true;
|
24
26
|
}
|
25
27
|
checkPaths() {
|
26
28
|
!fs.existsSync(_app.Core.settings.getAuthentication().certPath) && fs.mkdirSync(_app.Core.settings.getAuthentication().certPath, {
|
@@ -10,16 +10,12 @@ declare class SequelizeService extends Service {
|
|
10
10
|
connections: Map<string, Sequelize>;
|
11
11
|
initializedModels: Map<string, ModelStatic<any>>;
|
12
12
|
relations: Map<string, EnvDBHost>;
|
13
|
-
private connectionRetries;
|
14
|
-
private connectionMaxRetries;
|
15
13
|
private isReconnecting;
|
16
14
|
private isMasterConnected;
|
17
15
|
private isServiceConnected;
|
18
16
|
onServiceInit(): Promise<void>;
|
19
17
|
onStart(): Promise<boolean>;
|
20
|
-
onStartAttempt(): Promise<void>;
|
21
18
|
onStartFail(): Promise<void>;
|
22
|
-
isStartFailed(): boolean;
|
23
19
|
connectDatabases(): Promise<boolean>;
|
24
20
|
getDB(tenantId: string): Promise<false | Sequelize>;
|
25
21
|
createDB(hostUuid: string, name: string): Promise<boolean>;
|
@@ -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,
|
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;IAiBb,OAAO;IAMP,WAAW;IAMlB,gBAAgB;IA+BhB,KAAK,CAAC,QAAQ,EAAE,MAAM;IActB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA6BvC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAqBpC,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;QACzB,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;IA4BK,WAAW,CAAC,QAAQ,EAAE,MAAM;IAe5B,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAC,KAAK,CAAC,EAC1C,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAW1B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE;CAGxD;AAED,eAAe,gBAAgB,CAAC"}
|
@@ -27,14 +27,13 @@ class SequelizeService extends _service.default {
|
|
27
27
|
connections;
|
28
28
|
initializedModels;
|
29
29
|
relations;
|
30
|
-
connectionRetries = 1; // quantidade de tentativas de reconexão
|
31
|
-
connectionMaxRetries = 3; // quantidade de tentativas de reconexão
|
32
30
|
isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
|
33
31
|
isMasterConnected = false; // Flag para controlar o estado da conexão
|
34
32
|
isServiceConnected = false; // Flag para controlar o estado da conexão
|
35
33
|
|
36
34
|
//# Initialization
|
37
35
|
async onServiceInit() {
|
36
|
+
await super.onServiceInit();
|
38
37
|
if (!this.models) throw new Error('Models are requireds! Call registerModels(modelsArray)');
|
39
38
|
this.serviceDB = _database.serviceDB;
|
40
39
|
this.masterDB = _database.masterDB;
|
@@ -42,24 +41,21 @@ class SequelizeService extends _service.default {
|
|
42
41
|
this.initializedModels = new Map();
|
43
42
|
this.relations = new Map();
|
44
43
|
this.models = [...this.models, ..._models.NativeModels];
|
45
|
-
this.
|
44
|
+
this.startAttemptDelay = 5 * 1000;
|
45
|
+
this.maxStartAttempts = 3;
|
46
46
|
}
|
47
47
|
async onStart() {
|
48
|
+
await super.onStart();
|
48
49
|
return this.connectDatabases();
|
49
50
|
}
|
50
|
-
async onStartAttempt() {
|
51
|
-
this.connectionRetries += 1;
|
52
|
-
}
|
53
51
|
async onStartFail() {
|
52
|
+
await super.onStartFail();
|
54
53
|
this.log(`Not possible to connect database`, 'danger');
|
55
54
|
}
|
56
|
-
isStartFailed() {
|
57
|
-
return this.connectionRetries > this.connectionMaxRetries;
|
58
|
-
}
|
59
55
|
async connectDatabases() {
|
60
56
|
if (this.isMasterConnected && this.isServiceConnected) return true;
|
61
57
|
if (this.isReconnecting) return false;
|
62
|
-
this.log(`⌛️ Connecting Sequelize to database: ${this.
|
58
|
+
this.log(`⌛️ Connecting Sequelize to database: ${this.currentStartAttempts}/${this.maxStartAttempts}`);
|
63
59
|
try {
|
64
60
|
if (!this.isMasterConnected) {
|
65
61
|
await this.masterDB.sync({
|
package/lib/services/socket.d.ts
CHANGED
@@ -9,8 +9,8 @@ declare class SocketIOService extends Service {
|
|
9
9
|
private mainRouter;
|
10
10
|
private eventhandlers;
|
11
11
|
private clientHandlers;
|
12
|
-
|
13
|
-
|
12
|
+
onServiceClusterInit(): Promise<void>;
|
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;
|
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
@@ -24,21 +24,23 @@ class SocketIOService extends _service.default {
|
|
24
24
|
mainRouter;
|
25
25
|
eventhandlers;
|
26
26
|
clientHandlers = [];
|
27
|
-
|
27
|
+
async onServiceClusterInit() {
|
28
|
+
await super.onServiceClusterInit();
|
29
|
+
if (!this.mainRouter) throw new Error('Need router'); //!sem router
|
30
|
+
|
28
31
|
this.eventhandlers = new Map();
|
29
32
|
}
|
30
|
-
async
|
31
|
-
|
33
|
+
async onExodusClusterStarted() {
|
34
|
+
await super.onExodusClusterStarted();
|
35
|
+
//! este depende de ExpressService para iniciar, por isso está aqui
|
32
36
|
|
33
37
|
try {
|
34
38
|
this.createSocket(_express.default.getService().getHttpServer());
|
35
39
|
await this.registerHandlers();
|
36
40
|
this.server.on('connection', this.onConnection.bind(this));
|
37
41
|
this.log('✅ Socket server created');
|
38
|
-
return true;
|
39
42
|
} catch (error) {
|
40
43
|
(0, _utils.logger)().error(error, `Not connected to SocketIO`);
|
41
|
-
return false;
|
42
44
|
}
|
43
45
|
}
|
44
46
|
async onConnection(socket) {
|