@simplysm/orm-node 14.0.48 → 14.0.50

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/docs/types.md DELETED
@@ -1,173 +0,0 @@
1
- # Types
2
-
3
- ## `DbConn`
4
-
5
- 저수준 DB 연결 인터페이스. 각 DBMS 구현체(`MssqlDbConn`, `MysqlDbConn`, `PostgresqlDbConn`)가 이 인터페이스를 구현한다.
6
-
7
- ```typescript
8
- interface DbConn extends EventEmitter<{ close: void }> {
9
- config: DbConnConfig;
10
- isConnected: boolean;
11
- isInTransaction: boolean;
12
- connect(): Promise<void>;
13
- close(): Promise<void>;
14
- beginTransaction(isolationLevel?: IsolationLevel): Promise<void>;
15
- commitTransaction(): Promise<void>;
16
- rollbackTransaction(): Promise<void>;
17
- execute(queries: string[]): Promise<Record<string, unknown>[][]>;
18
- executeParametrized(query: string, params?: unknown[]): Promise<Record<string, unknown>[][]>;
19
- bulkInsert(
20
- tableName: string,
21
- columnMetas: Record<string, ColumnMeta>,
22
- records: Record<string, unknown>[],
23
- ): Promise<void>;
24
- }
25
- ```
26
-
27
- | Field | Type | Description |
28
- |-------|------|-------------|
29
- | `config` | `DbConnConfig` | 연결 설정 |
30
- | `isConnected` | `boolean` | 연결 여부 |
31
- | `isInTransaction` | `boolean` | 트랜잭션 진행 여부 |
32
- | `connect()` | `Promise<void>` | DB 연결을 수립한다 |
33
- | `close()` | `Promise<void>` | DB 연결을 종료한다 |
34
- | `beginTransaction(isolationLevel?)` | `Promise<void>` | 트랜잭션을 시작한다 |
35
- | `commitTransaction()` | `Promise<void>` | 트랜잭션을 커밋한다 |
36
- | `rollbackTransaction()` | `Promise<void>` | 트랜잭션을 롤백한다 |
37
- | `execute(queries)` | `Promise<Record<string, unknown>[][]>` | SQL 쿼리 배열을 실행한다 |
38
- | `executeParametrized(query, params?)` | `Promise<Record<string, unknown>[][]>` | 파라미터화된 쿼리를 실행한다 |
39
- | `bulkInsert(tableName, columnMetas, records)` | `Promise<void>` | 네이티브 bulk API를 사용하여 대량 삽입한다 |
40
-
41
- `EventEmitter<{ close: void }>`를 상속하므로 연결 종료 시 `'close'` 이벤트를 수신할 수 있다.
42
-
43
- ## `DbConnConfig`
44
-
45
- DB 연결 설정 discriminated union. `dialect` 필드로 구현체를 분기한다.
46
-
47
- ```typescript
48
- type DbConnConfig = MysqlDbConnConfig | MssqlDbConnConfig | PostgresqlDbConnConfig;
49
- ```
50
-
51
- ## `MysqlDbConnConfig`
52
-
53
- MySQL 연결 설정.
54
-
55
- ```typescript
56
- interface MysqlDbConnConfig {
57
- dialect: "mysql";
58
- host: string;
59
- port?: number;
60
- username: string;
61
- password: string;
62
- database?: string;
63
- defaultIsolationLevel?: IsolationLevel;
64
- }
65
- ```
66
-
67
- | Field | Type | Description |
68
- |-------|------|-------------|
69
- | `dialect` | `"mysql"` | Discriminant. 항상 `"mysql"` |
70
- | `host` | `string` | 호스트 주소 |
71
- | `port` | `number?` | 포트 (생략 시 mysql2 기본값 사용) |
72
- | `username` | `string` | 사용자 이름 |
73
- | `password` | `string` | 비밀번호 |
74
- | `database` | `string?` | 데이터베이스 이름 |
75
- | `defaultIsolationLevel` | `IsolationLevel?` | 기본 격리 수준 (미지정 시 `READ_UNCOMMITTED`) |
76
-
77
- ## `MssqlDbConnConfig`
78
-
79
- MSSQL/Azure SQL 연결 설정.
80
-
81
- ```typescript
82
- interface MssqlDbConnConfig {
83
- dialect: "mssql" | "mssql-azure";
84
- host: string;
85
- port?: number;
86
- username: string;
87
- password: string;
88
- database?: string;
89
- schema?: string;
90
- defaultIsolationLevel?: IsolationLevel;
91
- }
92
- ```
93
-
94
- | Field | Type | Description |
95
- |-------|------|-------------|
96
- | `dialect` | `"mssql" \| "mssql-azure"` | Discriminant. `"mssql-azure"`인 경우 암호화 연결(encrypt)을 사용한다 |
97
- | `host` | `string` | 호스트 주소 |
98
- | `port` | `number?` | 포트 |
99
- | `username` | `string` | 사용자 이름 |
100
- | `password` | `string` | 비밀번호 |
101
- | `database` | `string?` | 데이터베이스 이름 |
102
- | `schema` | `string?` | 스키마 이름 |
103
- | `defaultIsolationLevel` | `IsolationLevel?` | 기본 격리 수준 (미지정 시 `READ_UNCOMMITTED`) |
104
-
105
- ## `PostgresqlDbConnConfig`
106
-
107
- PostgreSQL 연결 설정.
108
-
109
- ```typescript
110
- interface PostgresqlDbConnConfig {
111
- dialect: "postgresql";
112
- host: string;
113
- port?: number;
114
- username: string;
115
- password: string;
116
- database?: string;
117
- schema?: string;
118
- defaultIsolationLevel?: IsolationLevel;
119
- }
120
- ```
121
-
122
- | Field | Type | Description |
123
- |-------|------|-------------|
124
- | `dialect` | `"postgresql"` | Discriminant. 항상 `"postgresql"` |
125
- | `host` | `string` | 호스트 주소 |
126
- | `port` | `number?` | 포트 (미지정 시 `5432`) |
127
- | `username` | `string` | 사용자 이름 |
128
- | `password` | `string` | 비밀번호 |
129
- | `database` | `string?` | 데이터베이스 이름 |
130
- | `schema` | `string?` | 스키마 이름 |
131
- | `defaultIsolationLevel` | `IsolationLevel?` | 기본 격리 수준 (미지정 시 `READ_UNCOMMITTED`) |
132
-
133
- ## `DB_CONN_CONNECT_TIMEOUT`
134
-
135
- DB 연결 수립 타임아웃 (10초).
136
-
137
- ```typescript
138
- const DB_CONN_CONNECT_TIMEOUT = 10 * 1000; // 10_000ms
139
- ```
140
-
141
- ## `DB_CONN_DEFAULT_TIMEOUT`
142
-
143
- DB 쿼리 기본 타임아웃 (10분). 유휴 연결 자동 종료 타이머는 이 값의 2배 후 `close()`를 호출한다.
144
-
145
- ```typescript
146
- const DB_CONN_DEFAULT_TIMEOUT = 10 * 60 * 1000; // 600_000ms
147
- ```
148
-
149
- ## `DB_CONN_ERRORS`
150
-
151
- DB 연결 관련 오류 메시지 상수.
152
-
153
- ```typescript
154
- const DB_CONN_ERRORS = {
155
- NOT_CONNECTED: "'Connection'이 연결되어 있지 않습니다.",
156
- ALREADY_CONNECTED: "'Connection'이 이미 연결되어 있습니다.",
157
- } as const;
158
- ```
159
-
160
- | Key | Value |
161
- |-----|-------|
162
- | `NOT_CONNECTED` | `"'Connection'이 연결되어 있지 않습니다."` |
163
- | `ALREADY_CONNECTED` | `"'Connection'이 이미 연결되어 있습니다."` |
164
-
165
- ## `getDialectFromConfig`
166
-
167
- `DbConnConfig`에서 정규화된 `Dialect`를 추출한다.
168
-
169
- ```typescript
170
- function getDialectFromConfig(config: DbConnConfig): Dialect;
171
- ```
172
-
173
- `"mssql-azure"` → `"mssql"`로 변환하고, 나머지(`"mysql"`, `"mssql"`, `"postgresql"`)는 `config.dialect`를 그대로 반환한다.