@starbemtech/star-db-query-builder 1.0.35 → 1.0.37

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.
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1745450103545" clover="3.2.0">
3
- <project timestamp="1745450103545" name="All files">
2
+ <coverage generated="1745450914749" clover="3.2.0">
3
+ <project timestamp="1745450914749" name="All files">
4
4
  <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0" elements="0" coveredelements="0" complexity="0" loc="0" ncloc="0" packages="0" files="0" classes="0"/>
5
5
  </project>
6
6
  </coverage>
@@ -86,7 +86,7 @@
86
86
  <div class='footer quiet pad2 space-top1 center small'>
87
87
  Code coverage generated by
88
88
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
89
- at 2025-04-23T23:15:03.541Z
89
+ at 2025-04-23T23:28:34.744Z
90
90
  </div>
91
91
  <script src="prettify.js"></script>
92
92
  <script>
package/dist/index.d.ts CHANGED
@@ -3,5 +3,5 @@ import { PoolOptions as MySqlPoolOptions } from 'mysql2';
3
3
  import { Conditions as TypeConditions } from './src/default/types';
4
4
  export * from './src/db/initDb';
5
5
  export * from './src/default/genericRepository';
6
- export * from './src/services/payment';
6
+ export * from './src/monitor/monitor';
7
7
  export type { PgPoolConfig, MySqlPoolOptions, TypeConditions };
package/dist/index.js CHANGED
@@ -18,6 +18,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  __exportStar(require("./src/db/initDb"), exports);
19
19
  // Generic Repository
20
20
  __exportStar(require("./src/default/genericRepository"), exports);
21
- // Services Repository
22
- __exportStar(require("./src/services/payment"), exports);
21
+ // Monitor
22
+ __exportStar(require("./src/monitor/monitor"), exports);
23
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,UAAU;AACV,kDAA+B;AAE/B,qBAAqB;AACrB,kEAA+C;AAE/C,sBAAsB;AACtB,yDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,UAAU;AACV,kDAA+B;AAE/B,qBAAqB;AACrB,kEAA+C;AAE/C,UAAU;AACV,wDAAqC"}
@@ -1,7 +1,11 @@
1
1
  import { IDatabaseClient } from './IDatabaseClient';
2
- import { DBClients } from '../default/types';
2
+ import { DBClients, RetryOptions } from '../default/types';
3
3
  export declare const initDb: <T>(config: {
4
+ name?: string;
4
5
  type: DBClients;
5
6
  options: T;
6
- }) => void;
7
- export declare const getDbClient: () => IDatabaseClient;
7
+ retryOptions?: RetryOptions;
8
+ installUnaccentExtension?: boolean;
9
+ }) => Promise<void>;
10
+ export declare const getDbClient: (name?: string) => IDatabaseClient;
11
+ export declare const getAllDbClients: () => Record<string, IDatabaseClient>;
@@ -1,36 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDbClient = exports.initDb = void 0;
3
+ exports.getAllDbClients = exports.getDbClient = exports.initDb = void 0;
4
4
  const pg_1 = require("pg");
5
5
  const promise_1 = require("mysql2/promise");
6
6
  const pgClient_1 = require("./pgClient");
7
7
  const mysqlClient_1 = require("./mysqlClient");
8
- let dbClient = null;
9
- const initDb = (config) => {
8
+ const dbClients = {};
9
+ const defaultName = 'default';
10
+ const initDb = async (config) => {
10
11
  if (!config.type)
11
12
  throw new Error('Type is required. Accept values: pg | mysql');
12
13
  if (!config.options)
13
14
  throw new Error('Connection options is required');
14
15
  if (config.type === 'pg') {
16
+ const poolConfig = config.options;
15
17
  const pool = new pg_1.Pool(config.options);
16
- dbClient = (0, pgClient_1.createPgClient)(pool);
17
- console.log(`@starbemtech/star-db-query-builder: Postgres db client created success`);
18
+ dbClients[config.name || defaultName] = await (0, pgClient_1.createPgClient)(pool, config.retryOptions, poolConfig, config.installUnaccentExtension);
19
+ console.log(`@starbemtech/star-db-query-builder: Postgres db client "${config.name}" created successfully`);
18
20
  }
19
21
  else if (config.type === 'mysql') {
20
22
  const pool = (0, promise_1.createPool)(config.options);
21
- dbClient = (0, mysqlClient_1.createMysqlClient)(pool);
22
- console.info(`@starbemtech/star-db-query-builder: MySQL db client created success.`);
23
+ dbClients[config.name || defaultName] = (0, mysqlClient_1.createMysqlClient)(pool, config.retryOptions);
24
+ console.info(`@starbemtech/star-db-query-builder: Postgres db client "${config.name}" created successfully`);
23
25
  }
24
26
  else {
25
27
  throw new Error('Unsupported database type');
26
28
  }
27
29
  };
28
30
  exports.initDb = initDb;
29
- const getDbClient = () => {
30
- if (!dbClient) {
31
- throw new Error('Database client is not initialized');
31
+ const getDbClient = (name) => {
32
+ const client = dbClients[name || defaultName];
33
+ if (!client) {
34
+ throw new Error(`Database client "${name}" is not initialized`);
32
35
  }
33
- return dbClient;
36
+ return client;
34
37
  };
35
38
  exports.getDbClient = getDbClient;
39
+ const getAllDbClients = () => {
40
+ return dbClients;
41
+ };
42
+ exports.getAllDbClients = getAllDbClients;
36
43
  //# sourceMappingURL=initDb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initDb.js","sourceRoot":"","sources":["../../../src/db/initDb.ts"],"names":[],"mappings":";;;AAAA,2BAAmC;AACnC,4CAA8D;AAC9D,yCAA2C;AAC3C,+CAAiD;AAIjD,IAAI,QAAQ,GAA2B,IAAI,CAAA;AAEpC,MAAM,MAAM,GAAG,CAAI,MAAuC,EAAQ,EAAE;IACzE,IAAI,CAAC,MAAM,CAAC,IAAI;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAEhE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAEtE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,SAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACvC,QAAQ,GAAG,IAAA,yBAAc,EAAC,IAAI,CAAC,CAAA;QAE/B,OAAO,CAAC,GAAG,CACT,wEAAwE,CACzE,CAAA;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAA,oBAAe,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5C,QAAQ,GAAG,IAAA,+BAAiB,EAAC,IAAI,CAAC,CAAA;QAElC,OAAO,CAAC,IAAI,CACV,sEAAsE,CACvE,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC,CAAA;AAvBY,QAAA,MAAM,UAuBlB;AAEM,MAAM,WAAW,GAAG,GAAoB,EAAE;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AANY,QAAA,WAAW,eAMvB"}
1
+ {"version":3,"file":"initDb.js","sourceRoot":"","sources":["../../../src/db/initDb.ts"],"names":[],"mappings":";;;AAAA,2BAAqC;AACrC,4CAA8D;AAC9D,yCAA2C;AAC3C,+CAAiD;AAIjD,MAAM,SAAS,GAAoC,EAAE,CAAA;AACrD,MAAM,WAAW,GAAG,SAAS,CAAA;AAEtB,MAAM,MAAM,GAAG,KAAK,EAAK,MAM/B,EAAiB,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,IAAI;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAEhE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAEtE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAgC,CAAA;QAC1D,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,MAAM,IAAA,yBAAc,EAC1D,IAAI,EACJ,MAAM,CAAC,YAAY,EACnB,UAAU,EACV,MAAM,CAAC,wBAAwB,CAChC,CAAA;QAED,OAAO,CAAC,GAAG,CACT,2DAA2D,MAAM,CAAC,IAAI,wBAAwB,CAC/F,CAAA;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAA,oBAAe,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,IAAA,+BAAiB,EACvD,IAAI,EACJ,MAAM,CAAC,YAAY,CACpB,CAAA;QAED,OAAO,CAAC,IAAI,CACV,2DAA2D,MAAM,CAAC,IAAI,wBAAwB,CAC/F,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC,CAAA;AAtCY,QAAA,MAAM,UAsClB;AAEM,MAAM,WAAW,GAAG,CAAC,IAAa,EAAmB,EAAE;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,IAAI,WAAW,CAAC,CAAA;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,sBAAsB,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAPY,QAAA,WAAW,eAOvB;AAEM,MAAM,eAAe,GAAG,GAAoC,EAAE;IACnE,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B"}
@@ -1,3 +1,4 @@
1
1
  import { Pool } from 'mysql2/promise';
2
2
  import { IDatabaseClient } from './IDatabaseClient';
3
- export declare const createMysqlClient: (pool: Pool) => IDatabaseClient;
3
+ import { RetryOptions } from '../default/types';
4
+ export declare const createMysqlClient: (pool: Pool, retryOptions?: RetryOptions) => IDatabaseClient;
@@ -1,12 +1,74 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.createMysqlClient = void 0;
4
- const createMysqlClient = (pool) => ({
5
- clientType: 'mysql',
6
- query: async (sql, params) => {
7
- const [rows] = await pool.execute(sql, params);
8
- return rows;
9
- },
10
- });
7
+ const promise_retry_1 = __importDefault(require("promise-retry"));
8
+ const monitor_1 = require("../monitor/monitor");
9
+ const transientErrorCodes = new Set([
10
+ 'ECONNRESET',
11
+ 'ETIMEDOUT',
12
+ 'PROTOCOL_CONNECTION_LOST',
13
+ 'ECONNREFUSED',
14
+ ]);
15
+ function isTransientError(error) {
16
+ return error && error.code && transientErrorCodes.has(error.code);
17
+ }
18
+ const createMysqlClient = (pool, retryOptions) => {
19
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.CONNECTION_CREATED, {
20
+ clientType: 'mysql',
21
+ poolOptions: pool.config,
22
+ });
23
+ return {
24
+ clientType: 'mysql',
25
+ query: async (sql, params) => {
26
+ return (0, promise_retry_1.default)(async (retry, attempt) => {
27
+ const startTime = Date.now();
28
+ try {
29
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_START, {
30
+ clientType: 'mysql',
31
+ sql,
32
+ params,
33
+ attempt,
34
+ });
35
+ const [rows] = await pool.execute(sql, params);
36
+ const elapsedTime = Date.now() - startTime;
37
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_END, {
38
+ clientType: 'mysql',
39
+ sql,
40
+ params,
41
+ attempt,
42
+ elapsedTime,
43
+ });
44
+ return rows;
45
+ }
46
+ catch (error) {
47
+ const elapsedTime = Date.now() - startTime;
48
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_ERROR, {
49
+ clientType: 'mysql',
50
+ sql,
51
+ params,
52
+ attempt,
53
+ elapsedTime,
54
+ error,
55
+ });
56
+ if (isTransientError(error)) {
57
+ console.warn(`MySQL query attempt ${attempt} failed, retrying...`, error);
58
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.RETRY_ATTEMPT, {
59
+ clientType: 'mysql',
60
+ sql,
61
+ params,
62
+ attempt,
63
+ error,
64
+ });
65
+ return retry(error);
66
+ }
67
+ throw error;
68
+ }
69
+ }, retryOptions);
70
+ },
71
+ };
72
+ };
11
73
  exports.createMysqlClient = createMysqlClient;
12
74
  //# sourceMappingURL=mysqlClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mysqlClient.js","sourceRoot":"","sources":["../../../src/db/mysqlClient.ts"],"names":[],"mappings":";;;AAGO,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAmB,EAAE,CAAC,CAAC;IACjE,UAAU,EAAE,OAAO;IACnB,KAAK,EAAE,KAAK,EAAK,GAAW,EAAE,MAAc,EAAc,EAAE;QAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC9C,OAAO,IAAoB,CAAA;IAC7B,CAAC;CACF,CAAC,CAAA;AANW,QAAA,iBAAiB,qBAM5B"}
1
+ {"version":3,"file":"mysqlClient.js","sourceRoot":"","sources":["../../../src/db/mysqlClient.ts"],"names":[],"mappings":";;;;;;AACA,kEAAwC;AAGxC,gDAA2D;AAE3D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,YAAY;IACZ,WAAW;IACX,0BAA0B;IAC1B,cAAc;CACf,CAAC,CAAA;AAEF,SAAS,gBAAgB,CAAC,KAAU;IAClC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACnE,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAC/B,IAAU,EACV,YAA2B,EACV,EAAE;IACnB,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,kBAAkB,EAAE;QAC7C,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,IAAI,CAAC,MAAM;KACzB,CAAC,CAAA;IAEF,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,KAAK,EAAE,KAAK,EAAK,GAAW,EAAE,MAAc,EAAc,EAAE;YAC1D,OAAO,IAAA,uBAAY,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC5B,IAAI,CAAC;oBACH,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,WAAW,EAAE;wBACtC,UAAU,EAAE,OAAO;wBACnB,GAAG;wBACH,MAAM;wBACN,OAAO;qBACR,CAAC,CAAA;oBAEF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBAE9C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;oBAC1C,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,SAAS,EAAE;wBACpC,UAAU,EAAE,OAAO;wBACnB,GAAG;wBACH,MAAM;wBACN,OAAO;wBACP,WAAW;qBACZ,CAAC,CAAA;oBAEF,OAAO,IAAoB,CAAA;gBAC7B,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;oBAC1C,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,WAAW,EAAE;wBACtC,UAAU,EAAE,OAAO;wBACnB,GAAG;wBACH,MAAM;wBACN,OAAO;wBACP,WAAW;wBACX,KAAK;qBACN,CAAC,CAAA;oBAEF,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,IAAI,CACV,uBAAuB,OAAO,sBAAsB,EACpD,KAAK,CACN,CAAA;wBACD,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,aAAa,EAAE;4BACxC,UAAU,EAAE,OAAO;4BACnB,GAAG;4BACH,MAAM;4BACN,OAAO;4BACP,KAAK;yBACN,CAAC,CAAA;wBAEF,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;oBACrB,CAAC;oBAED,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC,EAAE,YAAY,CAAC,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAlEY,QAAA,iBAAiB,qBAkE7B"}
@@ -1,3 +1,4 @@
1
- import { Pool } from 'pg';
1
+ import { Pool, PoolConfig } from 'pg';
2
2
  import { IDatabaseClient } from './IDatabaseClient';
3
- export declare const createPgClient: (pool: Pool) => IDatabaseClient;
3
+ import { RetryOptions } from '../default/types';
4
+ export declare const createPgClient: (pool: Pool, retryOptions?: RetryOptions, poolConfig?: PoolConfig, installUnaccentExtension?: boolean) => Promise<IDatabaseClient>;
@@ -1,12 +1,97 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.createPgClient = void 0;
4
- const createPgClient = (pool) => ({
5
- clientType: 'pg',
6
- query: async (sql, params) => {
7
- const { rows } = await pool.query(sql, params);
8
- return rows;
9
- },
10
- });
7
+ const promise_retry_1 = __importDefault(require("promise-retry"));
8
+ const monitor_1 = require("../monitor/monitor");
9
+ const transientErrorCodes = new Set(['ECONNRESET', 'ETIMEDOUT', 'ECONNREFUSED']);
10
+ function isTransientError(error) {
11
+ return error && error.code && transientErrorCodes.has(error.code);
12
+ }
13
+ async function ensureUnaccentExtension(pool) {
14
+ try {
15
+ const checkResult = await pool.query(`
16
+ SELECT 1 FROM pg_extension WHERE extname = 'unaccent'
17
+ `);
18
+ if (checkResult.rows.length === 0) {
19
+ await pool.query('CREATE EXTENSION IF NOT EXISTS unaccent');
20
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.CONNECTION_CREATED, {
21
+ clientType: 'pg',
22
+ extension: 'unaccent',
23
+ status: 'installed',
24
+ });
25
+ console.info('@starbemtech/star-db-query-builder: Extensão unaccent instalada com sucesso.');
26
+ }
27
+ }
28
+ catch (error) {
29
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_ERROR, {
30
+ clientType: 'pg',
31
+ action: 'install_unaccent',
32
+ error,
33
+ });
34
+ throw new Error(`@starbemtech/star-db-query-builder: Não foi possível instalar a extensão unaccent:
35
+ ${error}`);
36
+ }
37
+ }
38
+ const createPgClient = async (pool, retryOptions, poolConfig, installUnaccentExtension) => {
39
+ if (installUnaccentExtension) {
40
+ await ensureUnaccentExtension(pool);
41
+ }
42
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.CONNECTION_CREATED, {
43
+ clientType: 'pg',
44
+ poolOptions: poolConfig,
45
+ });
46
+ return {
47
+ clientType: 'pg',
48
+ query: async (sql, params) => {
49
+ return (0, promise_retry_1.default)(async (retry, attempt) => {
50
+ const startTime = Date.now();
51
+ try {
52
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_START, {
53
+ clientType: 'pg',
54
+ sql,
55
+ params,
56
+ attempt,
57
+ });
58
+ const { rows } = await pool.query(sql, params);
59
+ const elapsedTime = Date.now() - startTime;
60
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_END, {
61
+ clientType: 'pg',
62
+ sql,
63
+ params,
64
+ attempt,
65
+ elapsedTime,
66
+ });
67
+ return rows;
68
+ }
69
+ catch (error) {
70
+ const elapsedTime = Date.now() - startTime;
71
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_ERROR, {
72
+ clientType: 'pg',
73
+ sql,
74
+ params,
75
+ attempt,
76
+ elapsedTime,
77
+ error,
78
+ });
79
+ if (isTransientError(error)) {
80
+ console.warn(`Postgres query attempt ${attempt} failed, retrying...`, error);
81
+ monitor_1.monitor.emit(monitor_1.MonitorEvents.RETRY_ATTEMPT, {
82
+ clientType: 'pg',
83
+ sql,
84
+ params,
85
+ attempt,
86
+ error,
87
+ });
88
+ return retry(error);
89
+ }
90
+ throw error;
91
+ }
92
+ }, retryOptions);
93
+ },
94
+ };
95
+ };
11
96
  exports.createPgClient = createPgClient;
12
97
  //# sourceMappingURL=pgClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pgClient.js","sourceRoot":"","sources":["../../../src/db/pgClient.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,IAAU,EAAmB,EAAE,CAAC,CAAC;IAC9D,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,KAAK,EAAK,GAAW,EAAE,MAAc,EAAc,EAAE;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC9C,OAAO,IAAoB,CAAA;IAC7B,CAAC;CACF,CAAC,CAAA;AANW,QAAA,cAAc,kBAMzB"}
1
+ {"version":3,"file":"pgClient.js","sourceRoot":"","sources":["../../../src/db/pgClient.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { QueryParams } from './types';
2
2
  export declare const findFirst: <T>({ tableName, dbClient, select, where, groupBy, orderBy, }: QueryParams<T>) => Promise<T | null>;
3
- export declare const findMany: <T>({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, }: QueryParams<T>) => Promise<T[]>;
3
+ export declare const findMany: <T>({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, unaccent, }: QueryParams<T>) => Promise<T[]>;
4
4
  export declare const insert: <P, R>({ tableName, dbClient, data, returning, }: QueryParams<R> & {
5
5
  data: P;
6
6
  returning?: string[];
@@ -12,4 +12,9 @@ export declare const update: <P, R>({ tableName, dbClient, id, data, returning,
12
12
  export declare const deleteOne: <T>({ tableName, dbClient, id, permanently, }: QueryParams<T> & {
13
13
  permanently?: boolean;
14
14
  }) => Promise<void>;
15
- export declare const joins: <T>({ tableName, dbClient, select, joins, where, groupBy, orderBy, limit, offset, }: QueryParams<T>) => Promise<T[]>;
15
+ export declare const deleteMany: <T>({ tableName, dbClient, ids, field, permanently, }: QueryParams<T> & {
16
+ ids: string[] | number[];
17
+ field?: string;
18
+ permanently?: boolean;
19
+ }) => Promise<void>;
20
+ export declare const joins: <T>({ tableName, dbClient, select, joins, where, groupBy, orderBy, limit, offset, unaccent, }: QueryParams<T>) => Promise<T[]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.joins = exports.deleteOne = exports.update = exports.insert = exports.findMany = exports.findFirst = void 0;
3
+ exports.joins = exports.deleteMany = exports.deleteOne = exports.update = exports.insert = exports.findMany = exports.findFirst = void 0;
4
4
  const uuid_1 = require("uuid");
5
5
  const utils_1 = require("./utils");
6
6
  const findFirst = async ({ tableName, dbClient, select, where, groupBy, orderBy, }) => {
@@ -20,13 +20,13 @@ const findFirst = async ({ tableName, dbClient, select, where, groupBy, orderBy,
20
20
  return rows[0] || null;
21
21
  };
22
22
  exports.findFirst = findFirst;
23
- const findMany = async ({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, }) => {
23
+ const findMany = async ({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, unaccent, }) => {
24
24
  if (!tableName)
25
25
  throw new Error('Table name is required');
26
26
  if (!dbClient)
27
27
  throw new Error('DB client is required');
28
28
  const fields = (0, utils_1.createSelectFields)(select, dbClient.clientType);
29
- const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType);
29
+ const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType, unaccent);
30
30
  const orderByClause = (0, utils_1.createOrderByClause)(orderBy);
31
31
  const groupByClause = (0, utils_1.createGroupByClause)(groupBy);
32
32
  const limitClause = (0, utils_1.createLimitClause)(limit);
@@ -48,7 +48,9 @@ const insert = async ({ tableName, dbClient, data, returning, }) => {
48
48
  throw new Error('DB client is required');
49
49
  if (!data)
50
50
  throw new Error('Data object is required');
51
- const keys = Object.keys(data);
51
+ const keys = dbClient.clientType === 'pg'
52
+ ? Object.keys(data).map((key) => key === 'authorization' ? `"${key}"` : key)
53
+ : Object.keys(data);
52
54
  const values = Object.values(data);
53
55
  keys.unshift('id');
54
56
  const generatedUUID = (0, uuid_1.v4)();
@@ -118,14 +120,32 @@ const deleteOne = async ({ tableName, dbClient, id, permanently = false, }) => {
118
120
  : `UPDATE ${tableName} SET status = 'deleted' WHERE id = ${dbClient.clientType === 'pg' ? '$1' : '?'}`, [id]);
119
121
  };
120
122
  exports.deleteOne = deleteOne;
121
- const joins = async ({ tableName, dbClient, select, joins, where, groupBy, orderBy, limit, offset, }) => {
123
+ const deleteMany = async ({ tableName, dbClient, ids, field = 'id', permanently = false, }) => {
124
+ if (!tableName)
125
+ throw new Error('Table name is required');
126
+ if (!dbClient)
127
+ throw new Error('DB client is required');
128
+ if (!ids || ids.length === 0)
129
+ throw new Error('IDs are required and cannot be empty');
130
+ if (!field)
131
+ throw new Error('Field is required');
132
+ const placeholders = dbClient.clientType === 'pg'
133
+ ? ids.map((_, index) => `$${index + 1}`).join(', ')
134
+ : ids.map(() => '?').join(', ');
135
+ const query = permanently
136
+ ? `DELETE FROM ${tableName} WHERE ${field} IN (${placeholders})`
137
+ : `UPDATE ${tableName} SET status = 'deleted' WHERE ${field} IN (${placeholders})`;
138
+ await dbClient.query(query, ids);
139
+ };
140
+ exports.deleteMany = deleteMany;
141
+ const joins = async ({ tableName, dbClient, select, joins, where, groupBy, orderBy, limit, offset, unaccent, }) => {
122
142
  if (!tableName)
123
143
  throw new Error('Table name is required');
124
144
  if (!dbClient)
125
145
  throw new Error('DB client is required');
126
146
  const fields = Array.isArray(select) ? select : [];
127
147
  const selectFields = (0, utils_1.createSelectFields)(fields, dbClient.clientType);
128
- const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType);
148
+ const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType, unaccent);
129
149
  const groupByClause = (0, utils_1.createGroupByClause)(groupBy);
130
150
  const orderByClause = (0, utils_1.createOrderByClause)(orderBy);
131
151
  const limitClause = (0, utils_1.createLimitClause)(limit);
@@ -1 +1 @@
1
- {"version":3,"file":"genericRepository.js","sourceRoot":"","sources":["../../../src/default/genericRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genericRepository.js","sourceRoot":"","sources":["../../../src/default/genericRepository.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,18 @@
1
1
  import { IDatabaseClient } from '../db/IDatabaseClient';
2
+ export interface RetryOptions {
3
+ retries?: number;
4
+ factor?: number;
5
+ minTimeout?: number;
6
+ maxTimeout?: number;
7
+ randomize?: boolean;
8
+ }
2
9
  export interface QueryExec {
3
10
  text: string;
4
11
  values?: any[];
5
12
  }
6
13
  type SimpleValue = string | number | boolean | Date;
7
14
  export interface OperatorCondition {
8
- operator: 'LIKE' | '=' | '>' | '<' | 'IN' | 'BETWEEN' | '!=' | '<=' | '>=' | 'NOT IN' | 'LIKE' | 'NOT LIKE';
15
+ operator: 'ILIKE' | 'LIKE' | '=' | '>' | '<' | 'IN' | 'BETWEEN' | '!=' | '<=' | '>=' | 'NOT IN' | 'LIKE' | 'NOT LIKE' | 'IS NULL' | 'IS NOT NULL' | 'NOT EXISTS';
9
16
  value: SimpleValue | SimpleValue[];
10
17
  }
11
18
  export type LogicalOperator = 'OR' | 'AND';
@@ -14,6 +21,7 @@ interface LogicalCondition<T> {
14
21
  OR?: Conditions<T>[];
15
22
  AND?: Conditions<T>[];
16
23
  JOINS?: Conditions<object>;
24
+ notExists?: OperatorCondition;
17
25
  }
18
26
  export type Conditions<T> = {
19
27
  [P in keyof T]?: Condition<T[P]>;
@@ -34,6 +42,7 @@ export interface QueryParams<T> {
34
42
  limit?: number;
35
43
  offset?: number;
36
44
  joins?: JoinClause[];
45
+ unaccent?: boolean;
37
46
  }
38
47
  interface JoinClause {
39
48
  type: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
@@ -2,7 +2,7 @@ import { Conditions, OrderBy, DBClients } from './types';
2
2
  export declare const createSelectFields: (fields: string[] | undefined, clientType: DBClients) => string;
3
3
  export declare const generatePlaceholders: (keys: any[], clientType: DBClients) => string;
4
4
  export declare const generateSetClause: (keys: any[], clientType: DBClients) => string;
5
- export declare const createWhereClause: <T>(conditions: Conditions<T> | undefined, startIndex: number | undefined, clientType: DBClients) => [string, any[], number];
5
+ export declare const createWhereClause: <T>(conditions: Conditions<T> | undefined, startIndex: number | undefined, clientType: DBClients, unaccent?: boolean) => [string, any[], number];
6
6
  export declare const createOrderByClause: (orderBy?: OrderBy) => string;
7
7
  export declare const createGroupByClause: (groupBy?: string[]) => string;
8
8
  export declare const createLimitClause: (limit?: number) => string;
@@ -25,7 +25,7 @@ const generateSetClause = (keys, clientType) => {
25
25
  .join(', ');
26
26
  };
27
27
  exports.generateSetClause = generateSetClause;
28
- const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
28
+ const createWhereClause = (conditions = {}, startIndex = 1, clientType, unaccent) => {
29
29
  let index = startIndex;
30
30
  const whereParts = [];
31
31
  const values = [];
@@ -33,33 +33,44 @@ const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
33
33
  if (typeof condition === 'object' && condition !== null) {
34
34
  if ('operator' in condition && 'value' in condition) {
35
35
  const { operator, value } = condition;
36
- if (Array.isArray(value)) {
36
+ if (operator === 'NOT EXISTS' && typeof value === 'string') {
37
+ whereParts.push(`NOT EXISTS (${value})`);
38
+ }
39
+ else if (operator.includes('NULL')) {
40
+ whereParts.push(`${key} ${operator}`);
41
+ }
42
+ else if (Array.isArray(value)) {
37
43
  const placeholders = value
38
44
  .map(() => clientType === 'pg'
39
45
  ? pgPlaceholderGenerator(index++)
40
46
  : mysqlPlaceholderGenerator())
41
47
  .join(', ');
42
48
  if (operator === 'BETWEEN') {
43
- whereParts.push(clientType === 'pg'
44
- ? `${key} ${operator} ${placeholders.replace(', ', ' AND ')}`
45
- : `${key} ${operator} ${placeholders.replace(', ', ' AND ')}`);
49
+ whereParts.push(`${key} ${operator} ${placeholders.replace(', ', ' AND ')}`);
46
50
  }
47
51
  else if (operator === 'IN') {
48
- whereParts.push(clientType === 'pg'
49
- ? `${key} ${operator} ${placeholders.replace(', ', ' AND ')}`
50
- : `${key} ${operator} (${placeholders})`);
52
+ whereParts.push(`${key} ${operator} (${placeholders})`);
51
53
  }
52
54
  else {
53
- whereParts.push(clientType === 'pg'
54
- ? `${key} ${operator} (${placeholders})`
55
- : `${key} ${operator} ${placeholders}`);
55
+ whereParts.push(`${key} ${operator} (${placeholders})`);
56
56
  }
57
57
  values.push(...value);
58
58
  }
59
59
  else {
60
- whereParts.push(clientType === 'pg'
61
- ? `${key} ${operator} ${pgPlaceholderGenerator(index++)}`
62
- : `${key} ${operator} ${mysqlPlaceholderGenerator()}`);
60
+ if (unaccent && clientType === 'pg') {
61
+ if (operator.toUpperCase() === 'ILIKE') {
62
+ whereParts.push(`unaccent(${key}::text) ILIKE unaccent(${pgPlaceholderGenerator(index)})`);
63
+ }
64
+ else {
65
+ whereParts.push(`unaccent(${key}::text) ${operator} unaccent(${pgPlaceholderGenerator(index)})`);
66
+ }
67
+ }
68
+ else {
69
+ whereParts.push(clientType === 'pg'
70
+ ? `${key} ${operator} ${pgPlaceholderGenerator(index)}`
71
+ : `${key} ${operator} ${mysqlPlaceholderGenerator()}`);
72
+ }
73
+ index++;
63
74
  values.push(value);
64
75
  }
65
76
  }
@@ -76,23 +87,18 @@ const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
76
87
  subCondition !== null) {
77
88
  const key = Object.keys(subCondition)[0];
78
89
  const condition = subCondition[key];
90
+ // Adiciona o tratamento de unaccent nas condições de JOINS
79
91
  processCondition(key, condition);
80
92
  return whereParts.pop();
81
93
  }
82
94
  return '';
83
95
  })
84
96
  .filter((part) => part);
85
- whereParts.push(clientType === 'pg'
86
- ? `(${subWhereParts.join(` ${logicalOperator} `)})`
87
- : `${subWhereParts.join(` ${logicalOperator} `)}`);
97
+ whereParts.push(`(${subWhereParts.join(` ${logicalOperator} `)})`);
88
98
  }
89
99
  }
90
100
  else {
91
- Object.entries(conditions).forEach(([key, value]) => {
92
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
93
- // @ts-expect-error
94
- processCondition(key, value);
95
- });
101
+ Object.entries(conditions).forEach(([key, value]) => processCondition(key, value));
96
102
  }
97
103
  if ('OR' in conditions || 'AND' in conditions) {
98
104
  const logicalOperator = conditions.OR ? 'OR' : 'AND';
@@ -105,24 +111,15 @@ const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
105
111
  subCondition !== null) {
106
112
  const key = Object.keys(subCondition)[0];
107
113
  const condition = subCondition[key];
108
- processCondition(key, condition);
114
+ processCondition(key, condition); // Certifica que o unaccent é processado aqui também
109
115
  return whereParts.pop();
110
116
  }
111
117
  return '';
112
118
  })
113
119
  .filter((part) => part);
114
- whereParts.push(clientType === 'pg'
115
- ? `(${subWhereParts.join(` ${logicalOperator} `)})`
116
- : `${subWhereParts.join(` ${logicalOperator} `)}`);
120
+ whereParts.push(`(${subWhereParts.join(` ${logicalOperator} `)})`);
117
121
  }
118
122
  }
119
- else {
120
- Object.entries(conditions).forEach(([key, value]) => {
121
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
122
- // @ts-expect-error
123
- processCondition(key, value);
124
- });
125
- }
126
123
  const whereClause = whereParts.length > 0 ? ` WHERE ${whereParts.join(' AND ')}` : '';
127
124
  return [whereClause, values, index];
128
125
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/default/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/default/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { EventEmitter } from 'stream';
2
+ export declare enum MonitorEvents {
3
+ CONNECTION_CREATED = "connection_created",
4
+ QUERY_START = "query_start",
5
+ QUERY_END = "query_end",
6
+ QUERY_ERROR = "query_error",
7
+ RETRY_ATTEMPT = "retry_attempt"
8
+ }
9
+ export declare const monitor: EventEmitter<[never]>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.monitor = exports.MonitorEvents = void 0;
4
+ const stream_1 = require("stream");
5
+ var MonitorEvents;
6
+ (function (MonitorEvents) {
7
+ MonitorEvents["CONNECTION_CREATED"] = "connection_created";
8
+ MonitorEvents["QUERY_START"] = "query_start";
9
+ MonitorEvents["QUERY_END"] = "query_end";
10
+ MonitorEvents["QUERY_ERROR"] = "query_error";
11
+ MonitorEvents["RETRY_ATTEMPT"] = "retry_attempt";
12
+ })(MonitorEvents || (exports.MonitorEvents = MonitorEvents = {}));
13
+ exports.monitor = new stream_1.EventEmitter();
14
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAErC,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,0DAAyC,CAAA;IACzC,4CAA2B,CAAA;IAC3B,wCAAuB,CAAA;IACvB,4CAA2B,CAAA;IAC3B,gDAA+B,CAAA;AACjC,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAEY,QAAA,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAA"}
package/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { IDatabaseClient } from './src/db/IDatabaseClient'
2
2
  import { DBClients, QueryParams } from './src/default/types'
3
3
 
4
4
  export declare function initDb<T>(config: { type: DBClients; options: T }): void
5
- export declare function getDbClient(): IDatabaseClient
5
+ export declare function getDbClient(name?: string): IDatabaseClient
6
6
 
7
7
  // Generic Methods
8
8
  export declare function findFirst<T>({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starbemtech/star-db-query-builder",
3
- "version": "1.0.35",
3
+ "version": "1.0.37",
4
4
  "description": "A query builder to be used with mysql or postgres",
5
5
  "author": "Julio Sousa <julio.sousa@starbem.app>",
6
6
  "main": "./dist/index.js",
package/src/db/initDb.ts CHANGED
@@ -6,12 +6,14 @@ import { IDatabaseClient } from './IDatabaseClient'
6
6
  import { DBClients, RetryOptions } from '../default/types'
7
7
 
8
8
  const dbClients: Record<string, IDatabaseClient> = {}
9
+ const defaultName = 'default'
9
10
 
10
11
  export const initDb = async <T>(config: {
11
- name: string
12
+ name?: string
12
13
  type: DBClients
13
14
  options: T
14
15
  retryOptions?: RetryOptions
16
+ installUnaccentExtension?: boolean
15
17
  }): Promise<void> => {
16
18
  if (!config.type)
17
19
  throw new Error('Type is required. Accept values: pg | mysql')
@@ -21,10 +23,11 @@ export const initDb = async <T>(config: {
21
23
  if (config.type === 'pg') {
22
24
  const poolConfig = config.options as unknown as PoolConfig
23
25
  const pool = new Pool(config.options)
24
- dbClients[config.name] = await createPgClient(
26
+ dbClients[config.name || defaultName] = await createPgClient(
25
27
  pool,
26
28
  config.retryOptions,
27
- poolConfig
29
+ poolConfig,
30
+ config.installUnaccentExtension
28
31
  )
29
32
 
30
33
  console.log(
@@ -32,7 +35,10 @@ export const initDb = async <T>(config: {
32
35
  )
33
36
  } else if (config.type === 'mysql') {
34
37
  const pool = createMySqlPool(config.options)
35
- dbClients[config.name] = createMysqlClient(pool, config.retryOptions)
38
+ dbClients[config.name || defaultName] = createMysqlClient(
39
+ pool,
40
+ config.retryOptions
41
+ )
36
42
 
37
43
  console.info(
38
44
  `@starbemtech/star-db-query-builder: Postgres db client "${config.name}" created successfully`
@@ -42,8 +48,8 @@ export const initDb = async <T>(config: {
42
48
  }
43
49
  }
44
50
 
45
- export const getDbClient = (name: string): IDatabaseClient => {
46
- const client = dbClients[name]
51
+ export const getDbClient = (name?: string): IDatabaseClient => {
52
+ const client = dbClients[name || defaultName]
47
53
  if (!client) {
48
54
  throw new Error(`Database client "${name}" is not initialized`)
49
55
  }