@devbro/pashmak 0.1.34 → 0.1.36
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.d.mts +2 -2
- package/dist/DatabaseServiceProvider.mjs +5 -5
- package/dist/DatabaseServiceProvider.mjs.map +1 -1
- package/dist/bin/DatabaseServiceProvider.cjs +5 -5
- package/dist/bin/cache.cjs +5 -9
- package/dist/bin/index.cjs +5 -5
- package/dist/cache.mjs +5 -9
- package/dist/cache.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Middleware, Request, Response } from '@devbro/neko-router';
|
|
2
|
-
import { PostgresqlConnection } from '@devbro/neko-sql';
|
|
3
2
|
import { PoolConfig } from 'pg';
|
|
3
|
+
import { Connection } from '@devbro/neko-sql';
|
|
4
4
|
|
|
5
5
|
declare class DatabaseServiceProvider extends Middleware {
|
|
6
6
|
call(req: Request, res: Response, next: () => Promise<void>): Promise<void>;
|
|
7
7
|
private static instance;
|
|
8
8
|
register(): Promise<void>;
|
|
9
9
|
static getInstance(): DatabaseServiceProvider;
|
|
10
|
-
getConnection(db_config: PoolConfig):
|
|
10
|
+
getConnection(db_config: PoolConfig): Connection;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export { DatabaseServiceProvider };
|
|
@@ -19,7 +19,7 @@ class DatabaseServiceProvider extends Middleware {
|
|
|
19
19
|
ctx().set(["database", name], conn);
|
|
20
20
|
conns.push(conn);
|
|
21
21
|
}
|
|
22
|
-
BaseModel.setConnection(
|
|
22
|
+
BaseModel.setConnection(() => {
|
|
23
23
|
const key = ["database", "default"];
|
|
24
24
|
let rc;
|
|
25
25
|
if (ctx.isActive()) {
|
|
@@ -27,7 +27,7 @@ class DatabaseServiceProvider extends Middleware {
|
|
|
27
27
|
} else if (Global.has(key)) {
|
|
28
28
|
rc = Global.get(key);
|
|
29
29
|
} else {
|
|
30
|
-
rc =
|
|
30
|
+
rc = this.getConnection(db_configs["default"]);
|
|
31
31
|
Global.set(key, rc);
|
|
32
32
|
}
|
|
33
33
|
return rc;
|
|
@@ -48,10 +48,10 @@ class DatabaseServiceProvider extends Middleware {
|
|
|
48
48
|
}
|
|
49
49
|
return DatabaseServiceProvider.instance;
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
getConnection(db_config) {
|
|
52
52
|
const conn = new PostgresqlConnection(db_config);
|
|
53
|
-
if (!
|
|
54
|
-
|
|
53
|
+
if (!conn.isConnected()) {
|
|
54
|
+
conn.connect();
|
|
55
55
|
}
|
|
56
56
|
return conn;
|
|
57
57
|
}
|
|
@@ -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\";\nimport { Global } from \"./global.mjs\";\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.mjs\";\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 const key = [\"database\", \"default\"];\n let rc: Connection | undefined;\n\n if (ctx.isActive()) {\n rc = ctx().get<Connection>(key);\n } else if (Global.has(key)) {\n rc = Global.get<Connection>(key);\n } else {\n rc = this.getConnection(db_configs[\"default\"]);\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 getConnection(db_config: PoolConfig): Connection {\n const conn = new PostgresqlConnection(db_config);\n if (!conn.isConnected()) {\n conn.connect();\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,MAAM;AAC5B,cAAM,MAAM,CAAC,YAAY,SAAS;AAClC,YAAI;AAEJ,YAAI,IAAI,SAAS,GAAG;AAClB,eAAK,IAAI,EAAE,IAAgB,GAAG;AAAA,QAChC,WAAW,OAAO,IAAI,GAAG,GAAG;AAC1B,eAAK,OAAO,IAAgB,GAAG;AAAA,QACjC,OAAO;AACL,eAAK,KAAK,cAAc,WAAW,SAAS,CAAC;AAC7C,iBAAO,IAAI,KAAK,EAAE;AAAA,QACpB;AAEA,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,cAAc,WAAmC;AAC/C,UAAM,OAAO,IAAI,qBAAqB,SAAS;AAC/C,QAAI,CAAC,KAAK,YAAY,GAAG;AACvB,WAAK,QAAQ;AAAA,IACf;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -98,7 +98,7 @@ var DatabaseServiceProvider = class _DatabaseServiceProvider extends Middleware
|
|
|
98
98
|
(0, import_neko_context.ctx)().set(["database", name], conn);
|
|
99
99
|
conns.push(conn);
|
|
100
100
|
}
|
|
101
|
-
import_neko_orm.BaseModel.setConnection(
|
|
101
|
+
import_neko_orm.BaseModel.setConnection(() => {
|
|
102
102
|
const key = ["database", "default"];
|
|
103
103
|
let rc;
|
|
104
104
|
if (import_neko_context.ctx.isActive()) {
|
|
@@ -106,7 +106,7 @@ var DatabaseServiceProvider = class _DatabaseServiceProvider extends Middleware
|
|
|
106
106
|
} else if (Global.has(key)) {
|
|
107
107
|
rc = Global.get(key);
|
|
108
108
|
} else {
|
|
109
|
-
rc =
|
|
109
|
+
rc = this.getConnection(db_configs["default"]);
|
|
110
110
|
Global.set(key, rc);
|
|
111
111
|
}
|
|
112
112
|
return rc;
|
|
@@ -127,10 +127,10 @@ var DatabaseServiceProvider = class _DatabaseServiceProvider extends Middleware
|
|
|
127
127
|
}
|
|
128
128
|
return _DatabaseServiceProvider.instance;
|
|
129
129
|
}
|
|
130
|
-
|
|
130
|
+
getConnection(db_config) {
|
|
131
131
|
const conn = new import_neko_sql.PostgresqlConnection(db_config);
|
|
132
|
-
if (!
|
|
133
|
-
|
|
132
|
+
if (!conn.isConnected()) {
|
|
133
|
+
conn.connect();
|
|
134
134
|
}
|
|
135
135
|
return conn;
|
|
136
136
|
}
|
package/dist/bin/cache.cjs
CHANGED
|
@@ -756,19 +756,15 @@ var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
756
756
|
});
|
|
757
757
|
|
|
758
758
|
// src/cache.mts
|
|
759
|
-
var crypto = __toESM(require("crypto"), 1);
|
|
760
759
|
async function cacheQuery(q, options = {}) {
|
|
761
760
|
options.ttl = options.ttl ?? 3600;
|
|
762
761
|
options.cache_label = options.cache_label ?? "default";
|
|
763
762
|
const sql = q.toSql();
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
const rc = await q.get();
|
|
770
|
-
await cache(options.cache_label).put(key, JSON.stringify(rc), options.ttl);
|
|
771
|
-
return rc;
|
|
763
|
+
return await cache(options.cache_label).remember(
|
|
764
|
+
sql,
|
|
765
|
+
async () => await q.get(),
|
|
766
|
+
options
|
|
767
|
+
);
|
|
772
768
|
}
|
|
773
769
|
__name(cacheQuery, "cacheQuery");
|
|
774
770
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/bin/index.cjs
CHANGED
|
@@ -2904,7 +2904,7 @@ var init_DatabaseServiceProvider = __esm({
|
|
|
2904
2904
|
(0, import_neko_context6.ctx)().set(["database", name], conn);
|
|
2905
2905
|
conns.push(conn);
|
|
2906
2906
|
}
|
|
2907
|
-
import_neko_orm.BaseModel.setConnection(
|
|
2907
|
+
import_neko_orm.BaseModel.setConnection(() => {
|
|
2908
2908
|
const key = ["database", "default"];
|
|
2909
2909
|
let rc;
|
|
2910
2910
|
if (import_neko_context6.ctx.isActive()) {
|
|
@@ -2912,7 +2912,7 @@ var init_DatabaseServiceProvider = __esm({
|
|
|
2912
2912
|
} else if (Global.has(key)) {
|
|
2913
2913
|
rc = Global.get(key);
|
|
2914
2914
|
} else {
|
|
2915
|
-
rc =
|
|
2915
|
+
rc = this.getConnection(db_configs["default"]);
|
|
2916
2916
|
Global.set(key, rc);
|
|
2917
2917
|
}
|
|
2918
2918
|
return rc;
|
|
@@ -2933,10 +2933,10 @@ var init_DatabaseServiceProvider = __esm({
|
|
|
2933
2933
|
}
|
|
2934
2934
|
return _DatabaseServiceProvider.instance;
|
|
2935
2935
|
}
|
|
2936
|
-
|
|
2936
|
+
getConnection(db_config) {
|
|
2937
2937
|
const conn = new import_neko_sql2.PostgresqlConnection(db_config);
|
|
2938
|
-
if (!
|
|
2939
|
-
|
|
2938
|
+
if (!conn.isConnected()) {
|
|
2939
|
+
conn.connect();
|
|
2940
2940
|
}
|
|
2941
2941
|
return conn;
|
|
2942
2942
|
}
|
package/dist/cache.mjs
CHANGED
|
@@ -2,19 +2,15 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
export * from "@devbro/neko-cache";
|
|
4
4
|
import { cache } from "./facades.mjs";
|
|
5
|
-
import * as crypto from "crypto";
|
|
6
5
|
async function cacheQuery(q, options = {}) {
|
|
7
6
|
options.ttl = options.ttl ?? 3600;
|
|
8
7
|
options.cache_label = options.cache_label ?? "default";
|
|
9
8
|
const sql = q.toSql();
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const rc = await q.get();
|
|
16
|
-
await cache(options.cache_label).put(key, JSON.stringify(rc), options.ttl);
|
|
17
|
-
return rc;
|
|
9
|
+
return await cache(options.cache_label).remember(
|
|
10
|
+
sql,
|
|
11
|
+
async () => await q.get(),
|
|
12
|
+
options
|
|
13
|
+
);
|
|
18
14
|
}
|
|
19
15
|
__name(cacheQuery, "cacheQuery");
|
|
20
16
|
export {
|
package/dist/cache.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cache.mts"],"sourcesContent":["export * from \"@devbro/neko-cache\";\n\nimport { Query } from \"@devbro/neko-sql\";\nimport { cache } from \"./facades.mjs\";\nimport * as crypto from \"crypto\";\n\nexport type CacheQueryOptions = {\n ttl?: number;\n tags?: string[];\n cache_label?: string;\n};\n\nexport async function cacheQuery(\n q: Query,\n options: CacheQueryOptions = {},\n): ReturnType<Query[\"get\"]> {\n options.ttl = options.ttl ?? 3600; // default TTL 1 hour\n options.cache_label = options.cache_label ?? \"default\";\n const sql = q.toSql();\n\n
|
|
1
|
+
{"version":3,"sources":["../src/cache.mts"],"sourcesContent":["export * from \"@devbro/neko-cache\";\n\nimport { Query } from \"@devbro/neko-sql\";\nimport { cache } from \"./facades.mjs\";\nimport * as crypto from \"crypto\";\nimport { JSONValue } from \"@devbro/neko-helper\";\n\nexport type CacheQueryOptions = {\n ttl?: number;\n tags?: string[];\n cache_label?: string;\n};\n\nexport async function cacheQuery(\n q: Query,\n options: CacheQueryOptions = {},\n): ReturnType<Query[\"get\"]> {\n options.ttl = options.ttl ?? 3600; // default TTL 1 hour\n options.cache_label = options.cache_label ?? \"default\";\n const sql = q.toSql();\n\n return await cache(options.cache_label).remember(\n sql as JSONValue,\n async () => await q.get(),\n options,\n );\n}\n"],"mappings":";;AAAA,cAAc;AAGd,SAAS,aAAa;AAUtB,eAAsB,WACpB,GACA,UAA6B,CAAC,GACJ;AAC1B,UAAQ,MAAM,QAAQ,OAAO;AAC7B,UAAQ,cAAc,QAAQ,eAAe;AAC7C,QAAM,MAAM,EAAE,MAAM;AAEpB,SAAO,MAAM,MAAM,QAAQ,WAAW,EAAE;AAAA,IACtC;AAAA,IACA,YAAY,MAAM,EAAE,IAAI;AAAA,IACxB;AAAA,EACF;AACF;AAbsB;","names":[]}
|