@devbro/pashmak 0.1.28 → 0.1.30

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.
@@ -5,6 +5,7 @@ import { PostgresqlConnection } from "@devbro/neko-sql";
5
5
  import { BaseModel } from "@devbro/neko-orm";
6
6
  import { ctx } from "@devbro/neko-context";
7
7
  import { config } from "@devbro/neko-config";
8
+ import { Global } from "./global.mts";
8
9
  class DatabaseServiceProvider extends Middleware {
9
10
  static {
10
11
  __name(this, "DatabaseServiceProvider");
@@ -18,9 +19,23 @@ class DatabaseServiceProvider extends Middleware {
18
19
  ctx().set(["database", name], conn);
19
20
  conns.push(conn);
20
21
  }
21
- BaseModel.setConnection(
22
- () => ctx().getOrThrow(["database", "default"])
23
- );
22
+ BaseModel.setConnection(async () => {
23
+ const key = ["database", "default"];
24
+ let rc = ctx().get(key);
25
+ if (ctx().has(key)) {
26
+ rc = ctx().get(key);
27
+ } else if (Global.has(key)) {
28
+ rc = Global.get(key);
29
+ } else {
30
+ rc = await this.getConnection(db_configs["default"]);
31
+ try {
32
+ ctx().set(key, rc);
33
+ } catch {
34
+ Global.set(key, rc);
35
+ }
36
+ }
37
+ return rc;
38
+ });
24
39
  await next();
25
40
  } finally {
26
41
  for (const conn of conns) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/DatabaseServiceProvider.mts"],"sourcesContent":["import { Middleware } from \"@devbro/neko-router\";\nimport { Request, Response } from \"@devbro/neko-router\";\nimport { PostgresqlConnection } from \"@devbro/neko-sql\";\nimport { PoolConfig } from \"pg\";\nimport { Connection } from \"@devbro/neko-sql\";\nimport { BaseModel } from \"@devbro/neko-orm\";\nimport { ctx } from \"@devbro/neko-context\";\nimport { config } from \"@devbro/neko-config\";\n\nexport class DatabaseServiceProvider extends Middleware {\n async call(\n req: Request,\n res: Response,\n next: () => Promise<void>,\n ): Promise<void> {\n const db_configs: Record<string, PoolConfig & { name: string }> =\n config.get(\"databases\");\n\n const conns = [];\n try {\n for (const [name, db_config] of Object.entries(db_configs)) {\n const conn = await this.getConnection(db_config);\n ctx().set([\"database\", name], conn);\n conns.push(conn);\n }\n BaseModel.setConnection(() =>\n ctx().getOrThrow<Connection>([\"database\", \"default\"]),\n );\n await next();\n } finally {\n for (const conn of conns) {\n await conn.disconnect();\n }\n }\n }\n\n private static instance: DatabaseServiceProvider;\n\n async register(): Promise<void> {}\n\n static getInstance(): DatabaseServiceProvider {\n if (!DatabaseServiceProvider.instance) {\n DatabaseServiceProvider.instance = new DatabaseServiceProvider();\n }\n return DatabaseServiceProvider.instance;\n }\n\n async getConnection(db_config: PoolConfig): Promise<PostgresqlConnection> {\n const conn = new PostgresqlConnection(db_config);\n if (!(await conn.connect())) {\n throw new Error(\"Failed to connect to the database\");\n }\n return conn;\n }\n}\n"],"mappings":";;AAAA,SAAS,kBAAkB;AAE3B,SAAS,4BAA4B;AAGrC,SAAS,iBAAiB;AAC1B,SAAS,WAAW;AACpB,SAAS,cAAc;AAEhB,MAAM,gCAAgC,WAAW;AAAA,EATxD,OASwD;AAAA;AAAA;AAAA,EACtD,MAAM,KACJ,KACA,KACA,MACe;AACf,UAAM,aACJ,OAAO,IAAI,WAAW;AAExB,UAAM,QAAQ,CAAC;AACf,QAAI;AACF,iBAAW,CAAC,MAAM,SAAS,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC1D,cAAM,OAAO,MAAM,KAAK,cAAc,SAAS;AAC/C,YAAI,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,IAAI;AAClC,cAAM,KAAK,IAAI;AAAA,MACjB;AACA,gBAAU;AAAA,QAAc,MACtB,IAAI,EAAE,WAAuB,CAAC,YAAY,SAAS,CAAC;AAAA,MACtD;AACA,YAAM,KAAK;AAAA,IACb,UAAE;AACA,iBAAW,QAAQ,OAAO;AACxB,cAAM,KAAK,WAAW;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAe;AAAA,EAEf,MAAM,WAA0B;AAAA,EAAC;AAAA,EAEjC,OAAO,cAAuC;AAC5C,QAAI,CAAC,wBAAwB,UAAU;AACrC,8BAAwB,WAAW,IAAI,wBAAwB;AAAA,IACjE;AACA,WAAO,wBAAwB;AAAA,EACjC;AAAA,EAEA,MAAM,cAAc,WAAsD;AACxE,UAAM,OAAO,IAAI,qBAAqB,SAAS;AAC/C,QAAI,CAAE,MAAM,KAAK,QAAQ,GAAI;AAC3B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/DatabaseServiceProvider.mts"],"sourcesContent":["import { Middleware } from \"@devbro/neko-router\";\nimport { Request, Response } from \"@devbro/neko-router\";\nimport { PostgresqlConnection } from \"@devbro/neko-sql\";\nimport { PoolConfig } from \"pg\";\nimport { Connection } from \"@devbro/neko-sql\";\nimport { BaseModel } from \"@devbro/neko-orm\";\nimport { ctx } from \"@devbro/neko-context\";\nimport { config } from \"@devbro/neko-config\";\nimport { Global } from \"./global.mts\";\n\nexport class DatabaseServiceProvider extends Middleware {\n async call(\n req: Request,\n res: Response,\n next: () => Promise<void>,\n ): Promise<void> {\n const db_configs: Record<string, PoolConfig & { name: string }> =\n config.get(\"databases\");\n\n const conns = [];\n try {\n for (const [name, db_config] of Object.entries(db_configs)) {\n const conn = await this.getConnection(db_config);\n ctx().set([\"database\", name], conn);\n conns.push(conn);\n }\n BaseModel.setConnection(async () => {\n const key = [\"database\", \"default\"];\n let rc: Connection | undefined = ctx().get<Connection>(key);\n\n if (ctx().has(key)) {\n rc = ctx().get<Connection>(key);\n } else if (Global.has(key)) {\n rc = Global.get<Connection>(key);\n } else {\n rc = await this.getConnection(db_configs[\"default\"]);\n try {\n ctx().set(key, rc);\n } catch {\n // we are outside of context\n Global.set(key, rc);\n }\n }\n return rc!;\n });\n await next();\n } finally {\n for (const conn of conns) {\n await conn.disconnect();\n }\n }\n }\n\n private static instance: DatabaseServiceProvider;\n\n async register(): Promise<void> {}\n\n static getInstance(): DatabaseServiceProvider {\n if (!DatabaseServiceProvider.instance) {\n DatabaseServiceProvider.instance = new DatabaseServiceProvider();\n }\n return DatabaseServiceProvider.instance;\n }\n\n async getConnection(db_config: PoolConfig): Promise<PostgresqlConnection> {\n const conn = new PostgresqlConnection(db_config);\n if (!(await conn.connect())) {\n throw new Error(\"Failed to connect to the database\");\n }\n return conn;\n }\n}\n"],"mappings":";;AAAA,SAAS,kBAAkB;AAE3B,SAAS,4BAA4B;AAGrC,SAAS,iBAAiB;AAC1B,SAAS,WAAW;AACpB,SAAS,cAAc;AACvB,SAAS,cAAc;AAEhB,MAAM,gCAAgC,WAAW;AAAA,EAVxD,OAUwD;AAAA;AAAA;AAAA,EACtD,MAAM,KACJ,KACA,KACA,MACe;AACf,UAAM,aACJ,OAAO,IAAI,WAAW;AAExB,UAAM,QAAQ,CAAC;AACf,QAAI;AACF,iBAAW,CAAC,MAAM,SAAS,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC1D,cAAM,OAAO,MAAM,KAAK,cAAc,SAAS;AAC/C,YAAI,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,IAAI;AAClC,cAAM,KAAK,IAAI;AAAA,MACjB;AACA,gBAAU,cAAc,YAAY;AAClC,cAAM,MAAM,CAAC,YAAY,SAAS;AAClC,YAAI,KAA6B,IAAI,EAAE,IAAgB,GAAG;AAE1D,YAAI,IAAI,EAAE,IAAI,GAAG,GAAG;AAClB,eAAK,IAAI,EAAE,IAAgB,GAAG;AAAA,QAChC,WAAW,OAAO,IAAI,GAAG,GAAG;AAC1B,eAAK,OAAO,IAAgB,GAAG;AAAA,QACjC,OAAO;AACL,eAAK,MAAM,KAAK,cAAc,WAAW,SAAS,CAAC;AACnD,cAAI;AACF,gBAAI,EAAE,IAAI,KAAK,EAAE;AAAA,UACnB,QAAQ;AAEN,mBAAO,IAAI,KAAK,EAAE;AAAA,UACpB;AAAA,QACF;AACA,eAAO;AAAA,MACT,CAAC;AACD,YAAM,KAAK;AAAA,IACb,UAAE;AACA,iBAAW,QAAQ,OAAO;AACxB,cAAM,KAAK,WAAW;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAe;AAAA,EAEf,MAAM,WAA0B;AAAA,EAAC;AAAA,EAEjC,OAAO,cAAuC;AAC5C,QAAI,CAAC,wBAAwB,UAAU;AACrC,8BAAwB,WAAW,IAAI,wBAAwB;AAAA,IACjE;AACA,WAAO,wBAAwB;AAAA,EACjC;AAAA,EAEA,MAAM,cAAc,WAAsD;AACxE,UAAM,OAAO,IAAI,qBAAqB,SAAS;AAC/C,QAAI,CAAE,MAAM,KAAK,QAAQ,GAAI;AAC3B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -42,6 +42,49 @@ var import_neko_sql = require("@devbro/neko-sql");
42
42
  var import_neko_orm = require("@devbro/neko-orm");
43
43
  var import_neko_context = require("@devbro/neko-context");
44
44
  var import_neko_config = require("@devbro/neko-config");
45
+
46
+ // src/global.mts
47
+ var Global = class _Global {
48
+ static {
49
+ __name(this, "Global");
50
+ }
51
+ static _vars = {};
52
+ static set(key, value) {
53
+ this._vars[_Global.generateInternalKey(key)] = value;
54
+ }
55
+ static get(key) {
56
+ return this._vars[_Global.generateInternalKey(key)];
57
+ }
58
+ static getOrThrow(key) {
59
+ const rc = this.get(key);
60
+ if (rc === void 0) {
61
+ throw new Error(
62
+ `Key ${_Global.generateInternalKey(key)} not found in Global`
63
+ );
64
+ }
65
+ return rc;
66
+ }
67
+ static generateInternalKey(key) {
68
+ let new_key = "";
69
+ if (Array.isArray(key)) {
70
+ new_key = key.join(".");
71
+ } else {
72
+ new_key = key;
73
+ }
74
+ return new_key;
75
+ }
76
+ static has(key) {
77
+ return _Global.generateInternalKey(key) in _Global._vars;
78
+ }
79
+ static delete(key) {
80
+ delete _Global._vars[_Global.generateInternalKey(key)];
81
+ }
82
+ static keys() {
83
+ return Object.keys(_Global._vars);
84
+ }
85
+ };
86
+
87
+ // src/DatabaseServiceProvider.mts
45
88
  var DatabaseServiceProvider = class _DatabaseServiceProvider extends Middleware {
46
89
  static {
47
90
  __name(this, "DatabaseServiceProvider");
@@ -55,9 +98,23 @@ var DatabaseServiceProvider = class _DatabaseServiceProvider extends Middleware
55
98
  (0, import_neko_context.ctx)().set(["database", name], conn);
56
99
  conns.push(conn);
57
100
  }
58
- import_neko_orm.BaseModel.setConnection(
59
- () => (0, import_neko_context.ctx)().getOrThrow(["database", "default"])
60
- );
101
+ import_neko_orm.BaseModel.setConnection(async () => {
102
+ const key = ["database", "default"];
103
+ let rc = (0, import_neko_context.ctx)().get(key);
104
+ if ((0, import_neko_context.ctx)().has(key)) {
105
+ rc = (0, import_neko_context.ctx)().get(key);
106
+ } else if (Global.has(key)) {
107
+ rc = Global.get(key);
108
+ } else {
109
+ rc = await this.getConnection(db_configs["default"]);
110
+ try {
111
+ (0, import_neko_context.ctx)().set(key, rc);
112
+ } catch {
113
+ Global.set(key, rc);
114
+ }
115
+ }
116
+ return rc;
117
+ });
61
118
  await next();
62
119
  } finally {
63
120
  for (const conn of conns) {
@@ -456,13 +456,16 @@ var Router = class {
456
456
  }
457
457
  };
458
458
 
459
+ // src/router.mts
460
+ var import_neko_config = require("@devbro/neko-config");
461
+
459
462
  // src/facades.mts
460
463
  var import_neko_scheduler = require("@devbro/neko-scheduler");
461
464
  var import_neko_helper2 = require("@devbro/neko-helper");
462
465
  var import_neko_context3 = require("@devbro/neko-context");
463
466
  var import_neko_storage2 = require("@devbro/neko-storage");
464
467
  var import_neko_mailer2 = require("@devbro/neko-mailer");
465
- var import_neko_config = require("@devbro/neko-config");
468
+ var import_neko_config2 = require("@devbro/neko-config");
466
469
  var import_clipanion = require("clipanion");
467
470
 
468
471
  // src/http.mts
@@ -542,8 +545,8 @@ var DatabaseTransport = class {
542
545
  }
543
546
  });
544
547
  }, "processMessage");
545
- constructor(config2 = {}) {
546
- this.config = { ...this.config, ...config2 };
548
+ constructor(config3 = {}) {
549
+ this.config = { ...this.config, ...config3 };
547
550
  this.repeater = (0, import_neko_helper.createRepeater)(
548
551
  this.processMessage,
549
552
  this.config.listen_interval * 1e3
@@ -660,7 +663,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
660
663
  });
661
664
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
662
665
  var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
663
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
666
+ let storage_config = import_neko_config2.config.get(["storages", label].join("."));
664
667
  const provider = import_neko_storage2.StorageProviderFactory.create(
665
668
  storage_config.provider,
666
669
  storage_config.config
@@ -711,7 +714,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
711
714
  return server;
712
715
  });
713
716
  var logger = (0, import_neko_helper2.createSingleton)((label) => {
714
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
717
+ const logger_config = import_neko_config2.config.get(["loggers", label].join("."));
715
718
  const rc = new import_neko_logger.Logger(logger_config);
716
719
  rc.setExtrasFunction((message) => {
717
720
  message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
@@ -720,7 +723,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
720
723
  return rc;
721
724
  });
722
725
  var mailer = (0, import_neko_helper2.createSingleton)((label) => {
723
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
726
+ const mailer_config = import_neko_config2.config.get(["mailer", label].join("."));
724
727
  const provider = import_neko_mailer2.MailerProviderFactory.create(
725
728
  mailer_config.provider,
726
729
  mailer_config.config
@@ -729,7 +732,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
729
732
  return rc;
730
733
  });
731
734
  var queue = (0, import_neko_helper2.createSingleton)((label) => {
732
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
735
+ const queue_config = import_neko_config2.config.get(["queues", label].join("."));
733
736
  if (!queue_config) {
734
737
  throw new Error(`Queue configuration for '${label}' not found`);
735
738
  }
@@ -741,7 +744,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
741
744
  return rc;
742
745
  });
743
746
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
744
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
747
+ const cache_config = import_neko_config2.config.get(["caches", label].join("."));
745
748
  if (!cache_config) {
746
749
  throw new Error(`Cache configuration for '${label}' not found`);
747
750
  }
@@ -459,13 +459,16 @@ var Router = class {
459
459
  }
460
460
  };
461
461
 
462
+ // src/router.mts
463
+ var import_neko_config = require("@devbro/neko-config");
464
+
462
465
  // src/facades.mts
463
466
  var import_neko_scheduler = require("@devbro/neko-scheduler");
464
467
  var import_neko_helper2 = require("@devbro/neko-helper");
465
468
  var import_neko_context3 = require("@devbro/neko-context");
466
469
  var import_neko_storage2 = require("@devbro/neko-storage");
467
470
  var import_neko_mailer2 = require("@devbro/neko-mailer");
468
- var import_neko_config = require("@devbro/neko-config");
471
+ var import_neko_config2 = require("@devbro/neko-config");
469
472
  var import_clipanion = require("clipanion");
470
473
 
471
474
  // src/http.mts
@@ -545,8 +548,8 @@ var DatabaseTransport = class {
545
548
  }
546
549
  });
547
550
  }, "processMessage");
548
- constructor(config2 = {}) {
549
- this.config = { ...this.config, ...config2 };
551
+ constructor(config3 = {}) {
552
+ this.config = { ...this.config, ...config3 };
550
553
  this.repeater = (0, import_neko_helper.createRepeater)(
551
554
  this.processMessage,
552
555
  this.config.listen_interval * 1e3
@@ -663,7 +666,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
663
666
  });
664
667
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
665
668
  var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
666
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
669
+ let storage_config = import_neko_config2.config.get(["storages", label].join("."));
667
670
  const provider = import_neko_storage2.StorageProviderFactory.create(
668
671
  storage_config.provider,
669
672
  storage_config.config
@@ -714,7 +717,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
714
717
  return server;
715
718
  });
716
719
  var logger = (0, import_neko_helper2.createSingleton)((label) => {
717
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
720
+ const logger_config = import_neko_config2.config.get(["loggers", label].join("."));
718
721
  const rc = new import_neko_logger.Logger(logger_config);
719
722
  rc.setExtrasFunction((message) => {
720
723
  message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
@@ -723,7 +726,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
723
726
  return rc;
724
727
  });
725
728
  var mailer = (0, import_neko_helper2.createSingleton)((label) => {
726
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
729
+ const mailer_config = import_neko_config2.config.get(["mailer", label].join("."));
727
730
  const provider = import_neko_mailer2.MailerProviderFactory.create(
728
731
  mailer_config.provider,
729
732
  mailer_config.config
@@ -732,7 +735,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
732
735
  return rc;
733
736
  });
734
737
  var queue = (0, import_neko_helper2.createSingleton)((label) => {
735
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
738
+ const queue_config = import_neko_config2.config.get(["queues", label].join("."));
736
739
  if (!queue_config) {
737
740
  throw new Error(`Queue configuration for '${label}' not found`);
738
741
  }
@@ -744,7 +747,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
744
747
  return rc;
745
748
  });
746
749
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
747
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
750
+ const cache_config = import_neko_config2.config.get(["caches", label].join("."));
748
751
  if (!cache_config) {
749
752
  throw new Error(`Cache configuration for '${label}' not found`);
750
753
  }
@@ -36,7 +36,7 @@ __export(StartCommand_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(StartCommand_exports);
38
38
  var import_clipanion2 = require("clipanion");
39
- var import_neko_config2 = require("@devbro/neko-config");
39
+ var import_neko_config3 = require("@devbro/neko-config");
40
40
 
41
41
  // src/router.mts
42
42
  var import_neko_context = require("@devbro/neko-context");
@@ -457,13 +457,16 @@ var Router = class {
457
457
  }
458
458
  };
459
459
 
460
+ // src/router.mts
461
+ var import_neko_config = require("@devbro/neko-config");
462
+
460
463
  // src/facades.mts
461
464
  var import_neko_scheduler = require("@devbro/neko-scheduler");
462
465
  var import_neko_helper2 = require("@devbro/neko-helper");
463
466
  var import_neko_context3 = require("@devbro/neko-context");
464
467
  var import_neko_storage2 = require("@devbro/neko-storage");
465
468
  var import_neko_mailer2 = require("@devbro/neko-mailer");
466
- var import_neko_config = require("@devbro/neko-config");
469
+ var import_neko_config2 = require("@devbro/neko-config");
467
470
  var import_clipanion = require("clipanion");
468
471
 
469
472
  // src/http.mts
@@ -543,8 +546,8 @@ var DatabaseTransport = class {
543
546
  }
544
547
  });
545
548
  }, "processMessage");
546
- constructor(config3 = {}) {
547
- this.config = { ...this.config, ...config3 };
549
+ constructor(config4 = {}) {
550
+ this.config = { ...this.config, ...config4 };
548
551
  this.repeater = (0, import_neko_helper.createRepeater)(
549
552
  this.processMessage,
550
553
  this.config.listen_interval * 1e3
@@ -661,7 +664,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
661
664
  });
662
665
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
663
666
  var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
664
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
667
+ let storage_config = import_neko_config2.config.get(["storages", label].join("."));
665
668
  const provider = import_neko_storage2.StorageProviderFactory.create(
666
669
  storage_config.provider,
667
670
  storage_config.config
@@ -712,7 +715,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
712
715
  return server;
713
716
  });
714
717
  var logger = (0, import_neko_helper2.createSingleton)((label) => {
715
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
718
+ const logger_config = import_neko_config2.config.get(["loggers", label].join("."));
716
719
  const rc = new import_neko_logger.Logger(logger_config);
717
720
  rc.setExtrasFunction((message) => {
718
721
  message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
@@ -721,7 +724,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
721
724
  return rc;
722
725
  });
723
726
  var mailer = (0, import_neko_helper2.createSingleton)((label) => {
724
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
727
+ const mailer_config = import_neko_config2.config.get(["mailer", label].join("."));
725
728
  const provider = import_neko_mailer2.MailerProviderFactory.create(
726
729
  mailer_config.provider,
727
730
  mailer_config.config
@@ -730,7 +733,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
730
733
  return rc;
731
734
  });
732
735
  var queue = (0, import_neko_helper2.createSingleton)((label) => {
733
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
736
+ const queue_config = import_neko_config2.config.get(["queues", label].join("."));
734
737
  if (!queue_config) {
735
738
  throw new Error(`Queue configuration for '${label}' not found`);
736
739
  }
@@ -742,7 +745,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
742
745
  return rc;
743
746
  });
744
747
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
745
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
748
+ const cache_config = import_neko_config2.config.get(["caches", label].join("."));
746
749
  if (!cache_config) {
747
750
  throw new Error(`Cache configuration for '${label}' not found`);
748
751
  }
@@ -781,16 +784,16 @@ var StartCommand = class extends import_clipanion2.Command {
781
784
  scheduler().start();
782
785
  }
783
786
  if (this.queue || this.all) {
784
- const config_queues = import_neko_config2.config.get("queues");
787
+ const config_queues = import_neko_config3.config.get("queues");
785
788
  for (const [name, conf] of Object.entries(config_queues)) {
786
789
  queue(name).start();
787
790
  }
788
791
  }
789
792
  if (this.http || this.all) {
790
793
  const server = httpServer();
791
- await server.listen(import_neko_config2.config.get("port"), () => {
794
+ await server.listen(import_neko_config3.config.get("port"), () => {
792
795
  logger().info(
793
- "Server is running on http://localhost:" + import_neko_config2.config.get("port")
796
+ "Server is running on http://localhost:" + import_neko_config3.config.get("port")
794
797
  );
795
798
  });
796
799
  }
@@ -455,13 +455,16 @@ var Router = class {
455
455
  }
456
456
  };
457
457
 
458
+ // src/router.mts
459
+ var import_neko_config = require("@devbro/neko-config");
460
+
458
461
  // src/facades.mts
459
462
  var import_neko_scheduler = require("@devbro/neko-scheduler");
460
463
  var import_neko_helper2 = require("@devbro/neko-helper");
461
464
  var import_neko_context3 = require("@devbro/neko-context");
462
465
  var import_neko_storage2 = require("@devbro/neko-storage");
463
466
  var import_neko_mailer2 = require("@devbro/neko-mailer");
464
- var import_neko_config = require("@devbro/neko-config");
467
+ var import_neko_config2 = require("@devbro/neko-config");
465
468
  var import_clipanion = require("clipanion");
466
469
 
467
470
  // src/http.mts
@@ -541,8 +544,8 @@ var DatabaseTransport = class {
541
544
  }
542
545
  });
543
546
  }, "processMessage");
544
- constructor(config2 = {}) {
545
- this.config = { ...this.config, ...config2 };
547
+ constructor(config3 = {}) {
548
+ this.config = { ...this.config, ...config3 };
546
549
  this.repeater = (0, import_neko_helper.createRepeater)(
547
550
  this.processMessage,
548
551
  this.config.listen_interval * 1e3
@@ -659,7 +662,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
659
662
  });
660
663
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
661
664
  var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
662
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
665
+ let storage_config = import_neko_config2.config.get(["storages", label].join("."));
663
666
  const provider = import_neko_storage2.StorageProviderFactory.create(
664
667
  storage_config.provider,
665
668
  storage_config.config
@@ -710,7 +713,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
710
713
  return server;
711
714
  });
712
715
  var logger = (0, import_neko_helper2.createSingleton)((label) => {
713
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
716
+ const logger_config = import_neko_config2.config.get(["loggers", label].join("."));
714
717
  const rc = new import_neko_logger.Logger(logger_config);
715
718
  rc.setExtrasFunction((message) => {
716
719
  message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
@@ -719,7 +722,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
719
722
  return rc;
720
723
  });
721
724
  var mailer = (0, import_neko_helper2.createSingleton)((label) => {
722
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
725
+ const mailer_config = import_neko_config2.config.get(["mailer", label].join("."));
723
726
  const provider = import_neko_mailer2.MailerProviderFactory.create(
724
727
  mailer_config.provider,
725
728
  mailer_config.config
@@ -728,7 +731,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
728
731
  return rc;
729
732
  });
730
733
  var queue = (0, import_neko_helper2.createSingleton)((label) => {
731
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
734
+ const queue_config = import_neko_config2.config.get(["queues", label].join("."));
732
735
  if (!queue_config) {
733
736
  throw new Error(`Queue configuration for '${label}' not found`);
734
737
  }
@@ -740,7 +743,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
740
743
  return rc;
741
744
  });
742
745
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
743
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
746
+ const cache_config = import_neko_config2.config.get(["caches", label].join("."));
744
747
  if (!cache_config) {
745
748
  throw new Error(`Cache configuration for '${label}' not found`);
746
749
  }
@@ -455,13 +455,16 @@ var Router = class {
455
455
  }
456
456
  };
457
457
 
458
+ // src/router.mts
459
+ var import_neko_config = require("@devbro/neko-config");
460
+
458
461
  // src/facades.mts
459
462
  var import_neko_scheduler = require("@devbro/neko-scheduler");
460
463
  var import_neko_helper2 = require("@devbro/neko-helper");
461
464
  var import_neko_context3 = require("@devbro/neko-context");
462
465
  var import_neko_storage2 = require("@devbro/neko-storage");
463
466
  var import_neko_mailer2 = require("@devbro/neko-mailer");
464
- var import_neko_config = require("@devbro/neko-config");
467
+ var import_neko_config2 = require("@devbro/neko-config");
465
468
  var import_clipanion = require("clipanion");
466
469
 
467
470
  // src/http.mts
@@ -541,8 +544,8 @@ var DatabaseTransport = class {
541
544
  }
542
545
  });
543
546
  }, "processMessage");
544
- constructor(config3 = {}) {
545
- this.config = { ...this.config, ...config3 };
547
+ constructor(config4 = {}) {
548
+ this.config = { ...this.config, ...config4 };
546
549
  this.repeater = (0, import_neko_helper.createRepeater)(
547
550
  this.processMessage,
548
551
  this.config.listen_interval * 1e3
@@ -659,7 +662,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
659
662
  });
660
663
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
661
664
  var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
662
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
665
+ let storage_config = import_neko_config2.config.get(["storages", label].join("."));
663
666
  const provider = import_neko_storage2.StorageProviderFactory.create(
664
667
  storage_config.provider,
665
668
  storage_config.config
@@ -710,7 +713,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
710
713
  return server;
711
714
  });
712
715
  var logger = (0, import_neko_helper2.createSingleton)((label) => {
713
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
716
+ const logger_config = import_neko_config2.config.get(["loggers", label].join("."));
714
717
  const rc = new import_neko_logger.Logger(logger_config);
715
718
  rc.setExtrasFunction((message) => {
716
719
  message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
@@ -719,7 +722,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
719
722
  return rc;
720
723
  });
721
724
  var mailer = (0, import_neko_helper2.createSingleton)((label) => {
722
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
725
+ const mailer_config = import_neko_config2.config.get(["mailer", label].join("."));
723
726
  const provider = import_neko_mailer2.MailerProviderFactory.create(
724
727
  mailer_config.provider,
725
728
  mailer_config.config
@@ -728,7 +731,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
728
731
  return rc;
729
732
  });
730
733
  var queue = (0, import_neko_helper2.createSingleton)((label) => {
731
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
734
+ const queue_config = import_neko_config2.config.get(["queues", label].join("."));
732
735
  if (!queue_config) {
733
736
  throw new Error(`Queue configuration for '${label}' not found`);
734
737
  }
@@ -740,7 +743,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
740
743
  return rc;
741
744
  });
742
745
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
743
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
746
+ const cache_config = import_neko_config2.config.get(["caches", label].join("."));
744
747
  if (!cache_config) {
745
748
  throw new Error(`Cache configuration for '${label}' not found`);
746
749
  }
@@ -756,7 +759,7 @@ var import_clipanion2 = require("clipanion");
756
759
  var import_change_case_all = require("change-case-all");
757
760
  var import_path2 = __toESM(require("path"), 1);
758
761
  var fs = __toESM(require("fs/promises"), 1);
759
- var import_neko_config2 = require("@devbro/neko-config");
762
+ var import_neko_config3 = require("@devbro/neko-config");
760
763
  var import_handlebars = __toESM(require("handlebars"), 1);
761
764
  var import_url = require("url");
762
765
  var import_pluralize = __toESM(require("pluralize"), 1);
@@ -783,7 +786,7 @@ var GenerateControllerCommand = class extends import_clipanion2.Command {
783
786
  const filename = `${import_change_case_all.Case.capital(this.name)}Controller.ts`;
784
787
  this.context.stdout.write(`creating migration file ${filename}
785
788
  `);
786
- await fs.mkdir(import_neko_config2.config.get("migration.path"), { recursive: true });
789
+ await fs.mkdir(import_neko_config3.config.get("migration.path"), { recursive: true });
787
790
  let dirname = typeof __dirname === "string" ? __dirname : void 0;
788
791
  if (!dirname) {
789
792
  dirname = import_path2.default.dirname((0, import_url.fileURLToPath)(import_meta.url));
@@ -456,13 +456,16 @@ var Router = class {
456
456
  }
457
457
  };
458
458
 
459
+ // src/router.mts
460
+ var import_neko_config = require("@devbro/neko-config");
461
+
459
462
  // src/facades.mts
460
463
  var import_neko_scheduler = require("@devbro/neko-scheduler");
461
464
  var import_neko_helper2 = require("@devbro/neko-helper");
462
465
  var import_neko_context3 = require("@devbro/neko-context");
463
466
  var import_neko_storage2 = require("@devbro/neko-storage");
464
467
  var import_neko_mailer2 = require("@devbro/neko-mailer");
465
- var import_neko_config = require("@devbro/neko-config");
468
+ var import_neko_config2 = require("@devbro/neko-config");
466
469
  var import_clipanion = require("clipanion");
467
470
 
468
471
  // src/http.mts
@@ -542,8 +545,8 @@ var DatabaseTransport = class {
542
545
  }
543
546
  });
544
547
  }, "processMessage");
545
- constructor(config3 = {}) {
546
- this.config = { ...this.config, ...config3 };
548
+ constructor(config4 = {}) {
549
+ this.config = { ...this.config, ...config4 };
547
550
  this.repeater = (0, import_neko_helper.createRepeater)(
548
551
  this.processMessage,
549
552
  this.config.listen_interval * 1e3
@@ -660,7 +663,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
660
663
  });
661
664
  var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
662
665
  var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
663
- let storage_config = import_neko_config.config.get(["storages", label].join("."));
666
+ let storage_config = import_neko_config2.config.get(["storages", label].join("."));
664
667
  const provider = import_neko_storage2.StorageProviderFactory.create(
665
668
  storage_config.provider,
666
669
  storage_config.config
@@ -711,7 +714,7 @@ var httpServer = (0, import_neko_helper2.createSingleton)(() => {
711
714
  return server;
712
715
  });
713
716
  var logger = (0, import_neko_helper2.createSingleton)((label) => {
714
- const logger_config = import_neko_config.config.get(["loggers", label].join("."));
717
+ const logger_config = import_neko_config2.config.get(["loggers", label].join("."));
715
718
  const rc = new import_neko_logger.Logger(logger_config);
716
719
  rc.setExtrasFunction((message) => {
717
720
  message.requestId = (0, import_neko_context3.ctxSafe)()?.get("requestId") || "N/A";
@@ -720,7 +723,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
720
723
  return rc;
721
724
  });
722
725
  var mailer = (0, import_neko_helper2.createSingleton)((label) => {
723
- const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
726
+ const mailer_config = import_neko_config2.config.get(["mailer", label].join("."));
724
727
  const provider = import_neko_mailer2.MailerProviderFactory.create(
725
728
  mailer_config.provider,
726
729
  mailer_config.config
@@ -729,7 +732,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
729
732
  return rc;
730
733
  });
731
734
  var queue = (0, import_neko_helper2.createSingleton)((label) => {
732
- const queue_config = import_neko_config.config.get(["queues", label].join("."));
735
+ const queue_config = import_neko_config2.config.get(["queues", label].join("."));
733
736
  if (!queue_config) {
734
737
  throw new Error(`Queue configuration for '${label}' not found`);
735
738
  }
@@ -741,7 +744,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
741
744
  return rc;
742
745
  });
743
746
  var cache = (0, import_neko_helper2.createSingleton)((label) => {
744
- const cache_config = import_neko_config.config.get(["caches", label].join("."));
747
+ const cache_config = import_neko_config2.config.get(["caches", label].join("."));
745
748
  if (!cache_config) {
746
749
  throw new Error(`Cache configuration for '${label}' not found`);
747
750
  }
@@ -757,7 +760,7 @@ var import_clipanion2 = require("clipanion");
757
760
  var import_change_case_all = require("change-case-all");
758
761
  var import_path2 = __toESM(require("path"), 1);
759
762
  var fs = __toESM(require("fs/promises"), 1);
760
- var import_neko_config2 = require("@devbro/neko-config");
763
+ var import_neko_config3 = require("@devbro/neko-config");
761
764
  var import_handlebars = __toESM(require("handlebars"), 1);
762
765
  var import_url = require("url");
763
766
  var import_pluralize = __toESM(require("pluralize"), 1);
@@ -784,7 +787,7 @@ var GenerateControllerCommand = class extends import_clipanion2.Command {
784
787
  const filename = `${import_change_case_all.Case.capital(this.name)}Controller.ts`;
785
788
  this.context.stdout.write(`creating migration file ${filename}
786
789
  `);
787
- await fs.mkdir(import_neko_config2.config.get("migration.path"), { recursive: true });
790
+ await fs.mkdir(import_neko_config3.config.get("migration.path"), { recursive: true });
788
791
  let dirname = typeof __dirname === "string" ? __dirname : void 0;
789
792
  if (!dirname) {
790
793
  dirname = import_path2.default.dirname((0, import_url.fileURLToPath)(import_meta.url));