@axinom/mosaic-db-common 0.23.1-rc.3 → 0.23.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.
@@ -1 +1 @@
1
- {"version":3,"file":"pg-pool.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/pg-pool.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,WAAW,CAAC;AAEnB;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,uCACL,MAAM,wBAEhB,QAAQ,mBACC,iBAAiB,sBA2BnC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAS,OAAO,GAAG,WAAW,KAAG,WAE3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QACpB,WAAW,aACL,WAAW,KACrB,IAEF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QACvB,OAAO,GAAG,WAAW,KACzB,cAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QACvB,WAAW,gBACF,cAAc,KAC3B,IAEF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAS,OAAO,GAAG,WAAW,KAAG,WAE3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QACpB,WAAW,aACL,WAAW,KACrB,IAEF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QACtB,OAAO,GAAG,WAAW,oBACR,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QACzB,OAAO,GAAG,WAAW,oBACR,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,cAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QACtB,OAAO,GAAG,WAAW,oBACR,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAQF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,qBACV,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAEF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,qBACb,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,cAEF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,qBACV,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAEF,CAAC"}
1
+ {"version":3,"file":"pg-pool.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/pg-pool.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,WAAW,CAAC;AAEnB;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,uCACL,MAAM,wBAEhB,QAAQ,mBACC,iBAAiB,sBAkDnC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAS,OAAO,GAAG,WAAW,KAAG,WAE3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QACpB,WAAW,aACL,WAAW,KACrB,IAEF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QACvB,OAAO,GAAG,WAAW,KACzB,cAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QACvB,WAAW,gBACF,cAAc,KAC3B,IAEF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAS,OAAO,GAAG,WAAW,KAAG,WAE3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QACpB,WAAW,aACL,WAAW,KACrB,IAEF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QACtB,OAAO,GAAG,WAAW,oBACR,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QACzB,OAAO,GAAG,WAAW,oBACR,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,cAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QACtB,OAAO,GAAG,WAAW,oBACR,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAQF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,qBACV,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAEF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,qBACb,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,cAEF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,qBACV,MAAM,UAChB,QAAQ,mBACC,iBAAiB,KACjC,WAEF,CAAC"}
@@ -12,7 +12,25 @@ const pg_1 = require("pg");
12
12
  * @returns
13
13
  */
14
14
  const createPgPool = (connectionString, poolLabel, logger, shutdownActions) => {
15
- const pgPool = new pg_1.Pool({ connectionString });
15
+ const poolConfig = {
16
+ connectionString,
17
+ /**
18
+ * **IMPORTANT**
19
+ *
20
+ * This is a temporary workaround we do to reduce the number of ETIMEDOUT errors we're seeing right now in TEST+CB instances
21
+ * and will be removed once the root cause if identified.
22
+ *
23
+ * We may consider to potentially still provide the option to supply such PoolConfig object from the consumer and make Pool
24
+ * management more extensible.
25
+ */
26
+ idleTimeoutMillis: process.env.HOTFIX_DB_IDLE_TIMEOUT_MILLIS
27
+ ? parseInt(process.env.HOTFIX_DB_IDLE_TIMEOUT_MILLIS)
28
+ : undefined,
29
+ };
30
+ if (process.env.HOTFIX_DB_IDLE_TIMEOUT_MILLIS) {
31
+ logger.log(`Detected HOTFIX_DB_IDLE_TIMEOUT_MILLIS=${poolConfig.idleTimeoutMillis} for poolLabel=${poolLabel}.`);
32
+ }
33
+ const pgPool = new pg_1.Pool(poolConfig);
16
34
  pgPool.label = poolLabel;
17
35
  // If a pg pool error happens and triggers the exit of node process (e.g postgres server stopped while postgraphile service is running) -
18
36
  // it is possible for it to not be caught using this handler, because node process will close faster.
@@ -1 +1 @@
1
- {"version":3,"file":"pg-pool.middleware.js","sourceRoot":"","sources":["../../src/middleware/pg-pool.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pg-pool.middleware.js","sourceRoot":"","sources":["../../src/middleware/pg-pool.middleware.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-db-common",
3
- "version": "0.23.1-rc.3",
3
+ "version": "0.23.1",
4
4
  "description": "This library encapsulates database-related functionality to develop Mosaic based services.",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -51,5 +51,5 @@
51
51
  "publishConfig": {
52
52
  "access": "public"
53
53
  },
54
- "gitHead": "91524cdad21da82e9db8e243f2cac71cd70e9540"
54
+ "gitHead": "6ec06d92eede105fe9fc85a91967a7f956b6cc2a"
55
55
  }
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable no-console */
2
2
  import { Application, Express } from 'express';
3
- import { Pool } from 'pg';
3
+ import { Pool, PoolConfig } from 'pg';
4
4
  import {
5
5
  DbLogger,
6
6
  DbShutdownActions,
@@ -25,7 +25,30 @@ export const createPgPool = <T extends string>(
25
25
  logger: DbLogger,
26
26
  shutdownActions: DbShutdownActions,
27
27
  ): LabelledPgPool<T> => {
28
- const pgPool = new Pool({ connectionString }) as LabelledPgPool<T>;
28
+ const poolConfig: PoolConfig = {
29
+ connectionString,
30
+
31
+ /**
32
+ * **IMPORTANT**
33
+ *
34
+ * This is a temporary workaround we do to reduce the number of ETIMEDOUT errors we're seeing right now in TEST+CB instances
35
+ * and will be removed once the root cause if identified.
36
+ *
37
+ * We may consider to potentially still provide the option to supply such PoolConfig object from the consumer and make Pool
38
+ * management more extensible.
39
+ */
40
+ idleTimeoutMillis: process.env.HOTFIX_DB_IDLE_TIMEOUT_MILLIS
41
+ ? parseInt(process.env.HOTFIX_DB_IDLE_TIMEOUT_MILLIS)
42
+ : undefined,
43
+ };
44
+
45
+ if (process.env.HOTFIX_DB_IDLE_TIMEOUT_MILLIS) {
46
+ logger.log(
47
+ `Detected HOTFIX_DB_IDLE_TIMEOUT_MILLIS=${poolConfig.idleTimeoutMillis} for poolLabel=${poolLabel}.`,
48
+ );
49
+ }
50
+
51
+ const pgPool = new Pool(poolConfig) as LabelledPgPool<T>;
29
52
  pgPool.label = poolLabel;
30
53
 
31
54
  // If a pg pool error happens and triggers the exit of node process (e.g postgres server stopped while postgraphile service is running) -