@simplysm/orm-common 13.0.28 → 13.0.29
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/dist/create-db-context.d.ts.map +1 -1
- package/dist/create-db-context.js +7 -2
- package/dist/create-db-context.js.map +1 -1
- package/dist/ddl/column-ddl.d.ts.map +1 -1
- package/dist/ddl/column-ddl.js.map +1 -1
- package/dist/ddl/initialize.d.ts.map +1 -1
- package/dist/ddl/initialize.js.map +1 -1
- package/dist/ddl/relation-ddl.d.ts.map +1 -1
- package/dist/ddl/relation-ddl.js.map +1 -1
- package/dist/ddl/schema-ddl.d.ts.map +1 -1
- package/dist/ddl/schema-ddl.js.map +1 -1
- package/dist/ddl/table-ddl.d.ts.map +1 -1
- package/dist/ddl/table-ddl.js.map +1 -1
- package/dist/define-db-context.d.ts.map +1 -1
- package/dist/define-db-context.js.map +1 -1
- package/dist/exec/executable.d.ts.map +1 -1
- package/dist/exec/executable.js.map +1 -1
- package/dist/exec/queryable.d.ts.map +1 -1
- package/dist/exec/queryable.js +19 -6
- package/dist/exec/queryable.js.map +1 -1
- package/dist/exec/search-parser.js.map +1 -1
- package/dist/expr/expr.d.ts.map +1 -1
- package/dist/expr/expr.js.map +1 -1
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +3 -1
- package/dist/query-builder/base/query-builder-base.js.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +3 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +9 -3
- package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +3 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +12 -4
- package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +3 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +21 -7
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
- package/dist/schema/factory/column-builder.d.ts.map +1 -1
- package/dist/schema/factory/column-builder.js.map +1 -1
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js.map +1 -1
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js.map +1 -1
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +3 -1
- package/dist/schema/table-builder.js.map +1 -1
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +3 -1
- package/dist/schema/view-builder.js.map +1 -1
- package/dist/types/db-context-def.d.ts.map +1 -1
- package/dist/types/db.d.ts.map +1 -1
- package/dist/utils/result-parser.js +3 -1
- package/dist/utils/result-parser.js.map +1 -1
- package/package.json +2 -2
- package/src/create-db-context.ts +53 -15
- package/src/ddl/column-ddl.ts +4 -1
- package/src/ddl/initialize.ts +13 -3
- package/src/ddl/relation-ddl.ts +4 -1
- package/src/ddl/schema-ddl.ts +8 -2
- package/src/ddl/table-ddl.ts +12 -3
- package/src/define-db-context.ts +3 -1
- package/src/exec/executable.ts +4 -1
- package/src/exec/queryable.ts +91 -26
- package/src/exec/search-parser.ts +5 -1
- package/src/expr/expr.ts +56 -15
- package/src/query-builder/base/query-builder-base.ts +3 -1
- package/src/query-builder/mssql/mssql-expr-renderer.ts +6 -2
- package/src/query-builder/mssql/mssql-query-builder.ts +15 -5
- package/src/query-builder/mysql/mysql-expr-renderer.ts +6 -2
- package/src/query-builder/mysql/mysql-query-builder.ts +19 -6
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +6 -2
- package/src/query-builder/postgresql/postgresql-query-builder.ts +35 -13
- package/src/schema/factory/column-builder.ts +16 -5
- package/src/schema/factory/relation-builder.ts +14 -4
- package/src/schema/procedure-builder.ts +4 -1
- package/src/schema/table-builder.ts +14 -3
- package/src/schema/view-builder.ts +5 -1
- package/src/types/db-context-def.ts +37 -8
- package/src/types/db.ts +9 -2
- package/src/utils/result-parser.ts +10 -3
|
@@ -20,8 +20,13 @@ export interface DbContextBase {
|
|
|
20
20
|
readonly schema: string | undefined;
|
|
21
21
|
getNextAlias(): string;
|
|
22
22
|
resetAliasCounter(): void;
|
|
23
|
-
executeDefs<T = DataRecord>(
|
|
24
|
-
|
|
23
|
+
executeDefs<T = DataRecord>(
|
|
24
|
+
defs: QueryDef[],
|
|
25
|
+
resultMetas?: (ResultMeta | undefined)[],
|
|
26
|
+
): Promise<T[][]>;
|
|
27
|
+
getQueryDefObjectName(
|
|
28
|
+
tableOrView: TableBuilder<any, any> | ViewBuilder<any, any, any>,
|
|
29
|
+
): QueryDefObjectName;
|
|
25
30
|
switchFk(table: QueryDefObjectName, switch_: "on" | "off"): Promise<void>;
|
|
26
31
|
}
|
|
27
32
|
|
|
@@ -92,13 +97,25 @@ export interface DbContextDdlMethods {
|
|
|
92
97
|
dropView(view: QueryDefObjectName): Promise<void>;
|
|
93
98
|
createProc(procedure: ProcedureBuilder<any, any>): Promise<void>;
|
|
94
99
|
dropProc(procedure: QueryDefObjectName): Promise<void>;
|
|
95
|
-
addColumn(
|
|
100
|
+
addColumn(
|
|
101
|
+
table: QueryDefObjectName,
|
|
102
|
+
columnName: string,
|
|
103
|
+
column: ColumnBuilder<any, any>,
|
|
104
|
+
): Promise<void>;
|
|
96
105
|
dropColumn(table: QueryDefObjectName, column: string): Promise<void>;
|
|
97
|
-
modifyColumn(
|
|
106
|
+
modifyColumn(
|
|
107
|
+
table: QueryDefObjectName,
|
|
108
|
+
columnName: string,
|
|
109
|
+
column: ColumnBuilder<any, any>,
|
|
110
|
+
): Promise<void>;
|
|
98
111
|
renameColumn(table: QueryDefObjectName, column: string, newName: string): Promise<void>;
|
|
99
112
|
addPk(table: QueryDefObjectName, columns: string[]): Promise<void>;
|
|
100
113
|
dropPk(table: QueryDefObjectName): Promise<void>;
|
|
101
|
-
addFk(
|
|
114
|
+
addFk(
|
|
115
|
+
table: QueryDefObjectName,
|
|
116
|
+
relationName: string,
|
|
117
|
+
relationDef: ForeignKeyBuilder<any, any>,
|
|
118
|
+
): Promise<void>;
|
|
102
119
|
addIdx(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): Promise<void>;
|
|
103
120
|
dropFk(table: QueryDefObjectName, relationName: string): Promise<void>;
|
|
104
121
|
dropIdx(table: QueryDefObjectName, columns: string[]): Promise<void>;
|
|
@@ -117,13 +134,25 @@ export interface DbContextDdlMethods {
|
|
|
117
134
|
getRenameTableQueryDef(table: QueryDefObjectName, newName: string): QueryDef;
|
|
118
135
|
getDropViewQueryDef(view: QueryDefObjectName): QueryDef;
|
|
119
136
|
getDropProcQueryDef(procedure: QueryDefObjectName): QueryDef;
|
|
120
|
-
getAddColumnQueryDef(
|
|
137
|
+
getAddColumnQueryDef(
|
|
138
|
+
table: QueryDefObjectName,
|
|
139
|
+
columnName: string,
|
|
140
|
+
column: ColumnBuilder<any, any>,
|
|
141
|
+
): QueryDef;
|
|
121
142
|
getDropColumnQueryDef(table: QueryDefObjectName, column: string): QueryDef;
|
|
122
|
-
getModifyColumnQueryDef(
|
|
143
|
+
getModifyColumnQueryDef(
|
|
144
|
+
table: QueryDefObjectName,
|
|
145
|
+
columnName: string,
|
|
146
|
+
column: ColumnBuilder<any, any>,
|
|
147
|
+
): QueryDef;
|
|
123
148
|
getRenameColumnQueryDef(table: QueryDefObjectName, column: string, newName: string): QueryDef;
|
|
124
149
|
getAddPkQueryDef(table: QueryDefObjectName, columns: string[]): QueryDef;
|
|
125
150
|
getDropPkQueryDef(table: QueryDefObjectName): QueryDef;
|
|
126
|
-
getAddFkQueryDef(
|
|
151
|
+
getAddFkQueryDef(
|
|
152
|
+
table: QueryDefObjectName,
|
|
153
|
+
relationName: string,
|
|
154
|
+
relationDef: ForeignKeyBuilder<any, any>,
|
|
155
|
+
): QueryDef;
|
|
127
156
|
getAddIdxQueryDef(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): QueryDef;
|
|
128
157
|
getDropFkQueryDef(table: QueryDefObjectName, relationName: string): QueryDef;
|
|
129
158
|
getDropIdxQueryDef(table: QueryDefObjectName, columns: string[]): QueryDef;
|
package/src/types/db.ts
CHANGED
|
@@ -56,7 +56,11 @@ export interface QueryBuildResult {
|
|
|
56
56
|
* - `REPEATABLE_READ`: 트랜잭션 내 동일 쿼리 동일 결과 보장
|
|
57
57
|
* - `SERIALIZABLE`: 완전 직렬화 (가장 엄격)
|
|
58
58
|
*/
|
|
59
|
-
export type IsolationLevel =
|
|
59
|
+
export type IsolationLevel =
|
|
60
|
+
| "READ_UNCOMMITTED"
|
|
61
|
+
| "READ_COMMITTED"
|
|
62
|
+
| "REPEATABLE_READ"
|
|
63
|
+
| "SERIALIZABLE";
|
|
60
64
|
|
|
61
65
|
// ============================================
|
|
62
66
|
// DataRecord - 결과 데이터 타입 (재귀적, 중첩 허용)
|
|
@@ -144,7 +148,10 @@ export interface DbContextExecutor {
|
|
|
144
148
|
* @param resultMetas - 결과 변환을 위한 메타데이터 (선택)
|
|
145
149
|
* @returns 각 QueryDef별 결과 배열의 배열
|
|
146
150
|
*/
|
|
147
|
-
executeDefs<T = DataRecord>(
|
|
151
|
+
executeDefs<T = DataRecord>(
|
|
152
|
+
defs: QueryDef[],
|
|
153
|
+
resultMetas?: (ResultMeta | undefined)[],
|
|
154
|
+
): Promise<T[][]>;
|
|
148
155
|
}
|
|
149
156
|
|
|
150
157
|
/**
|
|
@@ -273,7 +273,9 @@ function groupRecordsRecursively(
|
|
|
273
273
|
return !key.includes(".");
|
|
274
274
|
} else {
|
|
275
275
|
// 하위 레벨: 현재 경로 + "." + 키
|
|
276
|
-
return
|
|
276
|
+
return (
|
|
277
|
+
key.startsWith(currentPath + ".") && key.slice(currentPath.length + 1).indexOf(".") === -1
|
|
278
|
+
);
|
|
277
279
|
}
|
|
278
280
|
});
|
|
279
281
|
|
|
@@ -375,7 +377,10 @@ function groupRecordsRecursively(
|
|
|
375
377
|
/**
|
|
376
378
|
* 레코드에서 JOIN 키를 제외한 그룹 키 추출
|
|
377
379
|
*/
|
|
378
|
-
function extractGroupKey(
|
|
380
|
+
function extractGroupKey(
|
|
381
|
+
record: Record<string, unknown>,
|
|
382
|
+
joinKeys: string[],
|
|
383
|
+
): Record<string, unknown> {
|
|
379
384
|
const result: Record<string, unknown> = {};
|
|
380
385
|
for (const [key, value] of Object.entries(record)) {
|
|
381
386
|
// JOIN 키가 아닌 것만 포함
|
|
@@ -433,7 +438,9 @@ function mergeJoinData(
|
|
|
433
438
|
}
|
|
434
439
|
} else {
|
|
435
440
|
// hashSet이 없으면 폴백 (기존 방식)
|
|
436
|
-
const isDuplicate = existingJoinData.some((item) =>
|
|
441
|
+
const isDuplicate = existingJoinData.some((item) =>
|
|
442
|
+
objEqual(item as Record<string, unknown>, newJoinData),
|
|
443
|
+
);
|
|
437
444
|
if (!isDuplicate) {
|
|
438
445
|
existingJoinData.push(newJoinData);
|
|
439
446
|
}
|