@simplysm/orm-node 13.0.69 → 13.0.71

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.
@@ -3,10 +3,10 @@ import type { Pool } from "generic-pool";
3
3
  import type { ColumnMeta, IsolationLevel } from "@simplysm/orm-common";
4
4
  import { type DbConn, type DbConnConfig } from "./types/db-conn";
5
5
  /**
6
- * 커넥션 풀에서 관리되는 DB 연결 래퍼
6
+ * DB connection wrapper managed by connection pool
7
7
  *
8
- * generic-pool 라이브러리를 사용하여 커넥션 풀링을 지원한다.
9
- * 실제 물리 연결은 풀에서 획득하고 반환한다.
8
+ * Supports connection pooling using the generic-pool library.
9
+ * Acquires and returns actual physical connections from/to the pool.
10
10
  */
11
11
  export declare class PooledDbConn extends EventEmitter<{
12
12
  close: void;
@@ -20,59 +20,59 @@ export declare class PooledDbConn extends EventEmitter<{
20
20
  get isConnected(): boolean;
21
21
  get isInTransaction(): boolean;
22
22
  /**
23
- * 풀에서 DB 연결을 획득한다.
23
+ * Acquire DB connection from pool
24
24
  *
25
- * @throws {SdError} 이미 연결된 상태일 때
25
+ * @throws {SdError} When already connected
26
26
  */
27
27
  connect(): Promise<void>;
28
28
  /**
29
- * 풀에 DB 연결을 반환한다. (실제 연결을 종료하지 않음)
29
+ * Return DB connection to pool (does not terminate actual connection)
30
30
  */
31
31
  close(): Promise<void>;
32
32
  private readonly _onRawConnClose;
33
33
  /**
34
- * 트랜잭션 시작
34
+ * Begin transaction
35
35
  *
36
- * @param isolationLevel - 트랜잭션 격리 수준
37
- * @throws {SdError} 연결이 획득되지 않은 상태일
36
+ * @param isolationLevel - Transaction isolation level
37
+ * @throws {SdError} When connection is not acquired
38
38
  */
39
39
  beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
40
40
  /**
41
- * 트랜잭션 커밋
41
+ * Commit transaction
42
42
  *
43
- * @throws {SdError} 연결이 획득되지 않은 상태일
43
+ * @throws {SdError} When connection is not acquired
44
44
  */
45
45
  commitTransaction(): Promise<void>;
46
46
  /**
47
- * 트랜잭션 롤백
47
+ * Rollback transaction
48
48
  *
49
- * @throws {SdError} 연결이 획득되지 않은 상태일
49
+ * @throws {SdError} When connection is not acquired
50
50
  */
51
51
  rollbackTransaction(): Promise<void>;
52
52
  /**
53
- * SQL 쿼리 실행
53
+ * Execute SQL query
54
54
  *
55
- * @param queries - 실행할 SQL 쿼리 배열
56
- * @returns 쿼리의 결과 배열
57
- * @throws {SdError} 연결이 획득되지 않은 상태일
55
+ * @param queries - SQL query array to execute
56
+ * @returns Result array for each query
57
+ * @throws {SdError} When connection is not acquired
58
58
  */
59
59
  execute(queries: string[]): Promise<Record<string, unknown>[][]>;
60
60
  /**
61
- * 파라미터화된 SQL 쿼리 실행
61
+ * Execute parameterized SQL query
62
62
  *
63
- * @param query - SQL 쿼리 문자열
64
- * @param params - 쿼리 파라미터 배열
65
- * @returns 쿼리 결과 배열
66
- * @throws {SdError} 연결이 획득되지 않은 상태일
63
+ * @param query - SQL query string
64
+ * @param params - Query parameter array
65
+ * @returns Query result array
66
+ * @throws {SdError} When connection is not acquired
67
67
  */
68
68
  executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
69
69
  /**
70
- * 대량 데이터 삽입 (네이티브 벌크 API 사용)
70
+ * Bulk insert data (using native bulk API)
71
71
  *
72
- * @param tableName - 대상 테이블명
73
- * @param columnMetas - 컬럼 메타데이터
74
- * @param records - 삽입할 레코드 배열
75
- * @throws {SdError} 연결이 획득되지 않은 상태일
72
+ * @param tableName - Target table name
73
+ * @param columnMetas - Column metadata
74
+ * @param records - Record array to insert
75
+ * @throws {SdError} When connection is not acquired
76
76
  */
77
77
  bulkInsert(tableName: string, columnMetas: Record<string, ColumnMeta>, records: Record<string, unknown>[]): Promise<void>;
78
78
  private _requireRawConn;
@@ -9,7 +9,7 @@ class PooledDbConn extends EventEmitter {
9
9
  this._initialConfig = _initialConfig;
10
10
  this._getLastCreateError = _getLastCreateError;
11
11
  }
12
- // 풀에서 빌려온 실제 물리 커넥션
12
+ // Actual physical connection borrowed from pool
13
13
  _rawConn;
14
14
  // [Property] config
15
15
  get config() {
@@ -24,9 +24,9 @@ class PooledDbConn extends EventEmitter {
24
24
  return this._rawConn?.isInTransaction ?? false;
25
25
  }
26
26
  /**
27
- * 풀에서 DB 연결을 획득한다.
27
+ * Acquire DB connection from pool
28
28
  *
29
- * @throws {SdError} 이미 연결된 상태일 때
29
+ * @throws {SdError} When already connected
30
30
  */
31
31
  async connect() {
32
32
  if (this._rawConn != null) {
@@ -39,13 +39,13 @@ class PooledDbConn extends EventEmitter {
39
39
  const cause = this._getLastCreateError?.() ?? (err instanceof Error ? err : void 0);
40
40
  throw new SdError(
41
41
  ...cause != null ? [cause] : [],
42
- `DB \uC5F0\uACB0 \uC2E4\uD328 [${dialect}://${host}:${port ?? ""}/${database ?? ""}]`
42
+ `DB connection failed [${dialect}://${host}:${port ?? ""}/${database ?? ""}]`
43
43
  );
44
44
  }
45
45
  this._rawConn.on("close", this._onRawConnClose);
46
46
  }
47
47
  /**
48
- * 풀에 DB 연결을 반환한다. (실제 연결을 종료하지 않음)
48
+ * Return DB connection to pool (does not terminate actual connection)
49
49
  */
50
50
  async close() {
51
51
  if (this._rawConn != null) {
@@ -53,7 +53,7 @@ class PooledDbConn extends EventEmitter {
53
53
  try {
54
54
  await this._rawConn.rollbackTransaction();
55
55
  } catch (err) {
56
- logger.warn("\uD480 \uBC18\uD658 \uC2DC \uB864\uBC31 \uC2E4\uD328", err instanceof Error ? err.message : String(err));
56
+ logger.warn("Rollback failed when returning to pool", err instanceof Error ? err.message : String(err));
57
57
  }
58
58
  }
59
59
  this._rawConn.off("close", this._onRawConnClose);
@@ -62,70 +62,70 @@ class PooledDbConn extends EventEmitter {
62
62
  this.emit("close");
63
63
  }
64
64
  }
65
- // 물리 연결이 끊겼을 처리 핸들러
65
+ // Handler for physical connection loss
66
66
  _onRawConnClose = () => {
67
67
  this._rawConn = void 0;
68
68
  this.emit("close");
69
69
  };
70
- // --- 아래는 위임(Delegation) 메소드 ---
70
+ // --- Below are delegation methods ---
71
71
  /**
72
- * 트랜잭션 시작
72
+ * Begin transaction
73
73
  *
74
- * @param isolationLevel - 트랜잭션 격리 수준
75
- * @throws {SdError} 연결이 획득되지 않은 상태일
74
+ * @param isolationLevel - Transaction isolation level
75
+ * @throws {SdError} When connection is not acquired
76
76
  */
77
77
  async beginTransaction(isolationLevel) {
78
78
  const conn = this._requireRawConn();
79
79
  await conn.beginTransaction(isolationLevel);
80
80
  }
81
81
  /**
82
- * 트랜잭션 커밋
82
+ * Commit transaction
83
83
  *
84
- * @throws {SdError} 연결이 획득되지 않은 상태일
84
+ * @throws {SdError} When connection is not acquired
85
85
  */
86
86
  async commitTransaction() {
87
87
  const conn = this._requireRawConn();
88
88
  await conn.commitTransaction();
89
89
  }
90
90
  /**
91
- * 트랜잭션 롤백
91
+ * Rollback transaction
92
92
  *
93
- * @throws {SdError} 연결이 획득되지 않은 상태일
93
+ * @throws {SdError} When connection is not acquired
94
94
  */
95
95
  async rollbackTransaction() {
96
96
  const conn = this._requireRawConn();
97
97
  await conn.rollbackTransaction();
98
98
  }
99
99
  /**
100
- * SQL 쿼리 실행
100
+ * Execute SQL query
101
101
  *
102
- * @param queries - 실행할 SQL 쿼리 배열
103
- * @returns 쿼리의 결과 배열
104
- * @throws {SdError} 연결이 획득되지 않은 상태일
102
+ * @param queries - SQL query array to execute
103
+ * @returns Result array for each query
104
+ * @throws {SdError} When connection is not acquired
105
105
  */
106
106
  async execute(queries) {
107
107
  const conn = this._requireRawConn();
108
108
  return conn.execute(queries);
109
109
  }
110
110
  /**
111
- * 파라미터화된 SQL 쿼리 실행
111
+ * Execute parameterized SQL query
112
112
  *
113
- * @param query - SQL 쿼리 문자열
114
- * @param params - 쿼리 파라미터 배열
115
- * @returns 쿼리 결과 배열
116
- * @throws {SdError} 연결이 획득되지 않은 상태일
113
+ * @param query - SQL query string
114
+ * @param params - Query parameter array
115
+ * @returns Query result array
116
+ * @throws {SdError} When connection is not acquired
117
117
  */
118
118
  async executeParametrized(query, params) {
119
119
  const conn = this._requireRawConn();
120
120
  return conn.executeParametrized(query, params);
121
121
  }
122
122
  /**
123
- * 대량 데이터 삽입 (네이티브 벌크 API 사용)
123
+ * Bulk insert data (using native bulk API)
124
124
  *
125
- * @param tableName - 대상 테이블명
126
- * @param columnMetas - 컬럼 메타데이터
127
- * @param records - 삽입할 레코드 배열
128
- * @throws {SdError} 연결이 획득되지 않은 상태일
125
+ * @param tableName - Target table name
126
+ * @param columnMetas - Column metadata
127
+ * @param records - Record array to insert
128
+ * @throws {SdError} When connection is not acquired
129
129
  */
130
130
  async bulkInsert(tableName, columnMetas, records) {
131
131
  const conn = this._requireRawConn();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/pooled-db-conn.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,122 +1,122 @@
1
1
  import type { EventEmitter } from "@simplysm/core-common";
2
2
  import type { ColumnMeta, Dialect, IsolationLevel } from "@simplysm/orm-common";
3
3
  /**
4
- * DB 연결 수립 타임아웃 (10)
4
+ * DB connection establishment timeout (10 seconds)
5
5
  */
6
6
  export declare const DB_CONN_CONNECT_TIMEOUT: number;
7
7
  /**
8
- * DB 쿼리 기본 타임아웃 (10)
8
+ * DB query default timeout (10 minutes)
9
9
  */
10
10
  export declare const DB_CONN_DEFAULT_TIMEOUT: number;
11
11
  /**
12
- * DB 연결 에러 메시지
12
+ * DB connection error messages
13
13
  */
14
14
  export declare const DB_CONN_ERRORS: {
15
- readonly NOT_CONNECTED: "'Connection' 연결되어있지 않습니다.";
16
- readonly ALREADY_CONNECTED: "이미 'Connection' 연결되어있습니다.";
15
+ readonly NOT_CONNECTED: "'Connection' is not connected.";
16
+ readonly ALREADY_CONNECTED: "'Connection' is already connected.";
17
17
  };
18
18
  /**
19
- * 저수준 DB 연결 인터페이스
19
+ * Low-level DB connection interface
20
20
  *
21
- * DBMS 구현체가 인터페이스를 구현합니다.
22
- * - {@link MysqlDbConn} - MySQL 연결
23
- * - {@link MssqlDbConn} - MSSQL 연결
24
- * - {@link PostgresqlDbConn} - PostgreSQL 연결
21
+ * Implementations for each DBMS implement this interface.
22
+ * - {@link MysqlDbConn} - MySQL connection
23
+ * - {@link MssqlDbConn} - MSSQL connection
24
+ * - {@link PostgresqlDbConn} - PostgreSQL connection
25
25
  *
26
26
  * @remarks
27
- * SdEventEmitter를 상속하여 'close' 이벤트를 발생시킵니다.
27
+ * Inherits from EventEmitter and emits 'close' events.
28
28
  */
29
29
  export interface DbConn extends EventEmitter<{
30
30
  close: void;
31
31
  }> {
32
32
  /**
33
- * 연결 설정
33
+ * Connection configuration
34
34
  */
35
35
  config: DbConnConfig;
36
36
  /**
37
- * 연결 여부
37
+ * Whether connected
38
38
  */
39
39
  isConnected: boolean;
40
40
  /**
41
- * 트랜잭션 진행 여부
41
+ * Whether transaction is in progress
42
42
  */
43
43
  isInTransaction: boolean;
44
44
  /**
45
- * DB 연결 수립
45
+ * Establish DB connection
46
46
  */
47
47
  connect(): Promise<void>;
48
48
  /**
49
- * DB 연결 종료
49
+ * Close DB connection
50
50
  */
51
51
  close(): Promise<void>;
52
52
  /**
53
- * 트랜잭션 시작
53
+ * Begin transaction
54
54
  *
55
- * @param isolationLevel - 격리 수준 (선택)
55
+ * @param isolationLevel - Isolation level (optional)
56
56
  */
57
57
  beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
58
58
  /**
59
- * 트랜잭션 커밋
59
+ * Commit transaction
60
60
  */
61
61
  commitTransaction(): Promise<void>;
62
62
  /**
63
- * 트랜잭션 롤백
63
+ * Rollback transaction
64
64
  */
65
65
  rollbackTransaction(): Promise<void>;
66
66
  /**
67
- * SQL 쿼리 배열 실행
67
+ * Execute SQL query array
68
68
  *
69
- * @param queries - 실행할 SQL 문자열 배열
70
- * @returns 쿼리별 결과 배열의 배열
69
+ * @param queries - SQL string array to execute
70
+ * @returns Array of result arrays for each query
71
71
  */
72
72
  execute(queries: string[]): Promise<Record<string, unknown>[][]>;
73
73
  /**
74
- * 파라미터화된 쿼리 실행
74
+ * Execute parameterized query
75
75
  *
76
- * @param query - SQL 쿼리 문자열
77
- * @param params - 바인딩 파라미터 (선택)
78
- * @returns 결과 배열의 배열
76
+ * @param query - SQL query string
77
+ * @param params - Binding parameters (optional)
78
+ * @returns Array of result arrays
79
79
  */
80
80
  executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
81
81
  /**
82
- * 대량 INSERT (네이티브 벌크 API 사용)
82
+ * Bulk INSERT (using native bulk API)
83
83
  *
84
84
  * - MSSQL: tedious BulkLoad
85
- * - MySQL: LOAD DATA LOCAL INFILE (임시 파일)
85
+ * - MySQL: LOAD DATA LOCAL INFILE (temporary file)
86
86
  * - PostgreSQL: COPY FROM STDIN
87
87
  *
88
- * @param tableName - 테이블명 (database.table 또는 database.schema.table)
89
- * @param columnMetas - 컬럼명 → ColumnMeta 매핑
90
- * @param records - 삽입할 레코드 배열
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
91
91
  */
92
92
  bulkInsert(tableName: string, columnMetas: Record<string, ColumnMeta>, records: Record<string, unknown>[]): Promise<void>;
93
93
  }
94
94
  /**
95
- * 커넥션 설정
95
+ * Connection pool configuration
96
96
  *
97
97
  * @remarks
98
- * 값의 기본값:
99
- * - min: 1 (최소 연결 )
100
- * - max: 10 (최대 연결 )
101
- * - acquireTimeoutMillis: 30000 (연결 획득 타임아웃)
102
- * - idleTimeoutMillis: 30000 (유휴 연결 타임아웃)
98
+ * Default values for each setting:
99
+ * - min: 1 (minimum connection count)
100
+ * - max: 10 (maximum connection count)
101
+ * - acquireTimeoutMillis: 30000 (connection acquisition timeout)
102
+ * - idleTimeoutMillis: 30000 (idle connection timeout)
103
103
  */
104
104
  export interface DbPoolConfig {
105
- /** 최소 연결 (기본: 1) */
105
+ /** Minimum connection count (default: 1) */
106
106
  min?: number;
107
- /** 최대 연결 (기본: 10) */
107
+ /** Maximum connection count (default: 10) */
108
108
  max?: number;
109
- /** 연결 획득 타임아웃 (밀리초, 기본: 30000) */
109
+ /** Connection acquisition timeout (milliseconds, default: 30000) */
110
110
  acquireTimeoutMillis?: number;
111
- /** 유휴 연결 타임아웃 (밀리초, 기본: 30000) */
111
+ /** Idle connection timeout (milliseconds, default: 30000) */
112
112
  idleTimeoutMillis?: number;
113
113
  }
114
114
  /**
115
- * DB 연결 설정 타입 (dialect별 분기)
115
+ * DB connection configuration type (branching by dialect)
116
116
  */
117
117
  export type DbConnConfig = MysqlDbConnConfig | MssqlDbConnConfig | PostgresqlDbConnConfig;
118
118
  /**
119
- * MySQL 연결 설정
119
+ * MySQL connection configuration
120
120
  */
121
121
  export interface MysqlDbConnConfig {
122
122
  dialect: "mysql";
@@ -129,7 +129,7 @@ export interface MysqlDbConnConfig {
129
129
  pool?: DbPoolConfig;
130
130
  }
131
131
  /**
132
- * MSSQL 연결 설정
132
+ * MSSQL connection configuration
133
133
  */
134
134
  export interface MssqlDbConnConfig {
135
135
  dialect: "mssql" | "mssql-azure";
@@ -143,7 +143,7 @@ export interface MssqlDbConnConfig {
143
143
  pool?: DbPoolConfig;
144
144
  }
145
145
  /**
146
- * PostgreSQL 연결 설정
146
+ * PostgreSQL connection configuration
147
147
  */
148
148
  export interface PostgresqlDbConnConfig {
149
149
  dialect: "postgresql";
@@ -157,7 +157,7 @@ export interface PostgresqlDbConnConfig {
157
157
  pool?: DbPoolConfig;
158
158
  }
159
159
  /**
160
- * DbConnConfig에서 Dialect 추출
160
+ * Extract Dialect from DbConnConfig
161
161
  */
162
162
  export declare function getDialectFromConfig(config: DbConnConfig): Dialect;
163
163
  //# sourceMappingURL=db-conn.d.ts.map
@@ -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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"}
@@ -1,8 +1,8 @@
1
1
  const DB_CONN_CONNECT_TIMEOUT = 10 * 1e3;
2
2
  const DB_CONN_DEFAULT_TIMEOUT = 10 * 60 * 1e3;
3
3
  const DB_CONN_ERRORS = {
4
- NOT_CONNECTED: "'Connection'\uC774 \uC5F0\uACB0\uB418\uC5B4\uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
5
- ALREADY_CONNECTED: "\uC774\uBBF8 'Connection'\uC774 \uC5F0\uACB0\uB418\uC5B4\uC788\uC2B5\uB2C8\uB2E4."
4
+ NOT_CONNECTED: "'Connection' is not connected.",
5
+ ALREADY_CONNECTED: "'Connection' is already connected."
6
6
  };
7
7
  function getDialectFromConfig(config) {
8
8
  if (config.dialect === "mssql-azure") {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@simplysm/orm-node",
3
- "version": "13.0.69",
4
- "description": "심플리즘 패키지 - ORM 모듈 (node)",
5
- "author": "김석래",
3
+ "version": "13.0.71",
4
+ "description": "Simplysm package - ORM module (node)",
5
+ "author": "simplysm",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
@@ -20,8 +20,8 @@
20
20
  "dependencies": {
21
21
  "consola": "^3.4.2",
22
22
  "generic-pool": "^3.9.0",
23
- "@simplysm/core-common": "13.0.69",
24
- "@simplysm/orm-common": "13.0.69"
23
+ "@simplysm/core-common": "13.0.71",
24
+ "@simplysm/orm-common": "13.0.71"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/pg": "^8.16.0",
@@ -24,9 +24,9 @@ import type { DataType as TediousDataType } from "tedious/lib/data-type";
24
24
  const logger = consola.withTag("mssql-db-conn");
25
25
 
26
26
  /**
27
- * MSSQL 데이터베이스 연결 클래스
27
+ * MSSQL database connection class
28
28
  *
29
- * tedious 라이브러리를 사용하여 MSSQL/Azure SQL 연결을 관리합니다.
29
+ * Manages MSSQL/Azure SQL connections using the tedious library.
30
30
  */
31
31
  export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn {
32
32
  private readonly _timeout = DB_CONN_DEFAULT_TIMEOUT;
@@ -114,11 +114,11 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
114
114
 
115
115
  const conn = this._conn;
116
116
 
117
- // 진행 중인 요청 취소
117
+ // Cancel in-progress requests
118
118
  conn.cancel();
119
119
  await waitUntil(() => this._requests.length < 1, 30000, 100);
120
120
 
121
- // 연결 종료 대기
121
+ // Wait for connection termination
122
122
  await new Promise<void>((resolve) => {
123
123
  conn.on("end", () => {
124
124
  waitUntil(() => this._conn == null, 30000, 100)
@@ -213,7 +213,7 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
213
213
 
214
214
  const results: Record<string, unknown>[][] = [];
215
215
 
216
- logger.debug("쿼리 실행", { queryLength: query.length, params });
216
+ logger.debug("Query execution", { queryLength: query.length, params });
217
217
  await new Promise<void>((resolve, reject) => {
218
218
  let rejected = false;
219
219
  const queryRequest = new this._tedious.Request(query, (err) => {
@@ -223,17 +223,17 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
223
223
 
224
224
  const errRec = err as unknown as Record<string, unknown>;
225
225
  if (errRec["code"] === "ECANCEL") {
226
- reject(new SdError(err, "쿼리가 취소되었습니다."));
226
+ reject(new SdError(err, "Query was cancelled."));
227
227
  } else {
228
228
  const lineNumber = errRec["lineNumber"] as number | undefined;
229
229
  if (lineNumber != null && lineNumber > 0) {
230
230
  const splitQuery = query.split("\n");
231
231
  splitQuery[lineNumber - 1] = "==> " + splitQuery[lineNumber - 1];
232
232
  reject(
233
- new SdError(err, `쿼리 수행중 오류발생\n-- query\n${splitQuery.join("\n")}\n--`),
233
+ new SdError(err, `Error executing query\n-- query\n${splitQuery.join("\n")}\n--`),
234
234
  );
235
235
  } else {
236
- reject(new SdError(err, `쿼리 수행중 오류발생\n-- query\n${query}\n--`));
236
+ reject(new SdError(err, `Error executing query\n-- query\n${query}\n--`));
237
237
  }
238
238
  }
239
239
  }
@@ -267,7 +267,7 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
267
267
 
268
268
  rejected = true;
269
269
  this._requests = this._requests.filter((r) => r !== queryRequest);
270
- reject(new SdError(err, `쿼리 수행중 오류발생\n-- query\n${query}\n--`));
270
+ reject(new SdError(err, `Error executing query\n-- query\n${query}\n--`));
271
271
  })
272
272
  .on("requestCompleted", () => {
273
273
  this._startTimeout();
@@ -320,7 +320,7 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
320
320
  reject(
321
321
  new SdError(
322
322
  err,
323
- `Bulk Insert 오류발생\n${jsonStringify(tediousColumnDefs)}\n-- data\n${jsonStringify(records).substring(0, 10000)}...\n--`,
323
+ `Bulk Insert error\n${jsonStringify(tediousColumnDefs)}\n-- data\n${jsonStringify(records).substring(0, 10000)}...\n--`,
324
324
  ),
325
325
  );
326
326
  return;
@@ -334,12 +334,12 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
334
334
  bulkLoad.addColumn(tediousColumnDef.name, tediousColumnDef.type, tediousColumnDef.options);
335
335
  }
336
336
 
337
- // 레코드를 row 배열로 변환 (컬럼 순서 유지, 변환 포함)
337
+ // Convert records to row arrays (maintain column order, include value conversion)
338
338
  const rows = records.map((record) =>
339
339
  colNames.map((colName) => {
340
340
  const val = record[colName];
341
341
  if (val instanceof Uuid) return val.toString();
342
- // eslint-disable-next-line no-restricted-globals -- tedious 라이브러리가 Buffer를 요구함
342
+ // eslint-disable-next-line no-restricted-globals -- tedious library requires Buffer
343
343
  if (val instanceof Uint8Array) return Buffer.from(val);
344
344
  if (val instanceof DateTime) return val.date;
345
345
  if (val instanceof DateOnly) return val.date;
@@ -457,19 +457,19 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
457
457
  case "uuid":
458
458
  return { type: this._tedious.TYPES.UniqueIdentifier };
459
459
  default:
460
- throw new SdError(`지원하지 않는 DataType: ${JSON.stringify(dataType)}`);
460
+ throw new SdError(`Unsupported DataType: ${JSON.stringify(dataType)}`);
461
461
  }
462
462
  }
463
463
 
464
464
  /**
465
- * 값의 타입을 추론하여 Tedious 데이터 타입 반환
465
+ * Infer the type of a value and return Tedious data type
466
466
  *
467
- * @param value - 타입을 추론할 (null/undefined 전달 시 오류 발생)
468
- * @throws null/undefined 전달되면 오류 발생
467
+ * @param value - Value whose type is to be inferred (error if null/undefined is passed)
468
+ * @throws Error if null/undefined is passed
469
469
  */
470
470
  private _guessTediousType(value: unknown): TediousDataType {
471
471
  if (value == null) {
472
- throw new SdError("_guessTediousType: null/undefined 값은 지원하지 않습니다.");
472
+ throw new SdError("_guessTediousType: null/undefined values are not supported.");
473
473
  }
474
474
  if (typeof value === "string") {
475
475
  return this._tedious.TYPES.NVarChar;
@@ -484,7 +484,7 @@ export class MssqlDbConn extends EventEmitter<{ close: void }> implements DbConn
484
484
  if (value instanceof Uuid) return this._tedious.TYPES.UniqueIdentifier;
485
485
  if (value instanceof Uint8Array) return this._tedious.TYPES.VarBinary;
486
486
 
487
- throw new SdError(`알 없는 값 타입: ${typeof value}`);
487
+ throw new SdError(`Unknown value type: ${typeof value}`);
488
488
  }
489
489
  }
490
490