@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.
- package/dist/DatabaseServiceProvider.mjs +18 -3
- package/dist/DatabaseServiceProvider.mjs.map +1 -1
- package/dist/bin/DatabaseServiceProvider.cjs +60 -3
- package/dist/bin/app/console/DefaultCommand.cjs +11 -8
- package/dist/bin/app/console/KeyGenerateCommand.cjs +11 -8
- package/dist/bin/app/console/StartCommand.cjs +15 -12
- package/dist/bin/app/console/generate/GenerateApiDocsCommand.cjs +11 -8
- package/dist/bin/app/console/generate/GenerateControllerCommand.cjs +13 -10
- package/dist/bin/app/console/generate/index.cjs +13 -10
- package/dist/bin/app/console/index.cjs +28 -25
- package/dist/bin/app/console/migrate/GenerateMigrateCommand.cjs +14 -11
- package/dist/bin/app/console/migrate/MigrateCommand.cjs +14 -11
- package/dist/bin/app/console/migrate/MigrateRollbackCommand.cjs +13 -10
- package/dist/bin/app/console/migrate/index.cjs +19 -16
- package/dist/bin/app/console/queue/GenerateQueueMigrateCommand.cjs +14 -11
- package/dist/bin/cache.cjs +11 -8
- package/dist/bin/facades.cjs +11 -8
- package/dist/bin/factories.cjs +11 -8
- package/dist/bin/global.cjs +69 -0
- package/dist/bin/index.cjs +105 -42
- package/dist/bin/middlewares.cjs +11 -8
- package/dist/bin/queue.cjs +11 -8
- package/dist/bin/router.cjs +33 -0
- package/dist/global.d.mts +12 -0
- package/dist/global.mjs +45 -0
- package/dist/global.mjs.map +1 -0
- package/dist/router.d.mts +4 -2
- package/dist/router.mjs +32 -0
- package/dist/router.mjs.map +1 -1
- package/package.json +6 -1
|
@@ -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
|
-
|
|
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(()
|
|
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
|
-
|
|
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
|
|
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(
|
|
546
|
-
this.config = { ...this.config, ...
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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(
|
|
549
|
-
this.config = { ...this.config, ...
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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(
|
|
547
|
-
this.config = { ...this.config, ...
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
794
|
+
await server.listen(import_neko_config3.config.get("port"), () => {
|
|
792
795
|
logger().info(
|
|
793
|
-
"Server is running on http://localhost:" +
|
|
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
|
|
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(
|
|
545
|
-
this.config = { ...this.config, ...
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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(
|
|
545
|
-
this.config = { ...this.config, ...
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
546
|
-
this.config = { ...this.config, ...
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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(
|
|
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));
|