@simplysm/orm-node 13.0.100 → 14.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.
@@ -1,34 +1,65 @@
1
- import {
2
- createDbContext
3
- } from "@simplysm/orm-common";
1
+ import { createDbContext, } from "@simplysm/orm-common";
4
2
  import { NodeDbContextExecutor } from "./node-db-context-executor.js";
5
- function createOrm(dbContextDef, config, options) {
6
- function _createDbContext() {
7
- const database = options?.database ?? ("database" in config ? config.database : void 0);
8
- if (database == null || database === "") {
9
- throw new Error("database is required");
3
+ /**
4
+ * Node.js ORM 팩토리 함수
5
+ *
6
+ * DbContext와 DB 연결을 관리하는 인스턴스를 생성한다.
7
+ * DbContext 정의와 연결 설정을 받아 트랜잭션을 관리한다.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const MyDb = defineDbContext({
12
+ * user: (db) => queryable(db, User),
13
+ * });
14
+ *
15
+ * const orm = createOrm(MyDb, {
16
+ * dialect: "mysql",
17
+ * host: "localhost",
18
+ * port: 3306,
19
+ * username: "root",
20
+ * password: "password",
21
+ * database: "mydb",
22
+ * });
23
+ *
24
+ * // 트랜잭션 내에서 실행
25
+ * await orm.connect(async (db) => {
26
+ * const users = await db.user().execute();
27
+ * return users;
28
+ * });
29
+ *
30
+ * // 트랜잭션 없이 실행
31
+ * await orm.connectWithoutTransaction(async (db) => {
32
+ * const users = await db.user().execute();
33
+ * return users;
34
+ * });
35
+ * ```
36
+ */
37
+ export function createOrm(dbContextDef, config, options) {
38
+ function _createDbContext() {
39
+ // options의 database를 우선 사용, 없으면 config에서
40
+ const database = options?.database ?? ("database" in config ? config.database : undefined);
41
+ if (database == null || database === "") {
42
+ throw new Error("database는 필수입니다");
43
+ }
44
+ // options의 schema를 우선 사용, 없으면 config에서
45
+ const schema = options?.schema ?? ("schema" in config ? config.schema : undefined);
46
+ return createDbContext(dbContextDef, new NodeDbContextExecutor(config), {
47
+ database,
48
+ schema,
49
+ });
10
50
  }
11
- const schema = options?.schema ?? ("schema" in config ? config.schema : void 0);
12
- return createDbContext(dbContextDef, new NodeDbContextExecutor(config), {
13
- database,
14
- schema
15
- });
16
- }
17
- return {
18
- dbContextDef,
19
- config,
20
- options,
21
- async connect(callback, isolationLevel) {
22
- const db = _createDbContext();
23
- return db.connect(async () => callback(db), isolationLevel);
24
- },
25
- async connectWithoutTransaction(callback) {
26
- const db = _createDbContext();
27
- return db.connectWithoutTransaction(async () => callback(db));
28
- }
29
- };
51
+ return {
52
+ dbContextDef,
53
+ config,
54
+ options,
55
+ async connect(callback, isolationLevel) {
56
+ const db = _createDbContext();
57
+ return db.connect(async () => callback(db), isolationLevel);
58
+ },
59
+ async connectWithoutTransaction(callback) {
60
+ const db = _createDbContext();
61
+ return db.connectWithoutTransaction(async () => callback(db));
62
+ },
63
+ };
30
64
  }
31
- export {
32
- createOrm
33
- };
34
- //# sourceMappingURL=create-orm.js.map
65
+ //# sourceMappingURL=create-orm.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/create-orm.ts"],
4
- "mappings": "AAAA;AAAA,EACE;AAAA,OAIK;AAEP,SAAS,6BAA6B;AAoF/B,SAAS,UACd,cACA,QACA,SACW;AACX,WAAS,mBAA4C;AAEnD,UAAM,WAAW,SAAS,aAAa,cAAc,SAAS,OAAO,WAAW;AAChF,QAAI,YAAY,QAAQ,aAAa,IAAI;AACvC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AAGA,UAAM,SAAS,SAAS,WAAW,YAAY,SAAS,OAAO,SAAS;AAExE,WAAO,gBAAgB,cAAc,IAAI,sBAAsB,MAAM,GAAG;AAAA,MACtE;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,QAAQ,UAAU,gBAAiB;AACvC,YAAM,KAAK,iBAAiB;AAC5B,aAAO,GAAG,QAAQ,YAAY,SAAS,EAAE,GAAG,cAAc;AAAA,IAC5D;AAAA,IACA,MAAM,0BAA0B,UAAU;AACxC,YAAM,KAAK,iBAAiB;AAC5B,aAAO,GAAG,0BAA0B,YAAY,SAAS,EAAE,CAAC;AAAA,IAC9D;AAAA,EACF;AACF;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"create-orm.js","sourceRoot":"","sources":["..\\src\\create-orm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAIhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAkDnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,SAAS,CACvB,YAAkB,EAClB,MAAoB,EACpB,OAAoB;IAEpB,SAAS,gBAAgB;QACvB,yCAAyC;QACzC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3F,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEnF,OAAO,eAAe,CAAC,YAAY,EAAE,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;YACtE,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,YAAY;QACZ,MAAM;QACN,OAAO;QACP,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAe;YACrC,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,yBAAyB,CAAC,QAAQ;YACtC,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,11 @@
1
+ // 타입
1
2
  export * from "./types/db-conn.js";
3
+ // 연결
2
4
  export * from "./connections/mssql-db-conn.js";
3
5
  export * from "./connections/mysql-db-conn.js";
4
6
  export * from "./connections/postgresql-db-conn.js";
7
+ // 코어
5
8
  export * from "./create-db-conn.js";
6
9
  export * from "./node-db-context-executor.js";
7
10
  export * from "./create-orm.js";
8
- //# sourceMappingURL=index.js.map
11
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts"],
4
- "mappings": "AACA,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["..\\src\\index.ts"],"names":[],"mappings":"AAAA,KAAK;AACL,cAAc,iBAAiB,CAAC;AAEhC,KAAK;AACL,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AAEjD,KAAK;AACL,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import type { DbContextExecutor, IsolationLevel, QueryDef, ResultMeta, ColumnMeta, DataRecord } from "@simplysm/orm-common";
2
2
  import type { DbConnConfig } from "./types/db-conn";
3
3
  /**
4
- * DbContextExecutor for Node.js environment
4
+ * Node.js 환경용 DbContextExecutor
5
5
  *
6
- * Executor used by DbContext that handles actual DB connections.
6
+ * DbContext에서 사용하는 실제 DB 연결을 처리하는 실행자.
7
7
  */
8
8
  export declare class NodeDbContextExecutor implements DbContextExecutor {
9
9
  private readonly _config;
@@ -11,61 +11,61 @@ export declare class NodeDbContextExecutor implements DbContextExecutor {
11
11
  private readonly _dialect;
12
12
  constructor(_config: DbConnConfig);
13
13
  /**
14
- * Establish DB connection
14
+ * DB 연결을 수립한다
15
15
  */
16
16
  connect(): Promise<void>;
17
17
  /**
18
- * Close DB connection
18
+ * DB 연결을 종료한다
19
19
  *
20
- * @throws {Error} When not connected
20
+ * @throws {Error} 연결되지 않은 경우
21
21
  */
22
22
  close(): Promise<void>;
23
23
  /**
24
- * Begin transaction
24
+ * 트랜잭션을 시작한다
25
25
  *
26
- * @param isolationLevel - Transaction isolation level
27
- * @throws {Error} When not connected
26
+ * @param isolationLevel - 트랜잭션 격리 수준
27
+ * @throws {Error} 연결되지 않은 경우
28
28
  */
29
29
  beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
30
30
  /**
31
- * Commit transaction
31
+ * 트랜잭션을 커밋한다
32
32
  *
33
- * @throws {Error} When not connected
33
+ * @throws {Error} 연결되지 않은 경우
34
34
  */
35
35
  commitTransaction(): Promise<void>;
36
36
  /**
37
- * Rollback transaction
37
+ * 트랜잭션을 롤백한다
38
38
  *
39
- * @throws {Error} When not connected
39
+ * @throws {Error} 연결되지 않은 경우
40
40
  */
41
41
  rollbackTransaction(): Promise<void>;
42
42
  /**
43
- * Execute parameterized query
43
+ * 파라미터화된 쿼리를 실행한다
44
44
  *
45
- * @param query - SQL query string
46
- * @param params - Query parameter array
47
- * @returns Query result array
48
- * @throws {Error} When not connected
45
+ * @param query - SQL 쿼리 문자열
46
+ * @param params - 쿼리 파라미터 배열
47
+ * @returns 쿼리 결과 배열
48
+ * @throws {Error} 연결되지 않은 경우
49
49
  */
50
50
  executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
51
51
  /**
52
- * Bulk insert data (using native bulk API)
52
+ * 대량 데이터 삽입 (네이티브 bulk API 사용)
53
53
  *
54
- * @param tableName - Target table name
55
- * @param columnMetas - Column metadata
56
- * @param records - Record array to insert
57
- * @throws {Error} When not connected
54
+ * @param tableName - 대상 테이블 이름
55
+ * @param columnMetas - 컬럼 메타데이터
56
+ * @param records - 삽입할 레코드 배열
57
+ * @throws {Error} 연결되지 않은 경우
58
58
  */
59
59
  bulkInsert(tableName: string, columnMetas: Record<string, ColumnMeta>, records: DataRecord[]): Promise<void>;
60
60
  /**
61
- * Execute QueryDef array
61
+ * QueryDef 배열을 실행한다
62
62
  *
63
- * Converts QueryDef to SQL and executes, parses results using ResultMeta.
63
+ * QueryDef SQL 변환하여 실행하고, ResultMeta를 사용하여 결과를 파싱한다.
64
64
  *
65
- * @param defs - QueryDef array to execute
66
- * @param resultMetas - Result parsing metadata array (used for type conversion)
67
- * @returns Array of execution results for each QueryDef
68
- * @throws {Error} When not connected
65
+ * @param defs - 실행할 QueryDef 배열
66
+ * @param resultMetas - 결과 파싱 메타데이터 배열 (타입 변환에 사용)
67
+ * @returns QueryDef의 실행 결과 배열
68
+ * @throws {Error} 연결되지 않은 경우
69
69
  */
70
70
  executeDefs<T = DataRecord>(defs: QueryDef[], resultMetas?: (ResultMeta | undefined)[]): Promise<T[][]>;
71
71
  private _requireConn;
@@ -2,124 +2,132 @@ import { SdError } from "@simplysm/core-common";
2
2
  import { createQueryBuilder, parseQueryResult } from "@simplysm/orm-common";
3
3
  import { DB_CONN_ERRORS, getDialectFromConfig } from "./types/db-conn.js";
4
4
  import { createDbConn } from "./create-db-conn.js";
5
- class NodeDbContextExecutor {
6
- constructor(_config) {
7
- this._config = _config;
8
- this._dialect = getDialectFromConfig(_config);
9
- }
10
- _conn;
11
- _dialect;
12
- /**
13
- * Establish DB connection
14
- */
15
- async connect() {
16
- this._conn = await createDbConn(this._config);
17
- await this._conn.connect();
18
- }
19
- /**
20
- * Close DB connection
21
- *
22
- * @throws {Error} When not connected
23
- */
24
- async close() {
25
- const conn = this._requireConn();
26
- await conn.close();
27
- this._conn = void 0;
28
- }
29
- /**
30
- * Begin transaction
31
- *
32
- * @param isolationLevel - Transaction isolation level
33
- * @throws {Error} When not connected
34
- */
35
- async beginTransaction(isolationLevel) {
36
- const conn = this._requireConn();
37
- await conn.beginTransaction(isolationLevel);
38
- }
39
- /**
40
- * Commit transaction
41
- *
42
- * @throws {Error} When not connected
43
- */
44
- async commitTransaction() {
45
- const conn = this._requireConn();
46
- await conn.commitTransaction();
47
- }
48
- /**
49
- * Rollback transaction
50
- *
51
- * @throws {Error} When not connected
52
- */
53
- async rollbackTransaction() {
54
- const conn = this._requireConn();
55
- await conn.rollbackTransaction();
56
- }
57
- /**
58
- * Execute parameterized query
59
- *
60
- * @param query - SQL query string
61
- * @param params - Query parameter array
62
- * @returns Query result array
63
- * @throws {Error} When not connected
64
- */
65
- async executeParametrized(query, params) {
66
- const conn = this._requireConn();
67
- return conn.executeParametrized(query, params);
68
- }
69
- /**
70
- * Bulk insert data (using native bulk API)
71
- *
72
- * @param tableName - Target table name
73
- * @param columnMetas - Column metadata
74
- * @param records - Record array to insert
75
- * @throws {Error} When not connected
76
- */
77
- async bulkInsert(tableName, columnMetas, records) {
78
- const conn = this._requireConn();
79
- await conn.bulkInsert(tableName, columnMetas, records);
80
- }
81
- /**
82
- * Execute QueryDef array
83
- *
84
- * Converts QueryDef to SQL and executes, parses results using ResultMeta.
85
- *
86
- * @param defs - QueryDef array to execute
87
- * @param resultMetas - Result parsing metadata array (used for type conversion)
88
- * @returns Array of execution results for each QueryDef
89
- * @throws {Error} When not connected
90
- */
91
- async executeDefs(defs, resultMetas) {
92
- const conn = this._requireConn();
93
- const builder = createQueryBuilder(this._dialect);
94
- if (resultMetas != null && resultMetas.every((item) => item == null)) {
95
- const combinedSql = defs.map((def) => builder.build(def).sql).join("\n");
96
- await conn.execute([combinedSql]);
97
- return defs.map(() => []);
5
+ /**
6
+ * Node.js 환경용 DbContextExecutor
7
+ *
8
+ * DbContext에서 사용하는 실제 DB 연결을 처리하는 실행자.
9
+ */
10
+ export class NodeDbContextExecutor {
11
+ _config;
12
+ _conn;
13
+ _dialect;
14
+ constructor(_config) {
15
+ this._config = _config;
16
+ this._dialect = getDialectFromConfig(_config);
98
17
  }
99
- const results = [];
100
- for (let i = 0; i < defs.length; i++) {
101
- const def = defs[i];
102
- const meta = resultMetas?.[i];
103
- const buildResult = builder.build(def);
104
- const rawResults = await conn.execute([buildResult.sql]);
105
- const targetResultSet = buildResult.resultSetIndex != null ? rawResults[buildResult.resultSetIndex] : rawResults[0];
106
- if (meta != null) {
107
- const parsed = await parseQueryResult(targetResultSet, meta);
108
- results.push(parsed ?? []);
109
- } else {
110
- results.push(targetResultSet);
111
- }
18
+ /**
19
+ * DB 연결을 수립한다
20
+ */
21
+ async connect() {
22
+ this._conn = await createDbConn(this._config);
23
+ await this._conn.connect();
112
24
  }
113
- return results;
114
- }
115
- _requireConn() {
116
- if (this._conn == null) {
117
- throw new SdError(DB_CONN_ERRORS.NOT_CONNECTED);
25
+ /**
26
+ * DB 연결을 종료한다
27
+ *
28
+ * @throws {Error} 연결되지 않은 경우
29
+ */
30
+ async close() {
31
+ const conn = this._requireConn();
32
+ await conn.close();
33
+ this._conn = undefined;
34
+ }
35
+ /**
36
+ * 트랜잭션을 시작한다
37
+ *
38
+ * @param isolationLevel - 트랜잭션 격리 수준
39
+ * @throws {Error} 연결되지 않은 경우
40
+ */
41
+ async beginTransaction(isolationLevel) {
42
+ const conn = this._requireConn();
43
+ await conn.beginTransaction(isolationLevel);
44
+ }
45
+ /**
46
+ * 트랜잭션을 커밋한다
47
+ *
48
+ * @throws {Error} 연결되지 않은 경우
49
+ */
50
+ async commitTransaction() {
51
+ const conn = this._requireConn();
52
+ await conn.commitTransaction();
53
+ }
54
+ /**
55
+ * 트랜잭션을 롤백한다
56
+ *
57
+ * @throws {Error} 연결되지 않은 경우
58
+ */
59
+ async rollbackTransaction() {
60
+ const conn = this._requireConn();
61
+ await conn.rollbackTransaction();
62
+ }
63
+ /**
64
+ * 파라미터화된 쿼리를 실행한다
65
+ *
66
+ * @param query - SQL 쿼리 문자열
67
+ * @param params - 쿼리 파라미터 배열
68
+ * @returns 쿼리 결과 배열
69
+ * @throws {Error} 연결되지 않은 경우
70
+ */
71
+ async executeParametrized(query, params) {
72
+ const conn = this._requireConn();
73
+ return conn.executeParametrized(query, params);
74
+ }
75
+ /**
76
+ * 대량 데이터 삽입 (네이티브 bulk API 사용)
77
+ *
78
+ * @param tableName - 대상 테이블 이름
79
+ * @param columnMetas - 컬럼 메타데이터
80
+ * @param records - 삽입할 레코드 배열
81
+ * @throws {Error} 연결되지 않은 경우
82
+ */
83
+ async bulkInsert(tableName, columnMetas, records) {
84
+ const conn = this._requireConn();
85
+ await conn.bulkInsert(tableName, columnMetas, records);
86
+ }
87
+ /**
88
+ * QueryDef 배열을 실행한다
89
+ *
90
+ * QueryDef를 SQL로 변환하여 실행하고, ResultMeta를 사용하여 결과를 파싱한다.
91
+ *
92
+ * @param defs - 실행할 QueryDef 배열
93
+ * @param resultMetas - 결과 파싱 메타데이터 배열 (타입 변환에 사용)
94
+ * @returns 각 QueryDef의 실행 결과 배열
95
+ * @throws {Error} 연결되지 않은 경우
96
+ */
97
+ async executeDefs(defs, resultMetas) {
98
+ const conn = this._requireConn();
99
+ const builder = createQueryBuilder(this._dialect);
100
+ // 데이터를 가져올 필요가 없도록 설정된 경우, 단일 쿼리로 한 번의 요청을 보낸다
101
+ // 결과가 필요 없으므로 인터페이스 계약을 유지하기 위해 defs.length에 맞는 빈 배열을 반환
102
+ if (resultMetas != null && resultMetas.every((item) => item == null)) {
103
+ const combinedSql = defs.map((def) => builder.build(def).sql).join("\n");
104
+ await conn.execute([combinedSql]);
105
+ return defs.map(() => []);
106
+ }
107
+ // 각 def를 개별적으로 실행
108
+ const results = [];
109
+ for (let i = 0; i < defs.length; i++) {
110
+ const def = defs[i];
111
+ const meta = resultMetas?.[i];
112
+ const buildResult = builder.build(def);
113
+ const rawResults = await conn.execute([buildResult.sql]);
114
+ // resultSetIndex가 지정된 경우 해당 인덱스의 결과 집합을 사용
115
+ const targetResultSet = buildResult.resultSetIndex != null ? rawResults[buildResult.resultSetIndex] : rawResults[0];
116
+ if (meta != null) {
117
+ const parsed = await parseQueryResult(targetResultSet, meta);
118
+ results.push(parsed ?? []);
119
+ }
120
+ else {
121
+ results.push(targetResultSet);
122
+ }
123
+ }
124
+ return results;
125
+ }
126
+ _requireConn() {
127
+ if (this._conn == null) {
128
+ throw new SdError(DB_CONN_ERRORS.NOT_CONNECTED);
129
+ }
130
+ return this._conn;
118
131
  }
119
- return this._conn;
120
- }
121
132
  }
122
- export {
123
- NodeDbContextExecutor
124
- };
125
- //# sourceMappingURL=node-db-context-executor.js.map
133
+ //# sourceMappingURL=node-db-context-executor.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/node-db-context-executor.ts"],
4
- "mappings": "AAAA,SAAS,eAAe;AAUxB,SAAS,oBAAoB,wBAAwB;AAErD,SAAS,gBAAgB,4BAA4B;AACrD,SAAS,oBAAoB;AAOtB,MAAM,sBAAmD;AAAA,EAI9D,YAA6B,SAAuB;AAAvB;AAC3B,SAAK,WAAW,qBAAqB,OAAO;AAAA,EAC9C;AAAA,EALQ;AAAA,EACS;AAAA;AAAA;AAAA;AAAA,EASjB,MAAM,UAAyB;AAC7B,SAAK,QAAQ,MAAM,aAAa,KAAK,OAAO;AAC5C,UAAM,KAAK,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QAAuB;AAC3B,UAAM,OAAO,KAAK,aAAa;AAC/B,UAAM,KAAK,MAAM;AACjB,SAAK,QAAQ;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,iBAAiB,gBAAgD;AACrE,UAAM,OAAO,KAAK,aAAa;AAC/B,UAAM,KAAK,iBAAiB,cAAc;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,oBAAmC;AACvC,UAAM,OAAO,KAAK,aAAa;AAC/B,UAAM,KAAK,kBAAkB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAqC;AACzC,UAAM,OAAO,KAAK,aAAa;AAC/B,UAAM,KAAK,oBAAoB;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,oBACJ,OACA,QACsC;AACtC,UAAM,OAAO,KAAK,aAAa;AAC/B,WAAO,KAAK,oBAAoB,OAAO,MAAM;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,WACJ,WACA,aACA,SACe;AACf,UAAM,OAAO,KAAK,aAAa;AAC/B,UAAM,KAAK,WAAW,WAAW,aAAa,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,YACJ,MACA,aACgB;AAChB,UAAM,OAAO,KAAK,aAAa;AAE/B,UAAM,UAAU,mBAAmB,KAAK,QAAQ;AAIhD,QAAI,eAAe,QAAQ,YAAY,MAAM,CAAC,SAAS,QAAQ,IAAI,GAAG;AACpE,YAAM,cAAc,KAAK,IAAI,CAAC,QAAQ,QAAQ,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI;AACvE,YAAM,KAAK,QAAQ,CAAC,WAAW,CAAC;AAChC,aAAO,KAAK,IAAI,MAAM,CAAC,CAAC;AAAA,IAC1B;AAGA,UAAM,UAAiB,CAAC;AACxB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,OAAO,cAAc,CAAC;AAC5B,YAAM,cAAc,QAAQ,MAAM,GAAG;AAErC,YAAM,aAAa,MAAM,KAAK,QAAQ,CAAC,YAAY,GAAG,CAAC;AAGvD,YAAM,kBACJ,YAAY,kBAAkB,OAAO,WAAW,YAAY,cAAc,IAAI,WAAW,CAAC;AAE5F,UAAI,QAAQ,MAAM;AAChB,cAAM,SAAS,MAAM,iBAAoB,iBAAiB,IAAI;AAC9D,gBAAQ,KAAK,UAAU,CAAC,CAAC;AAAA,MAC3B,OAAO;AACL,gBAAQ,KAAK,eAAsB;AAAA,MACrC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,eAAuB;AAC7B,QAAI,KAAK,SAAS,MAAM;AACtB,YAAM,IAAI,QAAQ,eAAe,aAAa;AAAA,IAChD;AACA,WAAO,KAAK;AAAA,EACd;AACF;",
5
- "names": []
6
- }
1
+ {"version":3,"file":"node-db-context-executor.js","sourceRoot":"","sources":["..\\src\\node-db-context-executor.ts"],"names":[],"mappings":"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"}
@@ -1,102 +1,102 @@
1
1
  import type { EventEmitter } from "@simplysm/core-common";
2
2
  import type { ColumnMeta, Dialect, IsolationLevel } from "@simplysm/orm-common";
3
3
  /**
4
- * DB connection establishment timeout (10 seconds)
4
+ * DB 연결 수립 타임아웃 (10)
5
5
  */
6
6
  export declare const DB_CONN_CONNECT_TIMEOUT: number;
7
7
  /**
8
- * DB query default timeout (10 minutes)
8
+ * DB 쿼리 기본 타임아웃 (10)
9
9
  */
10
10
  export declare const DB_CONN_DEFAULT_TIMEOUT: number;
11
11
  /**
12
- * DB connection error messages
12
+ * DB 연결 오류 메시지
13
13
  */
14
14
  export declare const DB_CONN_ERRORS: {
15
- readonly NOT_CONNECTED: "'Connection' is not connected.";
16
- readonly ALREADY_CONNECTED: "'Connection' is already connected.";
15
+ readonly NOT_CONNECTED: "'Connection' 연결되어 있지 않습니다.";
16
+ readonly ALREADY_CONNECTED: "'Connection' 이미 연결되어 있습니다.";
17
17
  };
18
18
  /**
19
- * Low-level DB connection interface
19
+ * 저수준 DB 연결 인터페이스
20
20
  *
21
- * Implementations for each DBMS implement this interface.
22
- * - {@link MysqlDbConn} - MySQL connection
23
- * - {@link MssqlDbConn} - MSSQL connection
24
- * - {@link PostgresqlDbConn} - PostgreSQL connection
21
+ * DBMS 구현체가 인터페이스를 구현한다.
22
+ * - {@link MysqlDbConn} - MySQL 연결
23
+ * - {@link MssqlDbConn} - MSSQL 연결
24
+ * - {@link PostgresqlDbConn} - PostgreSQL 연결
25
25
  *
26
26
  * @remarks
27
- * Inherits from EventEmitter and emits 'close' events.
27
+ * EventEmitter 상속하며 'close' 이벤트를 발생시킨다.
28
28
  */
29
29
  export interface DbConn extends EventEmitter<{
30
30
  close: void;
31
31
  }> {
32
32
  /**
33
- * Connection configuration
33
+ * 연결 설정
34
34
  */
35
35
  config: DbConnConfig;
36
36
  /**
37
- * Whether connected
37
+ * 연결 여부
38
38
  */
39
39
  isConnected: boolean;
40
40
  /**
41
- * Whether transaction is in progress
41
+ * 트랜잭션 진행 여부
42
42
  */
43
43
  isInTransaction: boolean;
44
44
  /**
45
- * Establish DB connection
45
+ * DB 연결을 수립한다
46
46
  */
47
47
  connect(): Promise<void>;
48
48
  /**
49
- * Close DB connection
49
+ * DB 연결을 종료한다
50
50
  */
51
51
  close(): Promise<void>;
52
52
  /**
53
- * Begin transaction
53
+ * 트랜잭션을 시작한다
54
54
  *
55
- * @param isolationLevel - Isolation level (optional)
55
+ * @param isolationLevel - 격리 수준 (선택사항)
56
56
  */
57
57
  beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
58
58
  /**
59
- * Commit transaction
59
+ * 트랜잭션을 커밋한다
60
60
  */
61
61
  commitTransaction(): Promise<void>;
62
62
  /**
63
- * Rollback transaction
63
+ * 트랜잭션을 롤백한다
64
64
  */
65
65
  rollbackTransaction(): Promise<void>;
66
66
  /**
67
- * Execute SQL query array
67
+ * SQL 쿼리 배열을 실행한다
68
68
  *
69
- * @param queries - SQL string array to execute
70
- * @returns Array of result arrays for each query
69
+ * @param queries - 실행할 SQL 문자열 배열
70
+ * @returns 쿼리의 결과 배열
71
71
  */
72
72
  execute(queries: string[]): Promise<Record<string, unknown>[][]>;
73
73
  /**
74
- * Execute parameterized query
74
+ * 파라미터화된 쿼리를 실행한다
75
75
  *
76
- * @param query - SQL query string
77
- * @param params - Binding parameters (optional)
78
- * @returns Array of result arrays
76
+ * @param query - SQL 쿼리 문자열
77
+ * @param params - 바인딩 파라미터 (선택사항)
78
+ * @returns 결과 배열
79
79
  */
80
80
  executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
81
81
  /**
82
- * Bulk INSERT (using native bulk API)
82
+ * Bulk INSERT (네이티브 bulk API 사용)
83
83
  *
84
84
  * - MSSQL: tedious BulkLoad
85
- * - MySQL: LOAD DATA LOCAL INFILE (temporary file)
85
+ * - MySQL: LOAD DATA LOCAL INFILE (임시 파일)
86
86
  * - PostgreSQL: COPY FROM STDIN
87
87
  *
88
- * @param tableName - Table name (database.table or database.schema.table)
89
- * @param columnMetas - Column name → ColumnMeta mapping
90
- * @param records - Record array to insert
88
+ * @param tableName - 테이블 이름 (database.table 또는 database.schema.table)
89
+ * @param columnMetas - 컬럼 이름 → ColumnMeta 매핑
90
+ * @param records - 삽입할 레코드 배열
91
91
  */
92
92
  bulkInsert(tableName: string, columnMetas: Record<string, ColumnMeta>, records: Record<string, unknown>[]): Promise<void>;
93
93
  }
94
94
  /**
95
- * DB connection configuration type (branching by dialect)
95
+ * DB 연결 설정 타입 (dialect별 분기)
96
96
  */
97
97
  export type DbConnConfig = MysqlDbConnConfig | MssqlDbConnConfig | PostgresqlDbConnConfig;
98
98
  /**
99
- * MySQL connection configuration
99
+ * MySQL 연결 설정
100
100
  */
101
101
  export interface MysqlDbConnConfig {
102
102
  dialect: "mysql";
@@ -108,7 +108,7 @@ export interface MysqlDbConnConfig {
108
108
  defaultIsolationLevel?: IsolationLevel;
109
109
  }
110
110
  /**
111
- * MSSQL connection configuration
111
+ * MSSQL 연결 설정
112
112
  */
113
113
  export interface MssqlDbConnConfig {
114
114
  dialect: "mssql" | "mssql-azure";
@@ -121,7 +121,7 @@ export interface MssqlDbConnConfig {
121
121
  defaultIsolationLevel?: IsolationLevel;
122
122
  }
123
123
  /**
124
- * PostgreSQL connection configuration
124
+ * PostgreSQL 연결 설정
125
125
  */
126
126
  export interface PostgresqlDbConnConfig {
127
127
  dialect: "postgresql";
@@ -134,7 +134,7 @@ export interface PostgresqlDbConnConfig {
134
134
  defaultIsolationLevel?: IsolationLevel;
135
135
  }
136
136
  /**
137
- * Extract Dialect from DbConnConfig
137
+ * DbConnConfig에서 Dialect 추출한다
138
138
  */
139
139
  export declare function getDialectFromConfig(config: DbConnConfig): Dialect;
140
140
  //# sourceMappingURL=db-conn.d.ts.map