exodus-framework 2.0.849 → 2.0.852

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.
Files changed (34) hide show
  1. package/lib/app/classes/broadcast.d.ts +0 -1
  2. package/lib/app/classes/broadcast.d.ts.map +1 -1
  3. package/lib/app/classes/broadcast.js +7 -4
  4. package/lib/app/classes/communication.d.ts +10 -1
  5. package/lib/app/classes/communication.d.ts.map +1 -1
  6. package/lib/app/classes/communication.js +47 -1
  7. package/lib/app/classes/communicationcontext.d.ts +1 -0
  8. package/lib/app/classes/communicationcontext.d.ts.map +1 -0
  9. package/lib/app/classes/communicationcontext.js +1 -0
  10. package/lib/app/classes/event.d.ts +2 -2
  11. package/lib/app/classes/event.d.ts.map +1 -1
  12. package/lib/app/classes/event.js +8 -2
  13. package/lib/app/classes/index.d.ts +10 -0
  14. package/lib/app/classes/index.d.ts.map +1 -0
  15. package/lib/app/classes/index.js +93 -0
  16. package/lib/app/classes/managed.d.ts +1 -20
  17. package/lib/app/classes/managed.d.ts.map +1 -1
  18. package/lib/app/classes/managed.js +54 -141
  19. package/lib/app/classes/socket/handler.d.ts +20 -0
  20. package/lib/app/classes/socket/handler.d.ts.map +1 -0
  21. package/lib/app/classes/socket/handler.js +41 -0
  22. package/lib/app/classes/socket/index.d.ts +2 -0
  23. package/lib/app/classes/socket/index.d.ts.map +1 -0
  24. package/lib/app/classes/socket/index.js +13 -0
  25. package/lib/app/controller.d.ts +5 -5
  26. package/lib/app/controller.d.ts.map +1 -1
  27. package/lib/app/controller.js +7 -7
  28. package/lib/app/index.d.ts +1 -3
  29. package/lib/app/index.d.ts.map +1 -1
  30. package/lib/app/index.js +12 -24
  31. package/lib/services/socket.d.ts +4 -2
  32. package/lib/services/socket.d.ts.map +1 -1
  33. package/lib/services/socket.js +49 -8
  34. package/package.json +1 -1
@@ -5,7 +5,6 @@ declare class Broadcast extends Managed {
5
5
  protected onMasterInit(): void;
6
6
  protected onClusterInit(): void;
7
7
  private masterReceiveMessage;
8
- private clusterMessage;
9
8
  broadcastMessage(message: any): void;
10
9
  sendMessageToCluster(clusterId: number, eventKey: string, data: any): void;
11
10
  sendMessageToMaster(eventKey: string, data: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../../src/app/classes/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,cAAM,SAAU,SAAQ,OAAO;IAC7B,SAAS,CAAC,YAAY,IAAI,IAAI;IAY9B,SAAS,CAAC,aAAa,IAAI,IAAI;IAQ/B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,cAAc;IAIf,gBAAgB,CAAC,OAAO,EAAE,GAAG;IAU7B,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAanE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAWtD,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB;IAGpF,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB;CAGrE;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../../src/app/classes/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAShE,cAAM,SAAU,SAAQ,OAAO;IAC7B,SAAS,CAAC,YAAY,IAAI,IAAI;IAY9B,SAAS,CAAC,aAAa,IAAI,IAAI;IAQ/B,OAAO,CAAC,oBAAoB;IAKrB,gBAAgB,CAAC,OAAO,EAAE,GAAG;IAU7B,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAanE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAWtD,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB;IAGpF,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB;CAGrE;AAED,eAAe,SAAS,CAAC"}
@@ -8,6 +8,12 @@ var _error = require("../error");
8
8
  var _managed = _interopRequireDefault(require("./managed"));
9
9
  var _event = _interopRequireDefault(require("./event"));
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ /**
12
+ * Gerencia a comunicação entre clusters
13
+ *
14
+ * @class Broadcast
15
+ * @extends {Managed}
16
+ */
11
17
  class Broadcast extends _managed.default {
12
18
  onMasterInit() {
13
19
  super.onMasterInit();
@@ -21,15 +27,12 @@ class Broadcast extends _managed.default {
21
27
  }
22
28
  onClusterInit() {
23
29
  super.onClusterInit();
24
- _event.default.registerProcessMessageHandle(message => this.clusterMessage(message));
30
+ _event.default.registerProcessMessageHandle(message => this.onClusterReceiveMessage(message));
25
31
  }
26
32
  masterReceiveMessage(worker, data) {
27
33
  if (!data || !data.data || !data.eventKey) return;
28
34
  this.onMasterReceiveMessage(worker, data);
29
35
  }
30
- clusterMessage(message) {
31
- this.onClusterReceiveMessage(message);
32
- }
33
36
  broadcastMessage(message) {
34
37
  if (this.isCluster()) {
35
38
  return;
@@ -3,7 +3,8 @@ import Broadcast from './broadcast';
3
3
  import { TClusterBroadCastMessage } from '../../contracts/core';
4
4
  import { Worker } from 'cluster';
5
5
  import { eEventCommunication, TMappedEventCommunicationHandlers } from '../../contracts/service';
6
- declare class RestrictEventCommunication<TransportData = any> extends Broadcast {
6
+ import System from './system';
7
+ export declare class RestrictEventCommunication<TransportData = any> extends Broadcast {
7
8
  protected serviceName: string;
8
9
  emitter: EventEmitter;
9
10
  constructor(serviceName: string);
@@ -16,5 +17,13 @@ declare class RestrictEventCommunication<TransportData = any> extends Broadcast
16
17
  on<T extends eEventCommunication>(key: T, handle: TMappedEventCommunicationHandlers[T]): void;
17
18
  off<T extends eEventCommunication>(key: T, handle: TMappedEventCommunicationHandlers[T]): void;
18
19
  }
20
+ export declare class CommunicationContext<D = any> extends System {
21
+ private rECom;
22
+ constructor();
23
+ protected sendToCluster(clusterId: number, event: string, data: D): void;
24
+ protected sendToMaster(event: string, data: D): void;
25
+ protected onMasterReceived(_worker: Worker, _eventKey: string, _data: D): void;
26
+ protected onClusterReceived(_eventKey: string, _data: D): void;
27
+ }
19
28
  export default RestrictEventCommunication;
20
29
  //# sourceMappingURL=communication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"communication.d.ts","sourceRoot":"","sources":["../../../src/app/classes/communication.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAEjG,cAAM,0BAA0B,CAAC,aAAa,GAAG,GAAG,CAAE,SAAQ,SAAS;IAGzD,SAAS,CAAC,WAAW,EAAE,MAAM;IAFzC,OAAO,EAAE,YAAY,CAAC;gBAEA,WAAW,EAAE,MAAM;IAKlC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAI1E,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAM7D,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAMzF,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAQ1E,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAGvF,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAIjE,EAAE,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;IAGtF,GAAG,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;CAG/F;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"communication.d.ts","sourceRoot":"","sources":["../../../src/app/classes/communication.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,MAAM,MAAM,UAAU,CAAC;AAW9B,qBAAa,0BAA0B,CAAC,aAAa,GAAG,GAAG,CAAE,SAAQ,SAAS;IAGhE,SAAS,CAAC,WAAW,EAAE,MAAM;IAFzC,OAAO,EAAE,YAAY,CAAC;gBAEA,WAAW,EAAE,MAAM;IAKlC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAI1E,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAM7D,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAMzF,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAQ1E,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAGvF,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAIjE,EAAE,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;IAGtF,GAAG,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAC,CAAC;CAG/F;AAUD,qBAAa,oBAAoB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,MAAM;IACvD,OAAO,CAAC,KAAK,CAA6B;;IAa1C,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAGjE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAG7C,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAG9E,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAG/D;AAED,eAAe,0BAA0B,CAAC"}
@@ -3,11 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.RestrictEventCommunication = exports.CommunicationContext = void 0;
7
7
  var _events = _interopRequireDefault(require("events"));
8
8
  var _broadcast = _interopRequireDefault(require("./broadcast"));
9
9
  var _service = require("../../contracts/service");
10
+ var _system = _interopRequireDefault(require("./system"));
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ /**
13
+ * Gerência a comunicação restrita à um ID/Classe
14
+ * ! Deve ser instanciada e não extendida
15
+ *
16
+ * @export
17
+ * @class RestrictEventCommunication
18
+ * @extends {Broadcast}
19
+ * @template TransportData
20
+ */
11
21
  class RestrictEventCommunication extends _broadcast.default {
12
22
  emitter;
13
23
  constructor(serviceName) {
@@ -50,4 +60,40 @@ class RestrictEventCommunication extends _broadcast.default {
50
60
  this.emitter.off(key, handle);
51
61
  }
52
62
  }
63
+
64
+ /**
65
+ * Classe base voltada para a comunicação com as instancias em outros clusters
66
+ *
67
+ * @export
68
+ * @class CommunicationContext
69
+ * @extends {System}
70
+ * @template D
71
+ */
72
+ exports.RestrictEventCommunication = RestrictEventCommunication;
73
+ class CommunicationContext extends _system.default {
74
+ rECom;
75
+ constructor() {
76
+ super();
77
+ this.rECom = new RestrictEventCommunication(this.constructor.name);
78
+
79
+ /* Listen */
80
+ this.rECom.on(_service.eEventCommunication.RECEIVED_CLUSTER_MESSAGE, this.onMasterReceived.bind(this));
81
+ this.rECom.on(_service.eEventCommunication.RECEIVED_MASTER_MESSAGE, this.onClusterReceived.bind(this));
82
+ }
83
+
84
+ /* Communication */
85
+ sendToCluster(clusterId, event, data) {
86
+ this.rECom.sendMessageToCluster(clusterId, event, data);
87
+ }
88
+ sendToMaster(event, data) {
89
+ this.rECom.sendMessageToMaster(event, data);
90
+ }
91
+ onMasterReceived(_worker, _eventKey, _data) {
92
+ return;
93
+ }
94
+ onClusterReceived(_eventKey, _data) {
95
+ return;
96
+ }
97
+ }
98
+ exports.CommunicationContext = CommunicationContext;
53
99
  var _default = exports.default = RestrictEventCommunication;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=communicationcontext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communicationcontext.d.ts","sourceRoot":"","sources":["../../../src/app/classes/communicationcontext.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";
@@ -7,7 +7,7 @@ type cbSignal = (signal: NodeJS.Signals) => void;
7
7
  type cbException = (err: Error) => void;
8
8
  type cbRejection = (reason: unknown, promise: Promise<unknown>) => void;
9
9
  type cbMessage = (message: TClusterBroadCastMessage) => void;
10
- declare class EventManagment extends System {
10
+ declare class ProcessEmitterManager extends System {
11
11
  private static workerExitHandles;
12
12
  private static clusterExitHandles;
13
13
  private static processSIGINTHandles;
@@ -26,5 +26,5 @@ declare class EventManagment extends System {
26
26
  static registerProcessMessageHandle(handle: cbMessage): void;
27
27
  static Start(): void;
28
28
  }
29
- export default EventManagment;
29
+ export default ProcessEmitterManager;
30
30
  //# sourceMappingURL=event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/app/classes/event.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AACrE,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAC5C,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjD,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;AACxC,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AACxE,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;AAE7D,cAAM,cAAe,SAAQ,MAAM;IACjC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAgB;IAChD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAgB;IACjD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAkB;IACrD,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAkB;IACtD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAqB;IAC3D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAqB;IAC3D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAuB;IACxD,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAmB;IAEvD,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM;IAG9C,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM;IAG/C,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ;IAGnD,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,QAAQ;IAGpD,MAAM,CAAC,8BAA8B,CAAC,MAAM,EAAE,WAAW;IAGzD,MAAM,CAAC,8BAA8B,CAAC,MAAM,EAAE,WAAW;IAGzD,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,aAAa;IAGtD,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,SAAS;IAIrD,MAAM,CAAC,KAAK;CAmDb;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/app/classes/event.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AACrE,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAC5C,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjD,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;AACxC,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AACxE,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;AAQ7D,cAAM,qBAAsB,SAAQ,MAAM;IACxC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAgB;IAChD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAgB;IACjD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAkB;IACrD,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAkB;IACtD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAqB;IAC3D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAqB;IAC3D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAuB;IACxD,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAmB;IAEvD,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM;IAG9C,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM;IAG/C,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ;IAGnD,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,QAAQ;IAGpD,MAAM,CAAC,8BAA8B,CAAC,MAAM,EAAE,WAAW;IAGzD,MAAM,CAAC,8BAA8B,CAAC,MAAM,EAAE,WAAW;IAGzD,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,aAAa;IAGtD,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,SAAS;IAIrD,MAAM,CAAC,KAAK;CAmDb;AAED,eAAe,qBAAqB,CAAC"}
@@ -7,7 +7,13 @@ exports.default = void 0;
7
7
  var _cluster = _interopRequireDefault(require("cluster"));
8
8
  var _system = _interopRequireDefault(require("./system"));
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- class EventManagment extends _system.default {
10
+ /**
11
+ * Classe responsável pelo gerênciamento de escutas e eventos dos sistema ON/OFF
12
+ *
13
+ * @class ProcessEmitterManager
14
+ * @extends {System}
15
+ */
16
+ class ProcessEmitterManager extends _system.default {
11
17
  static workerExitHandles = [];
12
18
  static clusterExitHandles = [];
13
19
  static processSIGINTHandles = [];
@@ -85,4 +91,4 @@ class EventManagment extends _system.default {
85
91
  });
86
92
  }
87
93
  }
88
- var _default = exports.default = EventManagment;
94
+ var _default = exports.default = ProcessEmitterManager;
@@ -0,0 +1,10 @@
1
+ export { default as Broadcast } from './broadcast';
2
+ export * from './communication';
3
+ export * from './servicemodel';
4
+ export { default as ProcessEmitterManager } from './event';
5
+ export { default as Managed } from './managed';
6
+ export { default as Service } from './service';
7
+ export { default as Singleton } from './singleton';
8
+ export { default as ServiceModel } from './servicemodel';
9
+ export * from './socket';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/classes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,cAAc,UAAU,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ Broadcast: true,
8
+ ServiceModel: true,
9
+ ProcessEmitterManager: true,
10
+ Managed: true,
11
+ Service: true,
12
+ Singleton: true
13
+ };
14
+ Object.defineProperty(exports, "Broadcast", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _broadcast.default;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "Managed", {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _managed.default;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "ProcessEmitterManager", {
27
+ enumerable: true,
28
+ get: function () {
29
+ return _event.default;
30
+ }
31
+ });
32
+ Object.defineProperty(exports, "Service", {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _service.default;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "ServiceModel", {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _servicemodel.default;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "Singleton", {
45
+ enumerable: true,
46
+ get: function () {
47
+ return _singleton.default;
48
+ }
49
+ });
50
+ var _broadcast = _interopRequireDefault(require("./broadcast"));
51
+ var _communication = require("./communication");
52
+ Object.keys(_communication).forEach(function (key) {
53
+ if (key === "default" || key === "__esModule") return;
54
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
55
+ if (key in exports && exports[key] === _communication[key]) return;
56
+ Object.defineProperty(exports, key, {
57
+ enumerable: true,
58
+ get: function () {
59
+ return _communication[key];
60
+ }
61
+ });
62
+ });
63
+ var _servicemodel = _interopRequireWildcard(require("./servicemodel"));
64
+ Object.keys(_servicemodel).forEach(function (key) {
65
+ if (key === "default" || key === "__esModule") return;
66
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
67
+ if (key in exports && exports[key] === _servicemodel[key]) return;
68
+ Object.defineProperty(exports, key, {
69
+ enumerable: true,
70
+ get: function () {
71
+ return _servicemodel[key];
72
+ }
73
+ });
74
+ });
75
+ var _event = _interopRequireDefault(require("./event"));
76
+ var _managed = _interopRequireDefault(require("./managed"));
77
+ var _service = _interopRequireDefault(require("./service"));
78
+ var _singleton = _interopRequireDefault(require("./singleton"));
79
+ var _socket = require("./socket");
80
+ Object.keys(_socket).forEach(function (key) {
81
+ if (key === "default" || key === "__esModule") return;
82
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
83
+ if (key in exports && exports[key] === _socket[key]) return;
84
+ Object.defineProperty(exports, key, {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _socket[key];
88
+ }
89
+ });
90
+ });
91
+ 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); }
92
+ 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; }
93
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -4,26 +4,7 @@ declare abstract class Managed extends System {
4
4
  private _isMaster;
5
5
  private _isCluster;
6
6
  constructor();
7
- private init;
8
- private initProcessHandles;
9
- private exit;
10
- private SIGINT;
11
- private SIGTERM;
12
- private uncaughtException;
13
- private unhandledRejection;
14
- private masterInit;
15
- private masterExit;
16
- private masterSIGINT;
17
- private masterSIGTERM;
18
- private masterUncaughtException;
19
- private masterUnhandledRejection;
20
- private clusterInit;
21
- private clusterDown;
22
- private clusterExit;
23
- private clusterSIGINT;
24
- private clusterSIGTERM;
25
- private clusterUncaughtException;
26
- private clusterUnhandledRejection;
7
+ private bindProcessEventHandlers;
27
8
  protected onInit(): void;
28
9
  protected onClusterInit(): void;
29
10
  protected onMasterInit(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"managed.d.ts","sourceRoot":"","sources":["../../../src/app/classes/managed.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAI9B,uBAAe,OAAQ,SAAQ,MAAM;IACnC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAU;;IAc5B,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,kBAAkB;IAyD1B,OAAO,CAAC,IAAI;IAGZ,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,iBAAiB;IAGzB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,YAAY;IAGpB,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,uBAAuB;IAG/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,WAAW;IAGnB,OAAO,CAAC,WAAW;IAGnB,OAAO,CAAC,WAAW;IAGnB,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,wBAAwB;IAGhC,OAAO,CAAC,yBAAyB;IAKjC,SAAS,CAAC,MAAM;IAChB,SAAS,CAAC,aAAa;IACvB,SAAS,CAAC,YAAY;IAEtB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM;IAG9B,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM;IACrC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM;IACpC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAEvE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAI1C,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAIjD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAKhD,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAI3C,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAIlD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAKjD,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK;IAIzC,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK;IAIhD,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK;IAK/C,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAI3E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAIlF,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAMjF,SAAS,CAAC,QAAQ;IAGlB,SAAS,CAAC,SAAS;IAKnB,SAAS,CAAC,UAAU;IAGpB,SAAS,CAAC,SAAS;IAMnB,SAAS,CAAC,eAAe;CAG1B;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"managed.d.ts","sourceRoot":"","sources":["../../../src/app/classes/managed.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAS9B,uBAAe,OAAQ,SAAQ,MAAM;IACnC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAU;;IAS5B,OAAO,CAAC,wBAAwB;IAWhC,SAAS,CAAC,MAAM;IAYhB,SAAS,CAAC,aAAa;IACvB,SAAS,CAAC,YAAY;IAOtB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM;IAI9B,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM;IAGrC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM;IAGpC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAGvE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAM1C,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAIjD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAMhD,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAM3C,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAIlD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAMjD,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK;IAIzC,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK;IAIhD,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK;IAM/C,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAI3E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAIlF,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAMjF,SAAS,CAAC,QAAQ;IAGlB,SAAS,CAAC,SAAS;IAKnB,SAAS,CAAC,UAAU;IAGpB,SAAS,CAAC,SAAS;IAMnB,SAAS,CAAC,eAAe;CAG1B;AAED,eAAe,OAAO,CAAC"}
@@ -5,162 +5,68 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _cluster = _interopRequireDefault(require("cluster"));
8
- var _system = _interopRequireDefault(require("./system"));
9
- var _event = _interopRequireDefault(require("./event"));
10
8
  var _process = require("process");
9
+ var _event = _interopRequireDefault(require("./event"));
10
+ var _system = _interopRequireDefault(require("./system"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ /**
13
+ * Disponibiliza ações de controle de clusters, incluindo comunicação básica
14
+ *
15
+ * @abstract
16
+ * @class Managed
17
+ * @extends {System}
18
+ */
12
19
  class Managed extends _system.default {
13
20
  _isMaster;
14
21
  _isCluster;
15
22
  constructor() {
16
23
  super();
24
+ this.onInit();
25
+ }
26
+
27
+ //# Common
28
+ bindProcessEventHandlers() {
29
+ _event.default.registerProcessSIGINTHandle(signal => this.onSIGINT(signal));
30
+ _event.default.registerProcessSIGTERMHandle(signal => this.onSIGTERM(signal));
31
+ _event.default.registerProcessExceptionHandle(err => this.onUncaughtException(err));
32
+ _event.default.registerProcessExitHandle(code => this.onExit(code));
33
+ _event.default.registerProcessRejectionHandle((reason, promise) => this.onUnhandledRejection(reason, promise));
34
+ }
35
+
36
+ //# Init
37
+ onInit() {
17
38
  if (_cluster.default.isPrimary) {
18
39
  this._isMaster = true;
19
40
  } else {
20
41
  this._isCluster = true;
21
42
  }
22
- this.init();
43
+ this.bindProcessEventHandlers();
44
+ if (this.isCluster()) this.onClusterInit();
45
+ if (this.isMaster()) this.onMasterInit();
23
46
  }
24
-
25
- //# Common
26
- init() {
27
- this.initProcessHandles();
28
- this.onInit();
29
- if (this.isCluster()) {
30
- this.clusterInit();
31
- }
32
- if (this.isMaster()) {
33
- this.masterInit();
34
- }
35
- }
36
- initProcessHandles() {
37
- _event.default.registerProcessSIGINTHandle(signal => {
38
- this.SIGINT(signal);
39
- if (this.isMaster()) {
40
- this.masterSIGINT(signal);
41
- }
42
- if (this.isCluster()) {
43
- this.clusterSIGINT(signal);
44
- }
45
- });
46
- _event.default.registerProcessSIGTERMHandle(signal => {
47
- this.SIGTERM(signal);
48
- if (this.isMaster()) {
49
- this.masterSIGTERM(signal);
50
- }
51
- if (this.isCluster()) {
52
- this.clusterSIGTERM(signal);
53
- }
54
- });
55
- _event.default.registerProcessExceptionHandle(err => {
56
- this.uncaughtException(err);
57
- if (this.isMaster()) {
58
- this.masterUncaughtException(err);
59
- }
60
- if (this.isCluster()) {
61
- this.clusterUncaughtException(err);
62
- }
63
- });
64
- _event.default.registerProcessRejectionHandle((reason, promise) => {
65
- this.unhandledRejection(reason, promise);
66
- if (this.isMaster()) {
67
- this.masterUnhandledRejection(reason, promise);
68
- }
69
- if (this.isCluster()) {
70
- this.clusterUnhandledRejection(reason, promise);
71
- }
72
- });
73
- _event.default.registerProcessExitHandle(code => {
74
- this.exit(code);
75
- if (this.isMaster()) {
76
- this.masterExit(code);
77
- }
78
- if (this.isCluster()) {
79
- this.clusterExit(code);
80
- }
81
- });
82
- }
83
- exit(code) {
84
- this.onExit(code);
85
- }
86
- SIGINT(signal) {
87
- this.onSIGINT(signal);
88
- }
89
- SIGTERM(signal) {
90
- this.onSIGTERM(signal);
91
- }
92
- uncaughtException(err) {
93
- this.onUncaughtException(err);
94
- }
95
- unhandledRejection(reason, promise) {
96
- this.onUnhandledRejection(reason, promise);
97
- }
98
-
99
- //# Master
100
- masterInit() {
101
- /* const workers = this.getWorkers();
102
- for (const id in workers) {
103
- const worker = workers[id];
104
- if (worker) {
105
- worker.on('exit', (code, signal) => this.clusterDown(code, worker, signal));
106
- }
107
- }
108
- */
109
- _event.default.registerWorkerExitHandle((code, worker, signal) => this.clusterDown(code, worker, signal));
110
- this.onMasterInit();
111
- }
112
- masterExit(code) {
113
- this.onMasterExit(code);
114
- }
115
- masterSIGINT(signal) {
116
- this.onMasterSIGINT(signal);
117
- }
118
- masterSIGTERM(signal) {
119
- this.onMasterSIGTERM(signal);
120
- }
121
- masterUncaughtException(err) {
122
- this.onMasterUncaughtException(err);
123
- }
124
- masterUnhandledRejection(reason, promise) {
125
- this.onMasterUnhandledRejection(reason, promise);
47
+ onClusterInit() {}
48
+ onMasterInit() {
49
+ _event.default.registerWorkerExitHandle((code, worker, signal) => this.onClusterDown(code, worker, signal));
126
50
  }
127
51
 
128
- //# Cluster
129
- clusterInit() {
130
- this.onClusterInit();
131
- }
132
- clusterDown(code, worker, signal) {
133
- this.onClusterDown(code, worker, signal);
134
- }
135
- clusterExit(code) {
136
- this.onClusterExit(code);
137
- }
138
- clusterSIGINT(signal) {
139
- this.clusterSIGINT(signal);
140
- }
141
- clusterSIGTERM(signal) {
142
- this.onClusterSIGTERM(signal);
143
- }
144
- clusterUncaughtException(err) {
145
- this.onClusterUncaughtException(err);
52
+ //# Exit
53
+ onExit(_code) {
54
+ if (this.isMaster()) this.onMasterExit(_code);
55
+ if (this.isCluster()) this.onClusterExit(_code);
146
56
  }
147
- clusterUnhandledRejection(reason, promise) {
148
- this.onClusterUnhandledRejection(reason, promise);
57
+ onClusterExit(_code) {
58
+ (0, _process.exit)(_code);
149
59
  }
150
-
151
- //# Muted
152
- onInit() {}
153
- onClusterInit() {}
154
- onMasterInit() {}
155
- onExit(_code) {
60
+ onMasterExit(_code) {
156
61
  (0, _process.exit)(_code);
157
62
  }
158
- onClusterExit(_code) {}
159
- onMasterExit(_code) {}
160
63
  onClusterDown(_code, _worker, _signal) {}
64
+
65
+ //# SIGINT
161
66
  onSIGINT(_signal) {
162
67
  this.log('Processo encerrado pelo usuário', 'especial');
163
- (0, _process.exit)(0);
68
+ if (this.isMaster()) this.onMasterSIGINT(_signal);
69
+ if (this.isCluster()) this.onClusterSIGINT(_signal);
164
70
  }
165
71
  onClusterSIGINT(_signal) {
166
72
  this.log('Processo encerrado pelo usuário', 'especial');
@@ -170,9 +76,12 @@ class Managed extends _system.default {
170
76
  this.log('Processo encerrado pelo usuário', 'especial');
171
77
  process.exit(0);
172
78
  }
79
+
80
+ //# SIGTERM
173
81
  onSIGTERM(_signal) {
174
82
  this.log('Processo encerrado pelo sistema', 'especial');
175
- process.exit(0);
83
+ if (this.isMaster()) this.onMasterSIGTERM(_signal);
84
+ if (this.isCluster()) this.onClusterSIGTERM(_signal);
176
85
  }
177
86
  onClusterSIGTERM(_signal) {
178
87
  this.log('Processo encerrado pelo sistema', 'especial');
@@ -182,21 +91,25 @@ class Managed extends _system.default {
182
91
  this.log('Processo encerrado pelo sistema', 'especial');
183
92
  process.exit(0);
184
93
  }
94
+
95
+ //# UNCAUGHT EXCEPTION
185
96
  onUncaughtException(_err) {
186
- throw _err;
187
- (0, _process.exit)(1);
97
+ if (this.isMaster()) this.onMasterUncaughtException(_err);
98
+ if (this.isCluster()) this.onClusterUncaughtException(_err);
188
99
  }
189
100
  onClusterUncaughtException(_err) {
101
+ console.error('Excessão desconhecida:', _err);
190
102
  throw _err;
191
- (0, _process.exit)(1);
192
103
  }
193
104
  onMasterUncaughtException(_err) {
105
+ console.error('Excessão desconhecida:', _err);
194
106
  throw _err;
195
- (0, _process.exit)(1);
196
107
  }
108
+
109
+ //# UNHANDLED REJECTION
197
110
  onUnhandledRejection(_reason, _promise) {
198
- console.error('Rejeição não tratada em uma promessa:', _promise, 'Razão:', _reason);
199
- (0, _process.exit)(1);
111
+ if (this.isMaster()) this.onMasterUnhandledRejection(_reason, _promise);
112
+ if (this.isCluster()) this.onClusterUnhandledRejection(_reason, _promise);
200
113
  }
201
114
  onClusterUnhandledRejection(_reason, _promise) {
202
115
  console.error('Rejeição não tratada em uma promessa:', _promise, 'Razão:', _reason);
@@ -0,0 +1,20 @@
1
+ import { TSocket, TSocketEventDataMap } from '../../../contracts';
2
+ import { eExecutionSide } from '../../../contracts/core';
3
+ import { System } from '../../../models';
4
+ import { SocketRequest } from '../../controller';
5
+ declare class SocketEventHandler<K extends keyof TSocketEventDataMap = any> extends System {
6
+ protected event: K;
7
+ protected side: eExecutionSide;
8
+ protected name: string;
9
+ protected active: boolean;
10
+ onInit(): void;
11
+ onConnect(_socket: TSocket): Promise<void> | void;
12
+ onDisconnect(_socket: TSocket): Promise<void> | void;
13
+ onEvent(_request: SocketRequest, ..._args: TSocketEventDataMap[K]): Promise<void> | void;
14
+ getEvent(): K;
15
+ getSide(): eExecutionSide;
16
+ getName(): string;
17
+ getActive(): boolean;
18
+ }
19
+ export default SocketEventHandler;
20
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,cAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,mBAAmB,GAAG,GAAG,CAAE,SAAQ,MAAM;IAChF,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnB,MAAM,IAAI,IAAI;IAOd,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IACjD,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAGpD,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAGxF,QAAQ;IAGR,OAAO;IAGP,OAAO;IAGP,SAAS;CAGjB;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _core = require("../../../contracts/core");
8
+ var _models = require("../../../models");
9
+ class SocketEventHandler extends _models.System {
10
+ event;
11
+ side;
12
+ name;
13
+ active;
14
+ onInit() {
15
+ this.side = _core.eExecutionSide.ANY;
16
+ this.name = this.constructor.name;
17
+ this.active = true;
18
+ }
19
+
20
+ /* Connection */
21
+ onConnect(_socket) {}
22
+ onDisconnect(_socket) {}
23
+
24
+ /* Event Handler */
25
+ onEvent(_request, ..._args) {}
26
+
27
+ //# Getters
28
+ getEvent() {
29
+ return this.event;
30
+ }
31
+ getSide() {
32
+ return this.side;
33
+ }
34
+ getName() {
35
+ return this.name;
36
+ }
37
+ getActive() {
38
+ return this.active;
39
+ }
40
+ }
41
+ var _default = exports.default = SocketEventHandler;
@@ -0,0 +1,2 @@
1
+ export { default as SocketEventHandler } from './handler';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,WAAW,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "SocketEventHandler", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _handler.default;
10
+ }
11
+ });
12
+ var _handler = _interopRequireDefault(require("./handler"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1,17 +1,17 @@
1
1
  import { NextFunction, Response } from 'express';
2
2
  import { IAccount, IServiceRequestor, THttpResponse, TSocket, TSocketEventDataMap, TSocketEventHandle } from '../contracts';
3
- import Managed from './classes/managed';
4
- export declare abstract class HttpController extends Managed {
3
+ import System from './classes/system';
4
+ export declare abstract class HttpController extends System {
5
5
  constructor();
6
6
  protected send<D = any>(objResponse: THttpResponse<D>, res: Response, next?: NextFunction): void;
7
7
  protected validate(data: Record<string, any>): Promise<void>;
8
8
  }
9
- export declare abstract class SocketController extends Managed {
9
+ export declare abstract class SocketController extends System {
10
10
  constructor();
11
11
  protected handlerEventBind<K extends keyof TSocketEventDataMap>(cb: TSocketEventHandle<K>): (req: SocketRequest, data: TSocketEventDataMap[K]) => void;
12
12
  protected bufferToData(data: Buffer): number[];
13
13
  }
14
- export declare class SocketRequest extends Managed {
14
+ export declare class SocketRequest extends System {
15
15
  protected socket: TSocket;
16
16
  protected event: keyof TSocketEventDataMap;
17
17
  readonly auth: {
@@ -31,7 +31,7 @@ export declare class SocketRequest extends Managed {
31
31
  getSocket(): TSocket;
32
32
  protected dataToBuffer(data: any): Buffer;
33
33
  }
34
- export declare abstract class MessagingController extends Managed {
34
+ export declare abstract class MessagingController extends System {
35
35
  constructor();
36
36
  protected bufferToData(data: Buffer): number[];
37
37
  }
@@ -1 +1 @@
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;AASxC,8BAAsB,cAAe,SAAQ,OAAO;;IAelD,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,OAAO;;IAKpD,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,OAAO;;IAKvD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;CAGpC;AAED,eAAe,cAAc,CAAC"}
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,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,MAAM;IAarC,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"}
@@ -5,16 +5,16 @@ 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 _managed = _interopRequireDefault(require("./classes/managed"));
8
+ var _system = _interopRequireDefault(require("./classes/system"));
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  /**
11
11
  * Classe base dos conttrolers http
12
12
  *
13
13
  * @abstract
14
14
  * @class Controller
15
- * @extends {Managed}
15
+ * @extends {System}
16
16
  */
17
- class HttpController extends _managed.default {
17
+ class HttpController extends _system.default {
18
18
  constructor() {
19
19
  super();
20
20
  }
@@ -43,10 +43,10 @@ class HttpController extends _managed.default {
43
43
  * @export
44
44
  * @abstract
45
45
  * @class SocketController
46
- * @extends {Managed}
46
+ * @extends {System}
47
47
  */
48
48
  exports.HttpController = HttpController;
49
- class SocketController extends _managed.default {
49
+ class SocketController extends _system.default {
50
50
  constructor() {
51
51
  super();
52
52
  }
@@ -61,7 +61,7 @@ class SocketController extends _managed.default {
61
61
  }
62
62
  }
63
63
  exports.SocketController = SocketController;
64
- class SocketRequest extends _managed.default {
64
+ class SocketRequest extends _system.default {
65
65
  auth;
66
66
  tenant;
67
67
  requestor;
@@ -89,7 +89,7 @@ class SocketRequest extends _managed.default {
89
89
  }
90
90
  }
91
91
  exports.SocketRequest = SocketRequest;
92
- class MessagingController extends _managed.default {
92
+ class MessagingController extends _system.default {
93
93
  constructor() {
94
94
  super();
95
95
  }
@@ -1,9 +1,7 @@
1
1
  export { default as Exodus } from './exodus';
2
2
  export * from './controller';
3
3
  export * from './error';
4
+ export * from './classes';
4
5
  export { default as Core } from './core';
5
- export { default as Service } from './classes/service';
6
- export { default as Singleton } from './classes/singleton';
7
- export { default as ServiceModel } from './classes/servicemodel';
8
6
  export { default as CoreSettings } from './settings';
9
7
  //# sourceMappingURL=index.d.ts.map
@@ -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,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC"}
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,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC"}
package/lib/app/index.js CHANGED
@@ -6,9 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  var _exportNames = {
7
7
  Exodus: true,
8
8
  Core: true,
9
- Service: true,
10
- Singleton: true,
11
- ServiceModel: true,
12
9
  CoreSettings: true
13
10
  };
14
11
  Object.defineProperty(exports, "Core", {
@@ -29,24 +26,6 @@ Object.defineProperty(exports, "Exodus", {
29
26
  return _exodus.default;
30
27
  }
31
28
  });
32
- Object.defineProperty(exports, "Service", {
33
- enumerable: true,
34
- get: function () {
35
- return _service.default;
36
- }
37
- });
38
- Object.defineProperty(exports, "ServiceModel", {
39
- enumerable: true,
40
- get: function () {
41
- return _servicemodel.default;
42
- }
43
- });
44
- Object.defineProperty(exports, "Singleton", {
45
- enumerable: true,
46
- get: function () {
47
- return _singleton.default;
48
- }
49
- });
50
29
  var _exodus = _interopRequireDefault(require("./exodus"));
51
30
  var _controller = require("./controller");
52
31
  Object.keys(_controller).forEach(function (key) {
@@ -72,9 +51,18 @@ Object.keys(_error).forEach(function (key) {
72
51
  }
73
52
  });
74
53
  });
54
+ var _classes = require("./classes");
55
+ Object.keys(_classes).forEach(function (key) {
56
+ if (key === "default" || key === "__esModule") return;
57
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
58
+ if (key in exports && exports[key] === _classes[key]) return;
59
+ Object.defineProperty(exports, key, {
60
+ enumerable: true,
61
+ get: function () {
62
+ return _classes[key];
63
+ }
64
+ });
65
+ });
75
66
  var _core = _interopRequireDefault(require("./core"));
76
- var _service = _interopRequireDefault(require("./classes/service"));
77
- var _singleton = _interopRequireDefault(require("./classes/singleton"));
78
- var _servicemodel = _interopRequireDefault(require("./classes/servicemodel"));
79
67
  var _settings = _interopRequireDefault(require("./settings"));
80
68
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -2,16 +2,18 @@ import { CorsOptions, CorsOptionsDelegate } from 'cors';
2
2
  import { Server as HttpServer } from 'http';
3
3
  import { Server } from 'socket.io';
4
4
  import Service from '../app/classes/service';
5
- import { TSocketEventList } from '../contracts';
5
+ import SocketEventHandler from '../app/classes/socket/handler';
6
6
  declare class SocketIOService extends Service {
7
7
  server: Server;
8
8
  private mainRouter;
9
+ private handles;
9
10
  constructor();
10
11
  onServiceClusterInit(): Promise<void>;
11
12
  private onConnection;
12
13
  private bindEvents;
13
14
  createSocket(app: HttpServer, cors?: CorsOptions | CorsOptionsDelegate): void;
14
- static registerRouter(router: TSocketEventList): void;
15
+ static registerRouter(router: SocketEventHandler[]): void;
16
+ private registerHandlers;
15
17
  }
16
18
  export default SocketIOService;
17
19
  //# sourceMappingURL=socket.d.ts.map
@@ -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;AAEnC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAgC,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAW9E,cAAM,eAAgB,SAAQ,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,UAAU,CAAmB;;IAK/B,oBAAoB;IAQ1B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;IAQlB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,GAAE,WAAW,GAAG,mBAAqC;IAMvF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB;CAG/C;AAED,eAAe,eAAe,CAAC"}
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,+BAA+B,CAAC;AAc/D,cAAM,eAAgB,SAAQ,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,OAAO,CAAoC;;IAK7C,oBAAoB;IAU1B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,UAAU;IAkCX,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,GAAE,WAAW,GAAG,mBAAqC;IAM9F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;IAIlD,OAAO,CAAC,gBAAgB;CASzB;AAED,eAAe,eAAe,CAAC"}
@@ -5,8 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _socket = require("socket.io");
8
- var _controller = require("../app/controller");
9
8
  var _service = _interopRequireDefault(require("../app/classes/service"));
9
+ var _controller = require("../app/controller");
10
+ var _core = require("../contracts/core");
10
11
  var _authentication = require("../middlewares/authentication");
11
12
  var _express = _interopRequireDefault(require("./express"));
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -20,27 +21,59 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
20
21
  class SocketIOService extends _service.default {
21
22
  server;
22
23
  mainRouter;
24
+ handles;
23
25
  constructor() {
24
26
  super();
25
27
  }
26
28
  async onServiceClusterInit() {
27
29
  if (!this.mainRouter) throw new Error('Need router'); //!sem router
28
- const server = _express.default.singleton().getHttpServer();
29
- this.createSocket(server);
30
+
31
+ this.createSocket(_express.default.singleton().getHttpServer());
30
32
  this.server.on('connection', this.onConnection.bind(this));
33
+ this.registerHandlers();
31
34
  this.log('Socket server created');
32
35
  }
33
36
  onConnection(socket) {
34
37
  this.log(`${socket.id} conectado`);
35
- socket.on('disconnect', () => this.log(`${socket.id} desconectado`));
38
+ socket.on('disconnect', () => {
39
+ this.log(`${socket.id} desconectado`);
40
+ Array.from(this.handles.values()).forEach(handlers => {
41
+ handlers.forEach(handler => handler.onDisconnect(socket));
42
+ });
43
+ });
44
+ Array.from(this.handles.values()).forEach(handlers => {
45
+ handlers.forEach(handler => handler.onConnect(socket));
46
+ });
36
47
  this.bindEvents(socket);
37
48
  }
38
49
  bindEvents(socket) {
39
- Object.entries(this.mainRouter).forEach(([key, handle]) => {
40
- socket.on(key, (...args) => {
41
- handle(new _controller.SocketRequest(socket, key), ...args);
50
+ const handlers = Array.from(this.handles.entries());
51
+ for (const group of handlers) {
52
+ const event = group[0];
53
+ const handlers = group[1].filter(handler => {
54
+ let isSameSide = false;
55
+ switch (handler.getSide()) {
56
+ case _core.eExecutionSide.CLUSTER:
57
+ if (this.isCluster()) isSameSide = true;
58
+ break;
59
+ case _core.eExecutionSide.MASTER:
60
+ if (this.isMaster()) isSameSide = true;
61
+ break;
62
+ case _core.eExecutionSide.ANY:
63
+ isSameSide = true;
64
+ break;
65
+ }
66
+ return handler.getActive() && isSameSide;
42
67
  });
43
- });
68
+ handlers.forEach(handler => {
69
+ handler.onInit();
70
+ });
71
+ socket.on(event, (...args) => {
72
+ handlers.forEach(handler => {
73
+ handler.onEvent(new _controller.SocketRequest(socket, event), ...args);
74
+ });
75
+ });
76
+ }
44
77
  }
45
78
  createSocket(app, cors = {
46
79
  origin: '*'
@@ -54,5 +87,13 @@ class SocketIOService extends _service.default {
54
87
  static registerRouter(router) {
55
88
  this.getService().mainRouter = router;
56
89
  }
90
+ registerHandlers() {
91
+ this.mainRouter.forEach(handler => {
92
+ const event = handler.getEvent();
93
+ const group = this.handles.get(event) || [];
94
+ group.push(handler);
95
+ this.handles.set(event, group);
96
+ });
97
+ }
57
98
  }
58
99
  var _default = exports.default = SocketIOService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exodus-framework",
3
- "version": "2.0.849",
3
+ "version": "2.0.852",
4
4
  "description": "Exodus Framework",
5
5
  "author": "jhownpaixao",
6
6
  "license": "ISC",