@art-ws/db-context 1.0.3-rc.4 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/{db-client → es/db-client}/db-client.d.ts +5 -4
  2. package/dist/es/db-client/db-client.js +1 -0
  3. package/dist/{db-client → es/db-client}/db-query-base.d.ts +3 -2
  4. package/dist/{db-client → es/db-client}/db-query-base.js +4 -9
  5. package/dist/{db-client → es/db-client}/index.d.ts +0 -1
  6. package/dist/es/db-client/index.js +3 -0
  7. package/dist/{db-context → es/db-context}/db-context.d.ts +6 -5
  8. package/dist/{db-context → es/db-context}/db-context.js +20 -11
  9. package/dist/es/db-context/db-model.d.ts +28 -0
  10. package/dist/es/db-context/db-model.js +235 -0
  11. package/dist/{db-context → es/db-context}/index.d.ts +0 -1
  12. package/dist/es/db-context/index.js +4 -0
  13. package/dist/{db-context → es/db-context}/types.d.ts +11 -4
  14. package/dist/es/db-context/types.js +1 -0
  15. package/dist/{index.d.ts → es/index.d.ts} +0 -1
  16. package/dist/es/index.js +5 -0
  17. package/dist/es/pg/index.d.ts +1 -0
  18. package/dist/es/pg/index.js +2 -0
  19. package/dist/{pg → es/pg}/pg-pool-base.d.ts +2 -2
  20. package/dist/{pg → es/pg}/pg-pool-base.js +27 -18
  21. package/dist/{pg-db-client → es/pg-db-client}/index.d.ts +0 -1
  22. package/dist/es/pg-db-client/index.js +3 -0
  23. package/dist/es/pg-db-client/pg-db-client.d.ts +13 -0
  24. package/dist/{pg-db-client → es/pg-db-client}/pg-db-client.js +15 -14
  25. package/dist/{pg-db-client → es/pg-db-client}/pg-db-query.d.ts +4 -3
  26. package/dist/{pg-db-client → es/pg-db-client}/pg-db-query.js +14 -8
  27. package/dist/es/pg-db-client/pg-type-parser.d.ts +10 -0
  28. package/dist/es/pg-db-client/pg-type-parser.js +57 -0
  29. package/package.json +25 -55
  30. package/dist/db-client/db-client.d.ts.map +0 -1
  31. package/dist/db-client/db-client.js +0 -3
  32. package/dist/db-client/db-client.js.map +0 -1
  33. package/dist/db-client/db-query-base.d.ts.map +0 -1
  34. package/dist/db-client/db-query-base.js.map +0 -1
  35. package/dist/db-client/index.d.ts.map +0 -1
  36. package/dist/db-client/index.js +0 -7
  37. package/dist/db-client/index.js.map +0 -1
  38. package/dist/db-context/db-context.d.ts.map +0 -1
  39. package/dist/db-context/db-context.js.map +0 -1
  40. package/dist/db-context/db-model.d.ts +0 -12
  41. package/dist/db-context/db-model.d.ts.map +0 -1
  42. package/dist/db-context/db-model.js +0 -56
  43. package/dist/db-context/db-model.js.map +0 -1
  44. package/dist/db-context/index.d.ts.map +0 -1
  45. package/dist/db-context/index.js +0 -8
  46. package/dist/db-context/index.js.map +0 -1
  47. package/dist/db-context/types.d.ts.map +0 -1
  48. package/dist/db-context/types.js +0 -3
  49. package/dist/db-context/types.js.map +0 -1
  50. package/dist/index.d.ts.map +0 -1
  51. package/dist/index.js +0 -9
  52. package/dist/index.js.map +0 -1
  53. package/dist/pg/index.d.ts +0 -2
  54. package/dist/pg/index.d.ts.map +0 -1
  55. package/dist/pg/index.js +0 -6
  56. package/dist/pg/index.js.map +0 -1
  57. package/dist/pg/pg-pool-base.d.ts.map +0 -1
  58. package/dist/pg/pg-pool-base.js.map +0 -1
  59. package/dist/pg/pg-pool.d.ts +0 -24
  60. package/dist/pg/pg-pool.d.ts.map +0 -1
  61. package/dist/pg/pg-pool.js +0 -53
  62. package/dist/pg/pg-pool.js.map +0 -1
  63. package/dist/pg/pg-result.d.ts +0 -11
  64. package/dist/pg/pg-result.d.ts.map +0 -1
  65. package/dist/pg/pg-result.js +0 -22
  66. package/dist/pg/pg-result.js.map +0 -1
  67. package/dist/pg-db-client/index.d.ts.map +0 -1
  68. package/dist/pg-db-client/index.js +0 -7
  69. package/dist/pg-db-client/index.js.map +0 -1
  70. package/dist/pg-db-client/pg-db-client-base.d.ts +0 -14
  71. package/dist/pg-db-client/pg-db-client-base.d.ts.map +0 -1
  72. package/dist/pg-db-client/pg-db-client-base.js +0 -43
  73. package/dist/pg-db-client/pg-db-client-base.js.map +0 -1
  74. package/dist/pg-db-client/pg-db-client.d.ts +0 -14
  75. package/dist/pg-db-client/pg-db-client.d.ts.map +0 -1
  76. package/dist/pg-db-client/pg-db-client.js.map +0 -1
  77. package/dist/pg-db-client/pg-db-query.d.ts.map +0 -1
  78. package/dist/pg-db-client/pg-db-query.js.map +0 -1
@@ -1,23 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PgDbClient = void 0;
4
- const common_1 = require("@art-ws/common");
5
- const slf_1 = require("@art-ws/slf");
1
+ import { racePromise } from "@art-ws/common";
2
+ import { getLogger } from "@art-ws/slf";
3
+ import { initPgTypesParsers } from "./pg-type-parser";
6
4
  // https://node-postgres.com/api/client
7
5
  // https://github.com/brianc/node-pg-types
8
- class PgDbClient {
6
+ initPgTypesParsers();
7
+ export class PgDbClient {
8
+ pgClientFactory;
9
+ logger = getLogger(PgDbClient);
9
10
  constructor(pgClientFactory) {
10
11
  this.pgClientFactory = pgClientFactory;
11
- this.logger = slf_1.getLogger(PgDbClient);
12
12
  }
13
+ pgClient;
13
14
  dispose() {
14
- if (this.pgClient) {
15
- this.pgClient.release();
15
+ const { pgClient, logger } = this;
16
+ if (pgClient) {
17
+ logger.trace(() => ["dispose"]);
18
+ pgClient.release();
16
19
  }
17
20
  }
18
21
  async ensureClient() {
19
22
  this.logger.trace(() => ["ensureClient"]);
20
- return await common_1.racePromise("ensureClient", async () => {
23
+ return await racePromise("ensureClient", async () => {
21
24
  this.logger.trace(() => ["ensureClient(racePromise)"]);
22
25
  if (!this.pgClient) {
23
26
  this.logger.trace(() => ["call pgClientFactory"]);
@@ -28,7 +31,7 @@ class PgDbClient {
28
31
  }
29
32
  async queryInternal(queryConfig) {
30
33
  await this.ensureClient();
31
- this.logger.trace(() => [queryConfig, "queryInternal"]);
34
+ this.logger.debug(() => [queryConfig, "queryInternal"]);
32
35
  const result = await this.pgClient.query(queryConfig);
33
36
  this.logger.trace(() => [{ result, queryConfig }, "QueryResult"]);
34
37
  return result;
@@ -37,7 +40,5 @@ class PgDbClient {
37
40
  await this.ensureClient();
38
41
  return this.pgClient;
39
42
  }
40
- async cancel(reason) { }
43
+ async cancel(_reason) { }
41
44
  }
42
- exports.PgDbClient = PgDbClient;
43
- //# sourceMappingURL=pg-db-client.js.map
@@ -1,13 +1,14 @@
1
- import { DbQueryConstructorArgs } from "../db-client";
2
- import { PoolClient } from "pg";
1
+ import type { PoolClient } from "pg";
2
+ import type { DbQueryConstructorArgs } from "../db-client";
3
3
  import { DbQueryBase } from "../db-client/db-query-base";
4
4
  export declare class PgDbQuery<T> extends DbQueryBase<T> {
5
5
  private args;
6
6
  static FACTORY: (args: DbQueryConstructorArgs<PoolClient, unknown[]>) => PgDbQuery<unknown>;
7
7
  constructor(args: DbQueryConstructorArgs<PoolClient, any[]>);
8
+ getName(): string;
8
9
  private getQueryConfig;
9
10
  private getPgDbClient;
11
+ exec(): Promise<number>;
10
12
  asArray(): Promise<T[]>;
11
13
  cancel(reason?: string | Error): Promise<void>;
12
14
  }
13
- //# sourceMappingURL=pg-db-query.d.ts.map
@@ -1,12 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PgDbQuery = void 0;
4
- const db_query_base_1 = require("../db-client/db-query-base");
5
- class PgDbQuery extends db_query_base_1.DbQueryBase {
1
+ import { DbQueryBase } from "../db-client/db-query-base";
2
+ import { PgDbClient } from "./pg-db-client";
3
+ export class PgDbQuery extends DbQueryBase {
4
+ args;
5
+ static FACTORY = (args) => new PgDbQuery(args);
6
6
  constructor(args) {
7
7
  super();
8
8
  this.args = args;
9
9
  }
10
+ getName() {
11
+ return this.args.name || "pg-db-query";
12
+ }
10
13
  getQueryConfig() {
11
14
  const { sql: text, params: values } = this.args;
12
15
  return { text, values: values };
@@ -14,6 +17,12 @@ class PgDbQuery extends db_query_base_1.DbQueryBase {
14
17
  async getPgDbClient() {
15
18
  return (await this.args.dbClientFactory());
16
19
  }
20
+ async exec() {
21
+ const dbClient = await this.getPgDbClient();
22
+ const queryResult = await dbClient.queryInternal(this.getQueryConfig());
23
+ const { rowCount } = queryResult;
24
+ return rowCount || 0;
25
+ }
17
26
  async asArray() {
18
27
  const dbClient = await this.getPgDbClient();
19
28
  const queryResult = await dbClient.queryInternal(this.getQueryConfig());
@@ -25,6 +34,3 @@ class PgDbQuery extends db_query_base_1.DbQueryBase {
25
34
  await dbClient.cancel(reason);
26
35
  }
27
36
  }
28
- exports.PgDbQuery = PgDbQuery;
29
- PgDbQuery.FACTORY = (args) => new PgDbQuery(args);
30
- //# sourceMappingURL=pg-db-query.js.map
@@ -0,0 +1,10 @@
1
+ export declare function initPgFloatParsers(): void;
2
+ export declare function initPgIntParsers(): void;
3
+ export declare enum PgTypeId {
4
+ _int2 = 1005,
5
+ _int4 = 1007,
6
+ _int8 = 1016
7
+ }
8
+ export declare function initPgNumberArrayParsers(): void;
9
+ export declare function initPgDateParsers(): void;
10
+ export declare function initPgTypesParsers(): void;
@@ -0,0 +1,57 @@
1
+ import { types } from "pg";
2
+ // https://github.com/brianc/node-postgres/issues/811
3
+ // https://github.com/brianc/node-pg-types
4
+ // SELECT * FROM pg_type where typcategory = 'N'
5
+ // https://github.com/brianc/node-pg-types/blob/master/lib/builtins.js
6
+ export function initPgFloatParsers() {
7
+ ;
8
+ [
9
+ types.builtins.NUMERIC,
10
+ types.builtins.FLOAT4,
11
+ types.builtins.FLOAT8,
12
+ ].forEach((oid) => {
13
+ types.setTypeParser(oid, parseFloat);
14
+ });
15
+ }
16
+ export function initPgIntParsers() {
17
+ ;
18
+ [types.builtins.INT2, types.builtins.INT4, types.builtins.INT8].forEach((oid) => {
19
+ types.setTypeParser(oid, Number);
20
+ });
21
+ }
22
+ // https://github.com/brianc/node-pg-types/blob/master/lib/textParsers.js
23
+ export var PgTypeId;
24
+ (function (PgTypeId) {
25
+ PgTypeId[PgTypeId["_int2"] = 1005] = "_int2";
26
+ PgTypeId[PgTypeId["_int4"] = 1007] = "_int4";
27
+ PgTypeId[PgTypeId["_int8"] = 1016] = "_int8";
28
+ })(PgTypeId || (PgTypeId = {}));
29
+ function parseNumberArray(value) {
30
+ return value ? value.map(Number) : value;
31
+ }
32
+ export function initPgNumberArrayParsers() {
33
+ ;
34
+ [PgTypeId._int2, PgTypeId._int4, PgTypeId._int8].forEach((oid) => {
35
+ const builtinTypeParser = types.getTypeParser(oid);
36
+ types.setTypeParser(oid, (value) => {
37
+ return parseNumberArray(builtinTypeParser(value));
38
+ });
39
+ });
40
+ }
41
+ function noop(value) {
42
+ return value;
43
+ }
44
+ // https://github.com/brianc/node-postgres/issues/818
45
+ // SELECT typname, oid FROM pg_type where typcategory = 'D' and typnamespace = 11
46
+ export function initPgDateParsers() {
47
+ ;
48
+ [types.builtins.DATE, types.builtins.TIME].forEach((oid) => {
49
+ types.setTypeParser(oid, noop);
50
+ });
51
+ }
52
+ export function initPgTypesParsers() {
53
+ initPgFloatParsers();
54
+ initPgIntParsers();
55
+ initPgNumberArrayParsers();
56
+ initPgDateParsers();
57
+ }
package/package.json CHANGED
@@ -1,67 +1,37 @@
1
1
  {
2
2
  "name": "@art-ws/db-context",
3
- "version": "1.0.3-rc.4",
3
+ "version": "2.0.1",
4
4
  "description": "db-context",
5
5
  "license": "UNLICENSED",
6
+ "type": "module",
6
7
  "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "scripts": {
9
- "build": "tsc",
10
- "watch": "tsc --watch",
11
- "clean": "rimraf dist coverage *.tgz *.tsbuildinfo *.log",
12
- "lint": "eslint --fix --ext .ts .",
13
- "test": "jest",
14
- "fmt": "prettier --write .",
15
- "pack": "pnpm pack",
16
- "link": "pnpm link",
17
- "unlink": "pnpm unlink",
18
- "ncu": "pnpx ncu",
19
- "upgrade": "pnpx ncu -u",
20
- "madge": "pnpx madge --circular --extensions ts .",
21
- "cti": "pnpx cti -n -b -v ./src"
22
- },
8
+ "types": "dist/es",
23
9
  "files": [
24
10
  "dist"
25
11
  ],
26
- "engines": {
27
- "node": ">=14"
28
- },
29
12
  "dependencies": {
30
- "tslib": "2.1.0",
31
- "@art-ws/common": "latest",
32
- "@art-ws/slf": "latest",
33
- "pg": "8.5.1",
34
- "@types/pg": "7.14.9"
13
+ "@types/pg": "^8.10.2",
14
+ "pg": "^8.11.0",
15
+ "tslib": "^2.5.3",
16
+ "@art-ws/common": "2.0.1",
17
+ "@art-ws/slf": "2.0.0"
35
18
  },
36
19
  "devDependencies": {
37
- "@art-ws/tsc": "latest",
38
- "@art-ws/jest": "latest",
39
- "@art-ws/eslint": "latest",
40
- "@art-ws/prettier": "latest",
41
- "@art-ws/package-base": "latest",
42
- "@types/node": "14.14.25",
43
- "rimraf": "3.0.2",
44
- "typescript": "4.1.3",
45
- "eslint": "7.19.0",
46
- "@typescript-eslint/eslint-plugin": "4.14.2",
47
- "@typescript-eslint/parser": "4.14.2",
48
- "eslint-plugin-import": "2.22.1",
49
- "eslint-plugin-jest": "24.1.3",
50
- "eslint-plugin-node": "11.1.0",
51
- "eslint-plugin-promise": "4.2.1",
52
- "eslint-plugin-standard": "4.1.0",
53
- "jest": "26.6.3",
54
- "ts-jest": "26.5.0",
55
- "@types/jest": "26.0.20",
56
- "jest-standard-reporter": "2.0.0",
57
- "chai": "4.3.0",
58
- "@types/chai": "4.2.14",
59
- "eslint-config-standard-with-typescript": "20.0.0",
60
- "eslint-config-prettier": "7.2.0",
61
- "prettier": "2.2.1",
62
- "madge": "4.0.0",
63
- "npm-check-updates": "11.1.1",
64
- "@art-ws/package-template": "latest",
65
- "create-ts-index": "1.13.6"
20
+ "@types/node": "^24.3.0",
21
+ "eslint": "^9.33.0",
22
+ "typescript": "^5.6.2",
23
+ "vitest": "^3.2.4",
24
+ "@art-ws/config-eslint": "2.0.3",
25
+ "@art-ws/config-ts": "2.0.6"
26
+ },
27
+ "scripts": {
28
+ "build": "tsc",
29
+ "check": "pnpm clean && pnpm build && pnpm lint && pnpm test",
30
+ "clean": "rm -rf dist",
31
+ "clean:nm": "rm -rf node_modules",
32
+ "lint": "eslint .",
33
+ "test": "vitest run",
34
+ "test:watch": "vitest",
35
+ "watch": "tsc --watch"
66
36
  }
67
- }
37
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-client.d.ts","sourceRoot":"","sources":["../../src/db-client/db-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,oBAAY,eAAe,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3D,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,CAAC,CAAA;CACX;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IACnB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IAClB,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACvB,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/C;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,IAAI,CAAC;IACpD,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC5E,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;CACpC;AAED,oBAAY,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAC9D,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAC5B,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=db-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-client.js","sourceRoot":"","sources":["../../src/db-client/db-client.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-query-base.d.ts","sourceRoot":"","sources":["../../src/db-client/db-query-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,8BAAsB,WAAW,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,KAAK,EACnC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,EAC9D,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,GAC7D,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAW7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;IAMpB,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;IAKnB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAKlB,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIxC,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAI5C,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAEhC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CACxD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-query-base.js","sourceRoot":"","sources":["../../src/db-client/db-query-base.ts"],"names":[],"mappings":";;;AAEA,MAAsB,WAAW;IAC/B,IAAI,CACF,WAA8D,EAC9D,UAA8D;QAE9D,OAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CACzB,CAAC,IAAI,EAAE,EAAE;YACP,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7C,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1C,CAAC,CAC8C,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACxE,OAAO,IAAI,CAAC,CAAC,CAAM,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,OAAO,IAAI,CAAC,CAAC,CAAM,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAM,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;IAED,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CAKF;AA1CD,kCA0CC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db-client/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- // created from 'create-ts-index'
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./db-client"), exports);
6
- tslib_1.__exportStar(require("./db-query-base"), exports);
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db-client/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;AAEjC,sDAA2B;AAC3B,0DAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-context.d.ts","sourceRoot":"","sources":["../../src/db-context/db-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,OAAO,EACP,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,WAAW,EAAe,MAAM,gBAAgB,CAAA;AAEzD,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;IASzE,OAAO,CAAC,cAAc;IARxB,OAAO,CAAC,QAAQ,CAAmB;IAEnC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAC9C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,IAAI,CAA8B;gBAGxC,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,EACjC,cAAc,EAAE,cAAc;IAexC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI9B,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ;IAIzC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;IAQlC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAOrD,OAAO,IAAI,IAAI;CAKhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-context.js","sourceRoot":"","sources":["../../src/db-context/db-context.ts"],"names":[],"mappings":";;;AAQA,2CAAyD;AAEzD,MAAa,aAAa;IAOxB,YACE,eAAyC,EACjC,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QALhC,cAAS,GAAG,IAAI,GAAG,EAAqB,CAAA;QACxC,SAAI,GAAG,IAAI,GAAG,EAAoB,CAAA;QAMxC,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,CACtB,oBAAW,CACT,aAAa,EACb,KAAK,IAAI,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAA;aACxC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC,EACD,IAAI,CACL,CAAA;IACL,CAAC;IAED,UAAU,CAAI,IAAY;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAe,CAAM,CAAA;IACvC,CAAC;IAES,GAAG,CAAC,IAAa,EAAE,EAAY;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC9B,CAAC;IAES,GAAG,CAAI,IAAa;QAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;SACjC;QACD,OAAO,GAAQ,CAAA;IACjB,CAAC;IAED,UAAU,CAAI,IAA0B;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC;YACzB,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YACzC,GAAG,IAAI;SACR,CAAe,CAAA;IAClB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;SACxB;IACH,CAAC;CACF;AApDD,sCAoDC"}
@@ -1,12 +0,0 @@
1
- import { DbContext } from "./types";
2
- export declare class DbModel<T> implements DbContext.Model, DbContext.ModelApi<T> {
3
- dbContext: DbContext.Context;
4
- meta: DbContext.ModelInfo;
5
- logger: import("@art-ws/slf").Logger;
6
- primaryKeys: DbContext.Column[];
7
- constructor(dbContext: DbContext.Context, meta: DbContext.ModelInfo);
8
- findAll(paging?: DbContext.Paging): DbContext.Query<T>;
9
- findById(id: unknown): DbContext.Query<T>;
10
- findBy(values: Partial<T>): DbContext.Query<T>;
11
- }
12
- //# sourceMappingURL=db-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-model.d.ts","sourceRoot":"","sources":["../../src/db-context/db-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAoBnC,qBAAa,OAAO,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAM9D,SAAS,EAAE,SAAS,CAAC,OAAO;IAC5B,IAAI,EAAE,SAAS,CAAC,SAAS;IANlC,MAAM,+BAAqB;IAE3B,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,CAAK;gBAG3B,SAAS,EAAE,SAAS,CAAC,OAAO,EAC5B,IAAI,EAAE,SAAS,CAAC,SAAS;IAMlC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAKtD,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAUzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;CAU/C"}
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DbModel = void 0;
4
- const slf_1 = require("@art-ws/slf");
5
- function toPagingSQL(o, withDefaults) {
6
- let s = "";
7
- if (!o) {
8
- if (withDefaults) {
9
- o = {
10
- limit: 100,
11
- offset: 0,
12
- };
13
- }
14
- else {
15
- return s;
16
- }
17
- }
18
- if (o.limit)
19
- s += ` limit ${o.limit}`;
20
- if (o.offset)
21
- s += ` offset ${o.offset}`;
22
- return s;
23
- }
24
- class DbModel {
25
- constructor(dbContext, meta) {
26
- this.dbContext = dbContext;
27
- this.meta = meta;
28
- this.logger = slf_1.getLogger(DbModel);
29
- this.primaryKeys = [];
30
- this.primaryKeys = meta.columns.filter((col) => col.isPrimaryKey);
31
- }
32
- // https://stackoverflow.com/questions/3984643/equivalent-of-found-rows-function-in-postgresql/22353886#22353886
33
- findAll(paging) {
34
- const sql = `select * from ${this.meta.table} ${toPagingSQL(paging, true)}`;
35
- return this.dbContext.getDbQuery({ sql, params: [] });
36
- }
37
- findById(id) {
38
- if (this.primaryKeys?.length !== 1)
39
- throw Error(`Table '${this.meta.table}' must have just a single primary key, instead of ${this.primaryKeys.length}`);
40
- const pk = this.primaryKeys[0];
41
- const sql = `select * from ${this.meta.table} where ${pk.name} = $1`;
42
- return this.dbContext.getDbQuery({ sql, params: [id] });
43
- }
44
- findBy(values) {
45
- const params = [];
46
- const s = [];
47
- Object.keys(values).forEach((key, i) => {
48
- s.push(`( ${key} = $${i + 1} )`);
49
- params.push(values[key]);
50
- });
51
- const sql = `select * from ${this.meta.table} where ${s.join(" and ")}`;
52
- return this.dbContext.getDbQuery({ sql, params });
53
- }
54
- }
55
- exports.DbModel = DbModel;
56
- //# sourceMappingURL=db-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-model.js","sourceRoot":"","sources":["../../src/db-context/db-model.ts"],"names":[],"mappings":";;;AACA,qCAAuC;AAEvC,SAAS,WAAW,CAAC,CAAoB,EAAE,YAAsB;IAC/D,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,IAAI,CAAC,CAAC,EAAE;QACN,IAAI,YAAY,EAAE;YAChB,CAAC,GAAG;gBACF,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,CAAC;aACV,CAAA;SACF;aAAM;YACL,OAAO,CAAC,CAAA;SACT;KACF;IACD,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE,CAAA;IACrC,IAAI,CAAC,CAAC,MAAM;QAAE,CAAC,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,CAAA;IACxC,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAa,OAAO;IAKlB,YACS,SAA4B,EAC5B,IAAyB;QADzB,cAAS,GAAT,SAAS,CAAmB;QAC5B,SAAI,GAAJ,IAAI,CAAqB;QANlC,WAAM,GAAG,eAAS,CAAC,OAAO,CAAC,CAAA;QAE3B,gBAAW,GAAuB,EAAE,CAAA;QAMlC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACnE,CAAC;IAED,gHAAgH;IAChH,OAAO,CAAC,MAAyB;QAC/B,MAAM,GAAG,GAAG,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAA;QAC3E,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,QAAQ,CAAC,EAAW;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC;YAChC,MAAM,KAAK,CACT,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,qDAAqD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CACxG,CAAA;QACH,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,IAAI,OAAO,CAAA;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,CAAC,MAAkB;QACvB,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,MAAM,CAAC,GAAG,EAAE,CAAA;QACZ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACrC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IACtD,CAAC;CACF;AAtCD,0BAsCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db-context/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- // created from 'create-ts-index'
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./db-context"), exports);
6
- tslib_1.__exportStar(require("./db-model"), exports);
7
- tslib_1.__exportStar(require("./types"), exports);
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db-context/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;AAEjC,uDAA4B;AAC5B,qDAA0B;AAC1B,kDAAuB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db-context/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAE9E,yBAAiB,SAAS,CAAC;IACzB,UAAiB,MAAM;QACrB,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,MAAM,CAAC,EAAE,GAAG,CAAA;QACZ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,eAAe,CAAC,EAAE,GAAG,CAAA;QACrB,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB;IAED,UAAiB,SAAS;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KACvB;IAED,UAAiB,MAAM;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB;IAED,UAAiB,KAAK;QACpB,SAAS,EAAE,OAAO,CAAA;KACnB;IAED,KAAY,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IAEjC,UAAiB,QAAQ,CAAC,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAClC,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;KACrC;IAED,UAAiB,OAAO;QACtB,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;QACrC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC5C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAA;KAC/B;CACF"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/db-context/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,MAAM,CAAA;AACpB,cAAc,gBAAgB,CAAA"}
package/dist/index.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- // created from 'create-ts-index'
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./db-client"), exports);
6
- tslib_1.__exportStar(require("./db-context"), exports);
7
- tslib_1.__exportStar(require("./pg"), exports);
8
- tslib_1.__exportStar(require("./pg-db-client"), exports);
9
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;AAEjC,sDAA2B;AAC3B,uDAA4B;AAC5B,+CAAoB;AACpB,yDAA8B"}
@@ -1,2 +0,0 @@
1
- export * from "./pg-pool-base";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pg/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAA"}
package/dist/pg/index.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- // created from 'create-ts-index'
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./pg-pool-base"), exports);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pg/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;AAEjC,yDAA8B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-pool-base.d.ts","sourceRoot":"","sources":["../../src/pg/pg-pool-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAA;AAI7D,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAA;AAEjD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAeD,qBAAa,WAAW;IAGH,KAAK,EAAE,eAAe;IAAE,OAAO,CAAC,UAAU;IAF7D,MAAM,+BAAyB;gBAEZ,KAAK,EAAE,eAAe,EAAU,UAAU,EAAE,MAAM;IAE/D,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAwBjE;AAGD,qBAAa,MAAM;IAIE,GAAG,EAAE,MAAM;IAAS,OAAO,EAAE,mBAAmB;IAHnE,MAAM,+BAAoB;IAC1B,IAAI,EAAE,IAAI,CAAA;gBAES,GAAG,EAAE,MAAM,EAAS,OAAO,EAAE,mBAAmB;IAI7D,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAOpC,GAAG;CAMJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-pool-base.js","sourceRoot":"","sources":["../../src/pg/pg-pool-base.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { MemoryCacheBase } from "@art-ws/core";
2
- import { Pool, PoolClient } from "pg";
3
- export interface PgConnectionOptions {
4
- PGHOST: string;
5
- PGDATABASE: string;
6
- PGPORT?: number;
7
- PGUSER?: string;
8
- PGPASSWORD?: string;
9
- }
10
- export declare class PgPoolsBase {
11
- cache: MemoryCacheBase;
12
- private timeToIdle;
13
- constructor(cache: MemoryCacheBase, timeToIdle: number);
14
- acquire(options: PgConnectionOptions): Promise<PoolClient>;
15
- }
16
- export declare class PgPool {
17
- key: string;
18
- options: PgConnectionOptions;
19
- pool: Pool;
20
- constructor(key: string, options: PgConnectionOptions);
21
- acquire(): Promise<PoolClient>;
22
- end(): void;
23
- }
24
- //# sourceMappingURL=pg-pool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-pool.d.ts","sourceRoot":"","sources":["../../src/pg/pg-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAe,MAAM,cAAc,CAAA;AAG3D,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAA;AAEjD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAeD,qBAAa,WAAW;IACH,KAAK,EAAE,eAAe;IAAE,OAAO,CAAC,UAAU;gBAA1C,KAAK,EAAE,eAAe,EAAU,UAAU,EAAE,MAAM;IAE/D,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAoBjE;AAGD,qBAAa,MAAM;IAGE,GAAG,EAAE,MAAM;IAAS,OAAO,EAAE,mBAAmB;IAFnE,IAAI,EAAE,IAAI,CAAA;gBAES,GAAG,EAAE,MAAM,EAAS,OAAO,EAAE,mBAAmB;IAI7D,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAKpC,GAAG;CAGJ"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PgPool = exports.PgPoolsBase = void 0;
4
- const core_1 = require("@art-ws/core");
5
- // https://node-postgres.com/
6
- // https://node-postgres.com/api/cursor
7
- const pg_1 = require("pg");
8
- const getPoolKey = (o) => `postgres://${o.PGHOST || "-"}:${o.PGPORT || "-"}/${o.PGDATABASE || "-"}`;
9
- const toPoolConfig = (o) => {
10
- return {
11
- user: o.PGUSER || "postgres",
12
- password: o.PGPASSWORD || "postgres",
13
- database: o.PGDATABASE || "postgres",
14
- port: o.PGPORT || 5432,
15
- host: o.PGHOST || "localhost",
16
- };
17
- };
18
- class PgPoolsBase {
19
- constructor(cache, timeToIdle) {
20
- this.cache = cache;
21
- this.timeToIdle = timeToIdle;
22
- }
23
- async acquire(options) {
24
- const key = getPoolKey(options);
25
- return core_1.racePromise(key, async () => {
26
- const pool = this.cache.getOrUpdate(key, () => new PgPool(key, options), {
27
- timeToIdle: this.timeToIdle,
28
- onRemove: (pool) => {
29
- pool.end();
30
- },
31
- });
32
- return pool.acquire();
33
- }, this);
34
- }
35
- }
36
- exports.PgPoolsBase = PgPoolsBase;
37
- // https://node-postgres.com/api/client
38
- class PgPool {
39
- constructor(key, options) {
40
- this.key = key;
41
- this.options = options;
42
- this.pool = new pg_1.Pool(toPoolConfig(options));
43
- }
44
- async acquire() {
45
- const client = await this.pool.connect();
46
- return client;
47
- }
48
- end() {
49
- this.pool.end();
50
- }
51
- }
52
- exports.PgPool = PgPool;
53
- //# sourceMappingURL=pg-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../src/pg/pg-pool.ts"],"names":[],"mappings":";;;AAAA,uCAA2D;AAC3D,6BAA6B;AAC7B,uCAAuC;AACvC,2BAAiD;AAUjD,MAAM,UAAU,GAAG,CAAC,CAAsB,EAAE,EAAE,CAC5C,cAAc,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,EAAE,CAAA;AAE3E,MAAM,YAAY,GAAG,CAAC,CAAsB,EAAc,EAAE;IAC1D,OAAmB;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,UAAU;QAC5B,QAAQ,EAAE,CAAC,CAAC,UAAU,IAAI,UAAU;QACpC,QAAQ,EAAE,CAAC,CAAC,UAAU,IAAI,UAAU;QACpC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;QACtB,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,WAAW;KAC9B,CAAA;AACH,CAAC,CAAA;AAED,MAAa,WAAW;IACtB,YAAmB,KAAsB,EAAU,UAAkB;QAAlD,UAAK,GAAL,KAAK,CAAiB;QAAU,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAEzE,KAAK,CAAC,OAAO,CAAC,OAA4B;QACxC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QAC/B,OAAO,kBAAW,CAChB,GAAG,EACH,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,GAAW,IAAI,CAAC,KAAK,CAAC,WAAW,CACzC,GAAG,EACH,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAC9B;gBACE,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;oBACzB,IAAI,CAAC,GAAG,EAAE,CAAA;gBACZ,CAAC;aACF,CACF,CAAA;YACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC,EACD,IAAI,CACL,CAAA;IACH,CAAC;CACF;AAvBD,kCAuBC;AAED,uCAAuC;AACvC,MAAa,MAAM;IAGjB,YAAmB,GAAW,EAAS,OAA4B;QAAhD,QAAG,GAAH,GAAG,CAAQ;QAAS,YAAO,GAAP,OAAO,CAAqB;QACjE,IAAI,CAAC,IAAI,GAAG,IAAI,SAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAe,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;IACjB,CAAC;CACF;AAfD,wBAeC"}
@@ -1,11 +0,0 @@
1
- import { DbContext } from '../db-context/types';
2
- import { PgDbClient } from '../pg-db-client/pg-db-client';
3
- export declare class PgResult<T> implements DbContext.Result<T> {
4
- dbClient: PgDbClient;
5
- constructor(dbClient: PgDbClient);
6
- single(): Promise<T>;
7
- first(): Promise<T>;
8
- asArray(): Promise<T[]>;
9
- cancel(): Promise<void>;
10
- }
11
- //# sourceMappingURL=pg-result.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-result.d.ts","sourceRoot":"","sources":["../../src/pg/pg-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,qBAAa,QAAQ,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAElC,QAAQ,EAAE,UAAU;gBAApB,QAAQ,EAAE,UAAU;IAEvC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;IAIpB,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;IAInB,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAIxB"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PgResult = void 0;
4
- class PgResult {
5
- constructor(dbClient) {
6
- this.dbClient = dbClient;
7
- }
8
- single() {
9
- throw new Error('Method not implemented.');
10
- }
11
- first() {
12
- throw new Error('Method not implemented.');
13
- }
14
- asArray() {
15
- throw new Error('Method not implemented.');
16
- }
17
- cancel() {
18
- throw new Error('Method not implemented.');
19
- }
20
- }
21
- exports.PgResult = PgResult;
22
- //# sourceMappingURL=pg-result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-result.js","sourceRoot":"","sources":["../../src/pg/pg-result.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAQ;IAEnB,YAAmB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IAAE,CAAC;IAE1C,MAAM;QACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK;QACH,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CAEF;AApBD,4BAoBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pg-db-client/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA"}