@kithinji/orca 1.0.32 → 1.0.34

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.
@@ -2188,6 +2188,7 @@ __export(node_exports, {
2188
2188
 
2189
2189
  // src/node/factory.ts
2190
2190
  var import_express2 = __toESM(require("express"));
2191
+ var import_cookie_parser = __toESM(require("cookie-parser"));
2191
2192
  var import_http = __toESM(require("http"));
2192
2193
  var import_uuid2 = require("uuid");
2193
2194
  var import_socket = require("socket.io");
@@ -2578,7 +2579,7 @@ var ControllerRegistrationService = class {
2578
2579
  this.injector = injector;
2579
2580
  this.app = app;
2580
2581
  }
2581
- registerEventHandlers(CtrlCls, instance, actor) {
2582
+ async registerEventHandlers(CtrlCls, instance, actor) {
2582
2583
  const eventHandlers = Reflect.ownKeys(CtrlCls.prototype).filter(
2583
2584
  (key) => Reflect.hasOwnMetadata(EVENT_HANDLER, CtrlCls.prototype, key)
2584
2585
  );
@@ -2589,7 +2590,16 @@ var ControllerRegistrationService = class {
2589
2590
  methodKey
2590
2591
  );
2591
2592
  const handler = instance[methodKey];
2592
- actor.subscribe(eventName, (data) => handler.call(instance, data));
2593
+ actor.subscribe(eventName, async (data) => {
2594
+ try {
2595
+ await handler.call(instance, data);
2596
+ } catch (err) {
2597
+ console.error(
2598
+ `Unhandled error in event handler "${eventName}":`,
2599
+ err
2600
+ );
2601
+ }
2602
+ });
2593
2603
  }
2594
2604
  }
2595
2605
  buildMethodArgs(req, res, paramsMeta, designParams) {
@@ -2733,7 +2743,7 @@ var ControllerRegistrationService = class {
2733
2743
  const instance = await this.injector.resolve(CtrlCls);
2734
2744
  const prefix = Reflect.getMetadata(CONTROLLER_PREFIX_KEY, CtrlCls) ?? "/";
2735
2745
  const actor = await this.injector.resolve(Actor);
2736
- this.registerEventHandlers(CtrlCls, instance, actor);
2746
+ await this.registerEventHandlers(CtrlCls, instance, actor);
2737
2747
  this.registerHttpMethods(CtrlCls, instance, prefix);
2738
2748
  }
2739
2749
  };
@@ -2925,7 +2935,7 @@ var NodeFactory = class {
2925
2935
  { provide: Actor, useClass: Actor, eager: true }
2926
2936
  ]);
2927
2937
  }
2928
- static registerControllers(appNode, injector, app) {
2938
+ static async registerControllers(appNode, injector, app) {
2929
2939
  const registrationService = new ControllerRegistrationService(
2930
2940
  injector,
2931
2941
  app
@@ -2933,18 +2943,29 @@ var NodeFactory = class {
2933
2943
  const rootControllers = [
2934
2944
  ...store.get("root_controllers")
2935
2945
  ];
2936
- rootControllers.forEach((ctrl) => registrationService.register(ctrl));
2946
+ await Promise.all(
2947
+ rootControllers.map((ctrl) => registrationService.register(ctrl))
2948
+ );
2949
+ const nodeRegistrationPromises = [];
2937
2950
  appNode.traverse((node) => {
2938
2951
  const providers = [...node.getProviders().values()];
2939
2952
  const controllers = providers.filter((provider) => {
2940
2953
  const token = provider.provide;
2941
2954
  return typeof token === "function" && Reflect.getMetadata(CONTROLLER, token);
2942
2955
  });
2943
- controllers.forEach((c) => registrationService.register(c.useClass));
2944
- providers.filter((provider) => provider.eager).forEach(async (p) => {
2945
- await injector.resolve(p.provide);
2946
- });
2956
+ controllers.forEach(
2957
+ (c) => nodeRegistrationPromises.push(
2958
+ registrationService.register(c.useClass)
2959
+ )
2960
+ );
2961
+ providers.filter((provider) => provider.eager).forEach(
2962
+ (p) => nodeRegistrationPromises.push(
2963
+ injector.resolve(p.provide).then(() => {
2964
+ })
2965
+ )
2966
+ );
2947
2967
  });
2968
+ await Promise.all(nodeRegistrationPromises);
2948
2969
  }
2949
2970
  static setupOscRoute(app, injector, rootModule) {
2950
2971
  const componentResolver = new ComponentResolver(rootModule);
@@ -2954,6 +2975,7 @@ var NodeFactory = class {
2954
2975
  static async create(rootModule) {
2955
2976
  const app = (0, import_express2.default)();
2956
2977
  app.use(import_express2.default.json());
2978
+ app.use((0, import_cookie_parser.default)());
2957
2979
  const server = import_http.default.createServer(app);
2958
2980
  const appNode = this.compileAndValidate(rootModule);
2959
2981
  const scanner = this.scanDependencies(appNode);
@@ -2964,7 +2986,7 @@ var NodeFactory = class {
2964
2986
  scanner
2965
2987
  );
2966
2988
  setCurrentInjector(rootInjector);
2967
- this.registerControllers(appNode, rootInjector, app);
2989
+ await this.registerControllers(appNode, rootInjector, app);
2968
2990
  this.setupOscRoute(app, rootInjector, rootModule);
2969
2991
  SocketService.setup(server, rootInjector);
2970
2992
  return server;