@simplysm/orm-node 13.0.15 → 13.0.23
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 +3 -3
- package/dist/connections/mssql-db-conn.d.ts.map +1 -1
- package/dist/connections/mssql-db-conn.js +6 -2
- package/dist/connections/mssql-db-conn.js.map +1 -1
- package/dist/connections/postgresql-db-conn.d.ts.map +1 -1
- package/dist/connections/postgresql-db-conn.js +6 -2
- package/dist/connections/postgresql-db-conn.js.map +1 -1
- package/dist/create-db-conn.d.ts.map +1 -1
- package/dist/create-db-conn.js +10 -3
- package/dist/create-db-conn.js.map +1 -1
- package/dist/pooled-db-conn.d.ts +2 -1
- package/dist/pooled-db-conn.d.ts.map +1 -1
- package/dist/pooled-db-conn.js +12 -2
- package/dist/pooled-db-conn.js.map +1 -1
- package/dist/types/db-conn.d.ts +5 -1
- package/dist/types/db-conn.d.ts.map +1 -1
- package/dist/types/db-conn.js +2 -0
- package/dist/types/db-conn.js.map +1 -1
- package/package.json +5 -5
- package/src/connections/mssql-db-conn.ts +8 -2
- package/src/connections/postgresql-db-conn.ts +8 -2
- package/src/create-db-conn.ts +14 -4
- package/src/pooled-db-conn.ts +11 -1
- package/src/types/db-conn.ts +6 -1
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ createOrm() (top-level entry point)
|
|
|
41
41
|
- `PooledDbConn` is a connection pool wrapper based on `generic-pool`, returning connections to the pool instead of closing them after use.
|
|
42
42
|
- Each DBMS-specific connection class (`MysqlDbConn`, `MssqlDbConn`, `PostgresqlDbConn`) directly uses low-level DB drivers.
|
|
43
43
|
|
|
44
|
-
##
|
|
44
|
+
## Main Modules
|
|
45
45
|
|
|
46
46
|
### Functions
|
|
47
47
|
|
|
@@ -389,7 +389,7 @@ The common interface implemented by all DBMS-specific connection classes (`Mysql
|
|
|
389
389
|
| Azure SQL Database | `tedious` | `"mssql-azure"` | - |
|
|
390
390
|
| PostgreSQL | `pg`, `pg-copy-streams` | `"postgresql"` | 9.0+ |
|
|
391
391
|
|
|
392
|
-
##
|
|
392
|
+
## Caveats
|
|
393
393
|
|
|
394
394
|
### Timeouts
|
|
395
395
|
|
|
@@ -409,7 +409,7 @@ DBMS-specific drivers (`mysql2`, `tedious`, `pg`) are lazy-loaded within `create
|
|
|
409
409
|
|
|
410
410
|
`PooledDbConn.close()` returns the connection to the pool instead of closing the actual physical connection. If `close()` is called while a transaction is in progress, it automatically attempts to rollback before returning to the pool.
|
|
411
411
|
|
|
412
|
-
##
|
|
412
|
+
## Dependencies
|
|
413
413
|
|
|
414
414
|
| Package | Purpose |
|
|
415
415
|
|--------|------|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mssql-db-conn.d.ts","sourceRoot":"","sources":["../../src/connections/mssql-db-conn.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,YAAY,EAKb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAY,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"mssql-db-conn.d.ts","sourceRoot":"","sources":["../../src/connections/mssql-db-conn.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,YAAY,EAKb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAY,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAM1B;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,YAAY,CAAC;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAE,YAAW,MAAM;IAW5E,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAXpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAEpD,OAAO,CAAC,KAAK,CAAC,CAAyB;IACvC,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,SAAS,CAA6B;IAE9C,WAAW,UAAS;IACpB,eAAe,UAAS;gBAGL,QAAQ,EAAE,cAAc,SAAS,CAAC,EAC1C,MAAM,EAAE,iBAAiB;IAK9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4DxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtB,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBpC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAUhD,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IA6F5E,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC;IAoDhB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,wCAAwC;IAqBhD,OAAO,CAAC,uCAAuC;IA4C/C;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAmB1B"}
|
|
@@ -10,7 +10,11 @@ import {
|
|
|
10
10
|
Uuid,
|
|
11
11
|
waitUntil
|
|
12
12
|
} from "@simplysm/core-common";
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
DB_CONN_CONNECT_TIMEOUT,
|
|
15
|
+
DB_CONN_DEFAULT_TIMEOUT,
|
|
16
|
+
DB_CONN_ERRORS
|
|
17
|
+
} from "../types/db-conn.js";
|
|
14
18
|
const logger = consola.withTag("mssql-db-conn");
|
|
15
19
|
class MssqlDbConn extends EventEmitter {
|
|
16
20
|
constructor(_tedious, config) {
|
|
@@ -45,7 +49,7 @@ class MssqlDbConn extends EventEmitter {
|
|
|
45
49
|
encrypt: this.config.dialect === "mssql-azure",
|
|
46
50
|
requestTimeout: this._timeout,
|
|
47
51
|
trustServerCertificate: true,
|
|
48
|
-
connectTimeout:
|
|
52
|
+
connectTimeout: DB_CONN_CONNECT_TIMEOUT
|
|
49
53
|
}
|
|
50
54
|
});
|
|
51
55
|
conn.on("infoMessage", (info) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/connections/mssql-db-conn.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,aAAa;AACpB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-db-conn.d.ts","sourceRoot":"","sources":["../../src/connections/postgresql-db-conn.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,YAAY,EAIb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAY,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"postgresql-db-conn.d.ts","sourceRoot":"","sources":["../../src/connections/postgresql-db-conn.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,YAAY,EAIb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAY,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,YAAY,CAAC;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAE,YAAW,MAAM;IAUjF,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,QAAQ,CAAC,MAAM,EAAE,sBAAsB;IAXzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IAEpD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,YAAY,CAAC,CAAgC;IAErD,WAAW,UAAS;IACpB,eAAe,UAAS;gBAGL,GAAG,EAAE,cAAc,IAAI,CAAC,EACxB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,eAAe,EAC3D,MAAM,EAAE,sBAAsB;IAKnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAShD,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAmB5E,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC;IAoChB;;OAEG;IACH,OAAO,CAAC,aAAa;IA+CrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,aAAa;CAQtB"}
|
|
@@ -10,7 +10,11 @@ import {
|
|
|
10
10
|
Time,
|
|
11
11
|
Uuid
|
|
12
12
|
} from "@simplysm/core-common";
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
DB_CONN_CONNECT_TIMEOUT,
|
|
15
|
+
DB_CONN_DEFAULT_TIMEOUT,
|
|
16
|
+
DB_CONN_ERRORS
|
|
17
|
+
} from "../types/db-conn.js";
|
|
14
18
|
const logger = consola.withTag("postgresql-db-conn");
|
|
15
19
|
class PostgresqlDbConn extends EventEmitter {
|
|
16
20
|
constructor(_pg, _pgCopyFrom, config) {
|
|
@@ -34,7 +38,7 @@ class PostgresqlDbConn extends EventEmitter {
|
|
|
34
38
|
user: this.config.username,
|
|
35
39
|
password: this.config.password,
|
|
36
40
|
database: this.config.database,
|
|
37
|
-
connectionTimeoutMillis:
|
|
41
|
+
connectionTimeoutMillis: DB_CONN_CONNECT_TIMEOUT,
|
|
38
42
|
query_timeout: this._timeout
|
|
39
43
|
});
|
|
40
44
|
client.on("end", () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/connections/postgresql-db-conn.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AACzB,OAAO,aAAa;AACpB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-db-conn.d.ts","sourceRoot":"","sources":["../src/create-db-conn.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-db-conn.d.ts","sourceRoot":"","sources":["../src/create-db-conn.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA2B5D;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlE"}
|
package/dist/create-db-conn.js
CHANGED
|
@@ -4,10 +4,11 @@ import { MysqlDbConn } from "./connections/mysql-db-conn.js";
|
|
|
4
4
|
import { MssqlDbConn } from "./connections/mssql-db-conn.js";
|
|
5
5
|
import { PostgresqlDbConn } from "./connections/postgresql-db-conn.js";
|
|
6
6
|
const poolMap = /* @__PURE__ */ new Map();
|
|
7
|
+
const poolLastErrorMap = /* @__PURE__ */ new Map();
|
|
7
8
|
const modules = {};
|
|
8
9
|
function createDbConn(config) {
|
|
9
|
-
const pool = getOrCreatePool(config);
|
|
10
|
-
return Promise.resolve(new PooledDbConn(pool, config));
|
|
10
|
+
const { pool, getLastCreateError } = getOrCreatePool(config);
|
|
11
|
+
return Promise.resolve(new PooledDbConn(pool, config, getLastCreateError));
|
|
11
12
|
}
|
|
12
13
|
function getOrCreatePool(config) {
|
|
13
14
|
const configKey = JSON.stringify(
|
|
@@ -38,9 +39,15 @@ function getOrCreatePool(config) {
|
|
|
38
39
|
// [중요] 빌려줄 때 validate 실행 여부
|
|
39
40
|
}
|
|
40
41
|
);
|
|
42
|
+
pool.on("factoryCreateError", (err) => {
|
|
43
|
+
poolLastErrorMap.set(configKey, err);
|
|
44
|
+
});
|
|
41
45
|
poolMap.set(configKey, pool);
|
|
42
46
|
}
|
|
43
|
-
return
|
|
47
|
+
return {
|
|
48
|
+
pool: poolMap.get(configKey),
|
|
49
|
+
getLastCreateError: () => poolLastErrorMap.get(configKey)
|
|
50
|
+
};
|
|
44
51
|
}
|
|
45
52
|
async function createRawConnection(config) {
|
|
46
53
|
if (config.dialect === "mysql") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/create-db-conn.ts"],
|
|
4
|
-
"mappings": "AACA,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AAUjC,MAAM,UAAU,oBAAI,IAA0B;AAG9C,MAAM,UAKF,CAAC;AAWE,SAAS,aAAa,QAAuC;AAElE,QAAM,
|
|
4
|
+
"mappings": "AACA,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AAUjC,MAAM,UAAU,oBAAI,IAA0B;AAG9C,MAAM,mBAAmB,oBAAI,IAAmB;AAGhD,MAAM,UAKF,CAAC;AAWE,SAAS,aAAa,QAAuC;AAElE,QAAM,EAAE,MAAM,mBAAmB,IAAI,gBAAgB,MAAM;AAG3D,SAAO,QAAQ,QAAQ,IAAI,aAAa,MAAM,QAAQ,kBAAkB,CAAC;AAC3E;AAEA,SAAS,gBAAgB,QAA2F;AAElH,QAAM,YAAY,KAAK;AAAA,IAAU;AAAA,IAAQ,CAAC,GAAG,UAC3C,SAAS,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAC9D,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,IAC/E;AAAA,EACN;AAEA,MAAI,CAAC,QAAQ,IAAI,SAAS,GAAG;AAC3B,UAAM,OAAO;AAAA,MACX;AAAA,QACE,QAAQ,YAAY;AAClB,gBAAM,OAAO,MAAM,oBAAoB,MAAM;AAC7C,gBAAM,KAAK,QAAQ;AACnB,iBAAO;AAAA,QACT;AAAA,QACA,SAAS,OAAO,SAAS;AACvB,gBAAM,KAAK,MAAM;AAAA,QACnB;AAAA,QACA,UAAU,CAAC,SAAS;AAElB,iBAAO,QAAQ,QAAQ,KAAK,WAAW;AAAA,QACzC;AAAA,MACF;AAAA,MACA;AAAA,QACE,KAAK,OAAO,MAAM,OAAO;AAAA,QACzB,KAAK,OAAO,MAAM,OAAO;AAAA,QACzB,sBAAsB,OAAO,MAAM,wBAAwB;AAAA,QAC3D,mBAAmB,OAAO,MAAM,qBAAqB;AAAA,QACrD,cAAc;AAAA;AAAA,MAChB;AAAA,IACF;AAEA,SAAK,GAAG,sBAAsB,CAAC,QAAe;AAC5C,uBAAiB,IAAI,WAAW,GAAG;AAAA,IACrC,CAAC;AAED,YAAQ,IAAI,WAAW,IAAI;AAAA,EAC7B;AAEA,SAAO;AAAA,IACL,MAAM,QAAQ,IAAI,SAAS;AAAA,IAC3B,oBAAoB,MAAM,iBAAiB,IAAI,SAAS;AAAA,EAC1D;AACF;AAEA,eAAe,oBAAoB,QAAuC;AACxE,MAAI,OAAO,YAAY,SAAS;AAC9B,UAAM,QAAQ,MAAM,aAAa,OAAO;AACxC,WAAO,IAAI,YAAY,OAAO,MAAM;AAAA,EACtC,WAAW,OAAO,YAAY,cAAc;AAC1C,UAAM,KAAK,MAAM,aAAa,IAAI;AAClC,UAAM,gBAAgB,MAAM,aAAa,eAAe;AACxD,WAAO,IAAI,iBAAiB,IAAI,cAAc,MAAM,MAAM;AAAA,EAC5D,OAAO;AAEL,UAAM,UAAU,MAAM,aAAa,SAAS;AAC5C,WAAO,IAAI,YAAY,SAAS,MAAM;AAAA,EACxC;AACF;AAEA,eAAe,aAA6C,MAAoD;AAC9G,MAAI,QAAQ,IAAI,KAAK,MAAM;AACzB,QAAI,SAAS,SAAS;AACpB,cAAQ,QAAQ,MAAM,OAAO,gBAAgB;AAAA,IAC/C,WAAW,SAAS,MAAM;AACxB,cAAQ,KAAK,MAAM,OAAO,IAAI;AAAA,IAChC,WAAW,SAAS,iBAAiB;AACnC,cAAQ,gBAAgB,MAAM,OAAO,iBAAiB;AAAA,IACxD,OAAO;AACL,cAAQ,UAAU,MAAM,OAAO,SAAS;AAAA,IAC1C;AAAA,EACF;AACA,SAAO,QAAQ,IAAI;AACrB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/pooled-db-conn.d.ts
CHANGED
|
@@ -13,8 +13,9 @@ export declare class PooledDbConn extends EventEmitter<{
|
|
|
13
13
|
}> implements DbConn {
|
|
14
14
|
private readonly _pool;
|
|
15
15
|
private readonly _initialConfig;
|
|
16
|
+
private readonly _getLastCreateError?;
|
|
16
17
|
private _rawConn?;
|
|
17
|
-
constructor(_pool: Pool<DbConn>, _initialConfig: DbConnConfig);
|
|
18
|
+
constructor(_pool: Pool<DbConn>, _initialConfig: DbConnConfig, _getLastCreateError?: (() => Error | undefined) | undefined);
|
|
18
19
|
get config(): DbConnConfig;
|
|
19
20
|
get isConnected(): boolean;
|
|
20
21
|
get isOnTransaction(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pooled-db-conn.d.ts","sourceRoot":"","sources":["../src/pooled-db-conn.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAkB,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIjF;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,YAAY,CAAC;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAE,YAAW,MAAM;IAK7E,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"pooled-db-conn.d.ts","sourceRoot":"","sources":["../src/pooled-db-conn.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAkB,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIjF;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,YAAY,CAAC;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAE,YAAW,MAAM;IAK7E,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IALvC,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAGP,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EACnB,cAAc,EAAE,YAAY,EAC5B,mBAAmB,CAAC,GAAE,MAAM,KAAK,GAAG,SAAS,aAAA;IAMhE,IAAI,MAAM,IAAI,YAAY,CAEzB;IAGD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAGD,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAIF;;;;;OAKG;IACG,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1C;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAKtD;;;;;;;OAOG;IACG,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAKlF;;;;;;;OAOG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC;IAKhB,OAAO,CAAC,eAAe;CAMxB"}
|
package/dist/pooled-db-conn.js
CHANGED
|
@@ -3,10 +3,11 @@ import { SdError, EventEmitter } from "@simplysm/core-common";
|
|
|
3
3
|
import { DB_CONN_ERRORS } from "./types/db-conn.js";
|
|
4
4
|
const logger = consola.withTag("pooled-db-conn");
|
|
5
5
|
class PooledDbConn extends EventEmitter {
|
|
6
|
-
constructor(_pool, _initialConfig) {
|
|
6
|
+
constructor(_pool, _initialConfig, _getLastCreateError) {
|
|
7
7
|
super();
|
|
8
8
|
this._pool = _pool;
|
|
9
9
|
this._initialConfig = _initialConfig;
|
|
10
|
+
this._getLastCreateError = _getLastCreateError;
|
|
10
11
|
}
|
|
11
12
|
// 풀에서 빌려온 실제 물리 커넥션
|
|
12
13
|
_rawConn;
|
|
@@ -31,7 +32,16 @@ class PooledDbConn extends EventEmitter {
|
|
|
31
32
|
if (this._rawConn != null) {
|
|
32
33
|
throw new SdError(DB_CONN_ERRORS.ALREADY_CONNECTED);
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
+
try {
|
|
36
|
+
this._rawConn = await this._pool.acquire();
|
|
37
|
+
} catch (err) {
|
|
38
|
+
const { dialect, host, port, database } = this._initialConfig;
|
|
39
|
+
const cause = this._getLastCreateError?.() ?? (err instanceof Error ? err : void 0);
|
|
40
|
+
throw new SdError(
|
|
41
|
+
...cause != null ? [cause] : [],
|
|
42
|
+
`DB \uC5F0\uACB0 \uC2E4\uD328 [${dialect}://${host}:${port ?? ""}/${database ?? ""}]`
|
|
43
|
+
);
|
|
44
|
+
}
|
|
35
45
|
this._rawConn.on("close", this._onRawConnClose);
|
|
36
46
|
}
|
|
37
47
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/pooled-db-conn.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,aAAa;AACpB,SAAS,SAAS,oBAAoB;AAGtC,SAAS,sBAAsD;AAE/D,MAAM,SAAS,QAAQ,QAAQ,gBAAgB;AAQxC,MAAM,qBAAqB,aAAgD;AAAA,EAIhF,YACmB,OACA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/types/db-conn.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { EventEmitter } from "@simplysm/core-common";
|
|
2
2
|
import type { ColumnMeta, Dialect, IsolationLevel } from "@simplysm/orm-common";
|
|
3
3
|
/**
|
|
4
|
-
* DB 연결
|
|
4
|
+
* DB 연결 수립 타임아웃 (10초)
|
|
5
|
+
*/
|
|
6
|
+
export declare const DB_CONN_CONNECT_TIMEOUT: number;
|
|
7
|
+
/**
|
|
8
|
+
* DB 쿼리 기본 타임아웃 (10분)
|
|
5
9
|
*/
|
|
6
10
|
export declare const DB_CONN_DEFAULT_TIMEOUT: number;
|
|
7
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-conn.d.ts","sourceRoot":"","sources":["../../src/types/db-conn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db-conn.d.ts","sourceRoot":"","sources":["../../src/types/db-conn.ts"],"names":[],"mappings":"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"}
|
package/dist/types/db-conn.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const DB_CONN_CONNECT_TIMEOUT = 10 * 1e3;
|
|
1
2
|
const DB_CONN_DEFAULT_TIMEOUT = 10 * 60 * 1e3;
|
|
2
3
|
const DB_CONN_ERRORS = {
|
|
3
4
|
NOT_CONNECTED: "'Connection'\uC774 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
|
|
@@ -10,6 +11,7 @@ function getDialectFromConfig(config) {
|
|
|
10
11
|
return config.dialect;
|
|
11
12
|
}
|
|
12
13
|
export {
|
|
14
|
+
DB_CONN_CONNECT_TIMEOUT,
|
|
13
15
|
DB_CONN_DEFAULT_TIMEOUT,
|
|
14
16
|
DB_CONN_ERRORS,
|
|
15
17
|
getDialectFromConfig
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/types/db-conn.ts"],
|
|
4
|
-
"mappings": "AAUO,MAAM,0BAA0B,KAAK,KAAK;AAK1C,MAAM,iBAAiB;AAAA,EAC5B,eAAe;AAAA,EACf,mBAAmB;AACrB;AA4KO,SAAS,qBAAqB,QAA+B;AAClE,MAAI,OAAO,YAAY,eAAe;AACpC,WAAO;AAAA,EACT;AACA,SAAO,OAAO;AAChB;",
|
|
4
|
+
"mappings": "AAUO,MAAM,0BAA0B,KAAK;AAKrC,MAAM,0BAA0B,KAAK,KAAK;AAK1C,MAAM,iBAAiB;AAAA,EAC5B,eAAe;AAAA,EACf,mBAAmB;AACrB;AA4KO,SAAS,qBAAqB,QAA+B;AAClE,MAAI,OAAO,YAAY,eAAe;AACpC,WAAO;AAAA,EACT;AACA,SAAO,OAAO;AAChB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/orm-node",
|
|
3
|
-
"
|
|
4
|
-
"version": "13.0.15",
|
|
3
|
+
"version": "13.0.23",
|
|
5
4
|
"description": "심플리즘 패키지 - ORM 모듈 (node)",
|
|
6
5
|
"author": "김석래",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/kslhunter/simplysm.git",
|
|
10
10
|
"directory": "packages/orm-node"
|
|
11
11
|
},
|
|
12
|
-
"license": "Apache-2.0",
|
|
13
12
|
"type": "module",
|
|
14
13
|
"main": "./dist/index.js",
|
|
15
14
|
"types": "./dist/index.d.ts",
|
|
@@ -17,11 +16,12 @@
|
|
|
17
16
|
"dist",
|
|
18
17
|
"src"
|
|
19
18
|
],
|
|
19
|
+
"sideEffects": false,
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"consola": "^3.4.2",
|
|
22
22
|
"generic-pool": "^3.9.0",
|
|
23
|
-
"@simplysm/core-common": "13.0.
|
|
24
|
-
"@simplysm/orm-common": "13.0.
|
|
23
|
+
"@simplysm/core-common": "13.0.23",
|
|
24
|
+
"@simplysm/orm-common": "13.0.23"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/pg": "^8.16.0",
|
|
@@ -11,7 +11,13 @@ import {
|
|
|
11
11
|
waitUntil,
|
|
12
12
|
} from "@simplysm/core-common";
|
|
13
13
|
import type { ColumnMeta, DataType, IsolationLevel } from "@simplysm/orm-common";
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
DB_CONN_CONNECT_TIMEOUT,
|
|
16
|
+
DB_CONN_DEFAULT_TIMEOUT,
|
|
17
|
+
DB_CONN_ERRORS,
|
|
18
|
+
type DbConn,
|
|
19
|
+
type MssqlDbConnConfig,
|
|
20
|
+
} from "../types/db-conn";
|
|
15
21
|
import type tediousType from "tedious";
|
|
16
22
|
import type { DataType as TediousDataType } from "tedious/lib/data-type";
|
|
17
23
|
|
|
@@ -61,7 +67,7 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
|
|
|
61
67
|
encrypt: this.config.dialect === "mssql-azure",
|
|
62
68
|
requestTimeout: this._timeout,
|
|
63
69
|
trustServerCertificate: true,
|
|
64
|
-
connectTimeout:
|
|
70
|
+
connectTimeout: DB_CONN_CONNECT_TIMEOUT,
|
|
65
71
|
} as tediousType.ConnectionOptions,
|
|
66
72
|
});
|
|
67
73
|
|
|
@@ -11,7 +11,13 @@ import {
|
|
|
11
11
|
Uuid,
|
|
12
12
|
} from "@simplysm/core-common";
|
|
13
13
|
import type { ColumnMeta, DataType, IsolationLevel } from "@simplysm/orm-common";
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
DB_CONN_CONNECT_TIMEOUT,
|
|
16
|
+
DB_CONN_DEFAULT_TIMEOUT,
|
|
17
|
+
DB_CONN_ERRORS,
|
|
18
|
+
type DbConn,
|
|
19
|
+
type PostgresqlDbConnConfig,
|
|
20
|
+
} from "../types/db-conn";
|
|
15
21
|
import type { Client } from "pg";
|
|
16
22
|
import type { CopyStreamQuery } from "pg-copy-streams";
|
|
17
23
|
|
|
@@ -50,7 +56,7 @@ export class PostgresqlDbConn extends EventEmitter<{ close: void }> implements D
|
|
|
50
56
|
user: this.config.username,
|
|
51
57
|
password: this.config.password,
|
|
52
58
|
database: this.config.database,
|
|
53
|
-
connectionTimeoutMillis:
|
|
59
|
+
connectionTimeoutMillis: DB_CONN_CONNECT_TIMEOUT,
|
|
54
60
|
query_timeout: this._timeout,
|
|
55
61
|
});
|
|
56
62
|
|
package/src/create-db-conn.ts
CHANGED
|
@@ -16,6 +16,9 @@ import { PostgresqlDbConn } from "./connections/postgresql-db-conn";
|
|
|
16
16
|
// 설정별 커넥션 풀 캐싱
|
|
17
17
|
const poolMap = new Map<string, Pool<DbConn>>();
|
|
18
18
|
|
|
19
|
+
// 풀 생성 실패 시 마지막 에러 캐싱 (configKey 기준)
|
|
20
|
+
const poolLastErrorMap = new Map<string, Error>();
|
|
21
|
+
|
|
19
22
|
// 지연 로딩 모듈 캐시
|
|
20
23
|
const modules: {
|
|
21
24
|
tedious?: typeof import("tedious");
|
|
@@ -35,13 +38,13 @@ const modules: {
|
|
|
35
38
|
*/
|
|
36
39
|
export function createDbConn(config: DbConnConfig): Promise<DbConn> {
|
|
37
40
|
// 1. 풀 가져오기 (없으면 생성)
|
|
38
|
-
const pool = getOrCreatePool(config);
|
|
41
|
+
const { pool, getLastCreateError } = getOrCreatePool(config);
|
|
39
42
|
|
|
40
43
|
// 2. 래퍼 객체 반환
|
|
41
|
-
return Promise.resolve(new PooledDbConn(pool, config));
|
|
44
|
+
return Promise.resolve(new PooledDbConn(pool, config, getLastCreateError));
|
|
42
45
|
}
|
|
43
46
|
|
|
44
|
-
function getOrCreatePool(config: DbConnConfig): Pool<DbConn
|
|
47
|
+
function getOrCreatePool(config: DbConnConfig): { pool: Pool<DbConn>; getLastCreateError: () => Error | undefined } {
|
|
45
48
|
// 객체를 키로 쓰기 위해 문자열 변환 (중첩 객체도 정렬하여 동일 설정의 일관된 키 보장)
|
|
46
49
|
const configKey = JSON.stringify(config, (_, value: unknown) =>
|
|
47
50
|
value != null && typeof value === "object" && !Array.isArray(value)
|
|
@@ -74,10 +77,17 @@ function getOrCreatePool(config: DbConnConfig): Pool<DbConn> {
|
|
|
74
77
|
},
|
|
75
78
|
);
|
|
76
79
|
|
|
80
|
+
pool.on("factoryCreateError", (err: Error) => {
|
|
81
|
+
poolLastErrorMap.set(configKey, err);
|
|
82
|
+
});
|
|
83
|
+
|
|
77
84
|
poolMap.set(configKey, pool);
|
|
78
85
|
}
|
|
79
86
|
|
|
80
|
-
return
|
|
87
|
+
return {
|
|
88
|
+
pool: poolMap.get(configKey)!,
|
|
89
|
+
getLastCreateError: () => poolLastErrorMap.get(configKey),
|
|
90
|
+
};
|
|
81
91
|
}
|
|
82
92
|
|
|
83
93
|
async function createRawConnection(config: DbConnConfig): Promise<DbConn> {
|
package/src/pooled-db-conn.ts
CHANGED
|
@@ -19,6 +19,7 @@ export class PooledDbConn extends EventEmitter<{ close: void }> implements DbCon
|
|
|
19
19
|
constructor(
|
|
20
20
|
private readonly _pool: Pool<DbConn>,
|
|
21
21
|
private readonly _initialConfig: DbConnConfig,
|
|
22
|
+
private readonly _getLastCreateError?: () => Error | undefined,
|
|
22
23
|
) {
|
|
23
24
|
super();
|
|
24
25
|
}
|
|
@@ -49,7 +50,16 @@ export class PooledDbConn extends EventEmitter<{ close: void }> implements DbCon
|
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
// 1. 풀에서 커넥션 획득
|
|
52
|
-
|
|
53
|
+
try {
|
|
54
|
+
this._rawConn = await this._pool.acquire();
|
|
55
|
+
} catch (err) {
|
|
56
|
+
const { dialect, host, port, database } = this._initialConfig;
|
|
57
|
+
const cause = this._getLastCreateError?.() ?? (err instanceof Error ? err : undefined);
|
|
58
|
+
throw new SdError(
|
|
59
|
+
...(cause != null ? [cause] : []),
|
|
60
|
+
`DB 연결 실패 [${dialect}://${host}:${port ?? ""}/${database ?? ""}]`,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
53
63
|
|
|
54
64
|
// 2. 물리 연결이 (타임아웃 등으로) 끊어질 경우를 대비해 리스너 등록
|
|
55
65
|
// 만약 사용 중에 끊기면 PooledDbConn도 close 이벤트를 발생시켜야 함
|
package/src/types/db-conn.ts
CHANGED
|
@@ -6,7 +6,12 @@ import type { ColumnMeta, Dialect, IsolationLevel } from "@simplysm/orm-common";
|
|
|
6
6
|
// ============================================
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* DB 연결
|
|
9
|
+
* DB 연결 수립 타임아웃 (10초)
|
|
10
|
+
*/
|
|
11
|
+
export const DB_CONN_CONNECT_TIMEOUT = 10 * 1000;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* DB 쿼리 기본 타임아웃 (10분)
|
|
10
15
|
*/
|
|
11
16
|
export const DB_CONN_DEFAULT_TIMEOUT = 10 * 60 * 1000;
|
|
12
17
|
|