@zola_do/typeorm 0.2.17 → 0.3.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.
- package/README.md +14 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/resolve-database-pool-extra.helper.d.ts +3 -0
- package/dist/resolve-database-pool-extra.helper.js +16 -0
- package/dist/resolve-database-pool-extra.helper.js.map +1 -0
- package/dist/typeorm-config-helper.js +2 -0
- package/dist/typeorm-config-helper.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -205,6 +205,10 @@ console.log(TypeOrmConfigHelper.DATABASE_PASSWORD); // 'secret'
|
|
|
205
205
|
| `DATABASE_USER` | `string` | Database user |
|
|
206
206
|
| `DATABASE_PASSWORD` | `string` | Database password |
|
|
207
207
|
| `APP_NAME` | `string` | App name (fallback for DATABASE_NAME) |
|
|
208
|
+
| `DATABASE_POOL_MAX` | `number` | Max pool connections (node-pg `extra`) |
|
|
209
|
+
| `DATABASE_POOL_MIN` | `number` | Min warm pool connections |
|
|
210
|
+
| `DATABASE_POOL_IDLE_TIMEOUT_MS` | `number` | Idle connection lifetime (ms) |
|
|
211
|
+
| `DATABASE_POOL_CONNECTION_TIMEOUT_MS` | `number` | Wait for pool checkout (ms) |
|
|
208
212
|
|
|
209
213
|
## TypeOrmService
|
|
210
214
|
|
|
@@ -252,6 +256,12 @@ import { dataSourceOptions } from '@zola_do/typeorm';
|
|
|
252
256
|
migrations: ['dist/**/*.migration.js', '**/*.migration.js'],
|
|
253
257
|
synchronize: false, // Use migrations in production
|
|
254
258
|
logging: process.env.NODE_ENV === 'development',
|
|
259
|
+
extra: {
|
|
260
|
+
max: 10,
|
|
261
|
+
min: 2,
|
|
262
|
+
idleTimeoutMillis: 60000,
|
|
263
|
+
connectionTimeoutMillis: 5000,
|
|
264
|
+
},
|
|
255
265
|
// ... more TypeORM options
|
|
256
266
|
}
|
|
257
267
|
```
|
|
@@ -285,6 +295,10 @@ export class AppModule {}
|
|
|
285
295
|
| `DATABASE_USER` | Database user | `postgres` |
|
|
286
296
|
| `DATABASE_PASSWORD` | Database password | Required in production |
|
|
287
297
|
| `APP_NAME` | Fallback for `DATABASE_NAME` | — |
|
|
298
|
+
| `DATABASE_POOL_MAX` | Max PostgreSQL pool size | `10` |
|
|
299
|
+
| `DATABASE_POOL_MIN` | Min warm pool connections | `2` |
|
|
300
|
+
| `DATABASE_POOL_IDLE_TIMEOUT_MS` | Idle connection timeout (ms) | `60000` |
|
|
301
|
+
| `DATABASE_POOL_CONNECTION_TIMEOUT_MS` | Pool checkout timeout (ms) | `5000` |
|
|
288
302
|
|
|
289
303
|
### Validation Rules
|
|
290
304
|
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -18,4 +18,5 @@ __exportStar(require("./typeorm-config-helper"), exports);
|
|
|
18
18
|
__exportStar(require("./typeorm.service"), exports);
|
|
19
19
|
__exportStar(require("./seeder-options"), exports);
|
|
20
20
|
__exportStar(require("./validate-database-env.helper"), exports);
|
|
21
|
+
__exportStar(require("./resolve-database-pool-extra.helper"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,oDAAkC;AAClC,mDAAiC;AACjC,iEAA+C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,oDAAkC;AAClC,mDAAiC;AACjC,iEAA+C;AAC/C,uEAAqD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveDatabasePoolExtra = resolveDatabasePoolExtra;
|
|
4
|
+
function readPoolNumber(value, fallback) {
|
|
5
|
+
const parsed = Number(value);
|
|
6
|
+
return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;
|
|
7
|
+
}
|
|
8
|
+
function resolveDatabasePoolExtra(env = process.env) {
|
|
9
|
+
return {
|
|
10
|
+
max: readPoolNumber(env.DATABASE_POOL_MAX, 10),
|
|
11
|
+
min: readPoolNumber(env.DATABASE_POOL_MIN, 2),
|
|
12
|
+
idleTimeoutMillis: readPoolNumber(env.DATABASE_POOL_IDLE_TIMEOUT_MS, 60000),
|
|
13
|
+
connectionTimeoutMillis: readPoolNumber(env.DATABASE_POOL_CONNECTION_TIMEOUT_MS, 5000),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=resolve-database-pool-extra.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-database-pool-extra.helper.js","sourceRoot":"","sources":["../src/resolve-database-pool-extra.helper.ts"],"names":[],"mappings":";;AAUA,4DAeC;AAvBD,SAAS,cAAc,CACrB,KAAyB,EACzB,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpE,CAAC;AAED,SAAgB,wBAAwB,CACtC,MAAqB,OAAO,CAAC,GAAoB;IAEjD,OAAO;QACL,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC9C,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC7C,iBAAiB,EAAE,cAAc,CAC/B,GAAG,CAAC,6BAA6B,EACjC,KAAK,CACN;QACD,uBAAuB,EAAE,cAAc,CACrC,GAAG,CAAC,mCAAmC,EACvC,IAAI,CACL;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.dataSourceOptions = exports.TypeOrmConfigHelper = void 0;
|
|
5
5
|
const typeorm_1 = require("typeorm");
|
|
6
6
|
const validate_database_env_helper_1 = require("./validate-database-env.helper");
|
|
7
|
+
const resolve_database_pool_extra_helper_1 = require("./resolve-database-pool-extra.helper");
|
|
7
8
|
if (process.env.NODE_ENV === 'production') {
|
|
8
9
|
(0, validate_database_env_helper_1.validateDatabaseEnv)();
|
|
9
10
|
}
|
|
@@ -46,6 +47,7 @@ exports.dataSourceOptions = {
|
|
|
46
47
|
null: 'sql-null',
|
|
47
48
|
undefined: 'throw',
|
|
48
49
|
},
|
|
50
|
+
extra: (0, resolve_database_pool_extra_helper_1.resolveDatabasePoolExtra)(),
|
|
49
51
|
};
|
|
50
52
|
const dataSources = new typeorm_1.DataSource(exports.dataSourceOptions);
|
|
51
53
|
exports.default = dataSources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm-config-helper.js","sourceRoot":"","sources":["../src/typeorm-config-helper.ts"],"names":[],"mappings":";;;;AAAA,qCAAwD;AAExD,iFAAqE;
|
|
1
|
+
{"version":3,"file":"typeorm-config-helper.js","sourceRoot":"","sources":["../src/typeorm-config-helper.ts"],"names":[],"mappings":";;;;AAAA,qCAAwD;AAExD,iFAAqE;AACrE,6FAAgF;AAEhF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,IAAA,kDAAmB,GAAE,CAAC;AACxB,CAAC;AAEY,QAAA,mBAAmB,GAAG;IACjC,aAAa,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,mCAAI,WAAW;IACvD,aAAa,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,mCAAI,MAAM;IAClD,aAAa,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,mCAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;IAChE,aAAa,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,mCAAI,UAAU;IACtD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;CACjD,CAAC;AAEF,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IACnC,CAAC,CAAC,gBAAgB;IAClB,CAAC,CAAC,0BAA0B,CAAC;AAEjC,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IACnC,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,wBAAwB,CAAC;AAE/B,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IACnC,CAAC,CAAC,sBAAsB;IACxB,CAAC,CAAC,8BAA8B,CAAC;AAErC,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IACnC,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,mCAC1C,mCAAmC,CAAC;IACtC,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,mCACnC,2CAA2C,CAAC,CAAC;AAEtC,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,2BAAmB,CAAC,aAAa;IACvC,IAAI,EAAE,MAAM,CAAC,2BAAmB,CAAC,aAAa,CAAC;IAC/C,QAAQ,EAAE,2BAAmB,CAAC,aAAa;IAC3C,QAAQ,EAAE,2BAAmB,CAAC,aAAa;IAC3C,QAAQ,EAAE,2BAAmB,CAAC,iBAAiB;IAC/C,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC3B,UAAU,EAAE,CAAC,UAAU,CAAC;IACxB,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,mBAAmB,EAAE,oBAAoB;IACzC,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,IAAI;IACtB,0BAA0B,EAAE;QAC1B,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,OAAO;KACnB;IACD,KAAK,EAAE,IAAA,6DAAwB,GAAE;CACG,CAAC;AAEvC,MAAM,WAAW,GAAG,IAAI,oBAAU,CAAC,yBAAiB,CAAC,CAAC;AAEtD,kBAAe,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zola_do/typeorm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "TypeORM configuration for NestJS",
|
|
5
5
|
"author": "zolaDO",
|
|
6
6
|
"license": "ISC",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"dotenv": "^17.3.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
+
"@types/node": "^25.5.0",
|
|
48
49
|
"rimraf": "^6.1.3",
|
|
49
50
|
"typescript": "^5.9.3"
|
|
50
51
|
},
|