@simplysm/orm-common 13.0.100 → 14.0.4
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 +90 -147
- package/dist/create-db-context.d.ts +10 -10
- package/dist/create-db-context.js +312 -276
- package/dist/create-db-context.js.map +1 -6
- package/dist/ddl/column-ddl.d.ts +4 -4
- package/dist/ddl/column-ddl.js +41 -35
- package/dist/ddl/column-ddl.js.map +1 -6
- package/dist/ddl/initialize.d.ts +17 -17
- package/dist/ddl/initialize.js +200 -142
- package/dist/ddl/initialize.js.map +1 -6
- package/dist/ddl/relation-ddl.d.ts +6 -6
- package/dist/ddl/relation-ddl.js +55 -48
- package/dist/ddl/relation-ddl.js.map +1 -6
- package/dist/ddl/schema-ddl.d.ts +4 -4
- package/dist/ddl/schema-ddl.js +21 -15
- package/dist/ddl/schema-ddl.js.map +1 -6
- package/dist/ddl/table-ddl.d.ts +20 -20
- package/dist/ddl/table-ddl.js +139 -93
- package/dist/ddl/table-ddl.js.map +1 -6
- package/dist/define-db-context.js +10 -13
- package/dist/define-db-context.js.map +1 -6
- package/dist/errors/db-transaction-error.d.ts +15 -15
- package/dist/errors/db-transaction-error.d.ts.map +1 -1
- package/dist/errors/db-transaction-error.js +53 -19
- package/dist/errors/db-transaction-error.js.map +1 -6
- package/dist/exec/executable.d.ts +23 -23
- package/dist/exec/executable.js +94 -40
- package/dist/exec/executable.js.map +1 -6
- package/dist/exec/queryable.d.ts +97 -97
- package/dist/exec/queryable.js +1310 -1204
- package/dist/exec/queryable.js.map +1 -6
- package/dist/exec/search-parser.d.ts +31 -31
- package/dist/exec/search-parser.d.ts.map +1 -1
- package/dist/exec/search-parser.js +158 -59
- package/dist/exec/search-parser.js.map +1 -6
- package/dist/expr/expr-unit.d.ts +4 -4
- package/dist/expr/expr-unit.js +24 -18
- package/dist/expr/expr-unit.js.map +1 -6
- package/dist/expr/expr.d.ts +108 -108
- package/dist/expr/expr.js +1872 -1844
- package/dist/expr/expr.js.map +1 -6
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -6
- package/dist/models/system-migration.js +7 -7
- package/dist/models/system-migration.js.map +1 -6
- package/dist/query-builder/base/expr-renderer-base.d.ts +10 -10
- package/dist/query-builder/base/expr-renderer-base.js +27 -21
- package/dist/query-builder/base/expr-renderer-base.js.map +1 -6
- package/dist/query-builder/base/query-builder-base.d.ts +21 -21
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +90 -80
- package/dist/query-builder/base/query-builder-base.js.map +1 -6
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +5 -5
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +447 -420
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -6
- package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +483 -443
- package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -6
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +5 -5
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +451 -419
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -6
- package/dist/query-builder/mysql/mysql-query-builder.d.ts +10 -10
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +570 -479
- package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -6
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +5 -5
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +449 -422
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -6
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +8 -8
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +511 -460
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -6
- package/dist/query-builder/query-builder.d.ts +1 -1
- package/dist/query-builder/query-builder.js +13 -13
- package/dist/query-builder/query-builder.js.map +1 -6
- package/dist/schema/factory/column-builder.d.ts +84 -84
- package/dist/schema/factory/column-builder.js +248 -185
- package/dist/schema/factory/column-builder.js.map +1 -6
- package/dist/schema/factory/index-builder.d.ts +38 -38
- package/dist/schema/factory/index-builder.js +144 -85
- package/dist/schema/factory/index-builder.js.map +1 -6
- package/dist/schema/factory/relation-builder.d.ts +99 -99
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js +274 -136
- package/dist/schema/factory/relation-builder.js.map +1 -6
- package/dist/schema/procedure-builder.d.ts +51 -51
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js +205 -131
- package/dist/schema/procedure-builder.js.map +1 -6
- package/dist/schema/table-builder.d.ts +55 -55
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +274 -205
- package/dist/schema/table-builder.js.map +1 -6
- package/dist/schema/view-builder.d.ts +44 -44
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +189 -116
- package/dist/schema/view-builder.js.map +1 -6
- package/dist/types/column.d.ts +21 -21
- package/dist/types/column.js +60 -30
- package/dist/types/column.js.map +1 -6
- package/dist/types/db-context-def.d.ts +9 -9
- package/dist/types/db-context-def.js +2 -1
- package/dist/types/db-context-def.js.map +1 -6
- package/dist/types/db.d.ts +47 -47
- package/dist/types/db.js +15 -5
- package/dist/types/db.js.map +1 -6
- package/dist/types/expr.d.ts +81 -81
- package/dist/types/expr.d.ts.map +1 -1
- package/dist/types/expr.js +3 -1
- package/dist/types/expr.js.map +1 -6
- package/dist/types/query-def.d.ts +46 -46
- package/dist/types/query-def.d.ts.map +1 -1
- package/dist/types/query-def.js +31 -24
- package/dist/types/query-def.js.map +1 -6
- package/dist/utils/result-parser.d.ts +11 -11
- package/dist/utils/result-parser.js +362 -221
- package/dist/utils/result-parser.js.map +1 -6
- package/docs/core.md +117 -145
- package/docs/expression.md +186 -203
- package/docs/query-builder.md +75 -42
- package/docs/queryable.md +189 -151
- package/docs/schema-builders.md +172 -283
- package/docs/types.md +229 -173
- package/package.json +7 -5
- package/src/create-db-context.ts +31 -31
- package/src/ddl/column-ddl.ts +4 -4
- package/src/ddl/initialize.ts +38 -38
- package/src/ddl/relation-ddl.ts +6 -6
- package/src/ddl/schema-ddl.ts +4 -4
- package/src/ddl/table-ddl.ts +24 -24
- package/src/errors/db-transaction-error.ts +13 -13
- package/src/exec/executable.ts +25 -25
- package/src/exec/queryable.ts +152 -152
- package/src/exec/search-parser.ts +50 -50
- package/src/expr/expr-unit.ts +4 -4
- package/src/expr/expr.ts +118 -118
- package/src/index.ts +8 -8
- package/src/models/system-migration.ts +1 -1
- package/src/query-builder/base/expr-renderer-base.ts +21 -21
- package/src/query-builder/base/query-builder-base.ts +33 -33
- package/src/query-builder/mssql/mssql-expr-renderer.ts +28 -28
- package/src/query-builder/mssql/mssql-query-builder.ts +37 -37
- package/src/query-builder/mysql/mysql-expr-renderer.ts +29 -29
- package/src/query-builder/mysql/mysql-query-builder.ts +70 -70
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +22 -22
- package/src/query-builder/postgresql/postgresql-query-builder.ts +54 -54
- package/src/query-builder/query-builder.ts +1 -1
- package/src/schema/factory/column-builder.ts +86 -86
- package/src/schema/factory/index-builder.ts +38 -38
- package/src/schema/factory/relation-builder.ts +102 -102
- package/src/schema/procedure-builder.ts +52 -52
- package/src/schema/table-builder.ts +56 -56
- package/src/schema/view-builder.ts +47 -47
- package/src/types/column.ts +24 -24
- package/src/types/db-context-def.ts +15 -15
- package/src/types/db.ts +50 -50
- package/src/types/expr.ts +103 -103
- package/src/types/query-def.ts +50 -50
- package/src/utils/result-parser.ts +88 -88
- package/docs/utilities.md +0 -27
- package/tests/db-context/create-db-context.spec.ts +0 -193
- package/tests/db-context/define-db-context.spec.ts +0 -17
- package/tests/ddl/basic.expected.ts +0 -341
- package/tests/ddl/basic.spec.ts +0 -557
- package/tests/ddl/column-builder.expected.ts +0 -310
- package/tests/ddl/column-builder.spec.ts +0 -525
- package/tests/ddl/index-builder.expected.ts +0 -38
- package/tests/ddl/index-builder.spec.ts +0 -148
- package/tests/ddl/procedure-builder.expected.ts +0 -52
- package/tests/ddl/procedure-builder.spec.ts +0 -128
- package/tests/ddl/relation-builder.expected.ts +0 -36
- package/tests/ddl/relation-builder.spec.ts +0 -171
- package/tests/ddl/table-builder.expected.ts +0 -113
- package/tests/ddl/table-builder.spec.ts +0 -399
- package/tests/ddl/view-builder.expected.ts +0 -38
- package/tests/ddl/view-builder.spec.ts +0 -116
- package/tests/dml/delete.expected.ts +0 -96
- package/tests/dml/delete.spec.ts +0 -127
- package/tests/dml/insert.expected.ts +0 -192
- package/tests/dml/insert.spec.ts +0 -210
- package/tests/dml/update.expected.ts +0 -176
- package/tests/dml/update.spec.ts +0 -222
- package/tests/dml/upsert.expected.ts +0 -215
- package/tests/dml/upsert.spec.ts +0 -190
- package/tests/errors/queryable-errors.spec.ts +0 -126
- package/tests/escape.spec.ts +0 -59
- package/tests/examples/pivot.expected.ts +0 -211
- package/tests/examples/pivot.spec.ts +0 -200
- package/tests/examples/sampling.expected.ts +0 -69
- package/tests/examples/sampling.spec.ts +0 -42
- package/tests/examples/unpivot.expected.ts +0 -120
- package/tests/examples/unpivot.spec.ts +0 -161
- package/tests/exec/search-parser.spec.ts +0 -267
- package/tests/executable/basic.expected.ts +0 -18
- package/tests/executable/basic.spec.ts +0 -54
- package/tests/expr/comparison.expected.ts +0 -282
- package/tests/expr/comparison.spec.ts +0 -334
- package/tests/expr/conditional.expected.ts +0 -134
- package/tests/expr/conditional.spec.ts +0 -249
- package/tests/expr/date.expected.ts +0 -332
- package/tests/expr/date.spec.ts +0 -459
- package/tests/expr/math.expected.ts +0 -62
- package/tests/expr/math.spec.ts +0 -59
- package/tests/expr/string.expected.ts +0 -218
- package/tests/expr/string.spec.ts +0 -300
- package/tests/expr/utility.expected.ts +0 -147
- package/tests/expr/utility.spec.ts +0 -155
- package/tests/select/basic.expected.ts +0 -322
- package/tests/select/basic.spec.ts +0 -433
- package/tests/select/filter.expected.ts +0 -357
- package/tests/select/filter.spec.ts +0 -954
- package/tests/select/group.expected.ts +0 -169
- package/tests/select/group.spec.ts +0 -159
- package/tests/select/join.expected.ts +0 -582
- package/tests/select/join.spec.ts +0 -692
- package/tests/select/order.expected.ts +0 -150
- package/tests/select/order.spec.ts +0 -140
- package/tests/select/recursive-cte.expected.ts +0 -244
- package/tests/select/recursive-cte.spec.ts +0 -514
- package/tests/select/result-meta.spec.ts +0 -270
- package/tests/select/subquery.expected.ts +0 -363
- package/tests/select/subquery.spec.ts +0 -441
- package/tests/select/view.expected.ts +0 -155
- package/tests/select/view.spec.ts +0 -235
- package/tests/select/window.expected.ts +0 -345
- package/tests/select/window.spec.ts +0 -433
- package/tests/setup/MockExecutor.ts +0 -18
- package/tests/setup/TestDbContext.ts +0 -59
- package/tests/setup/models/Company.ts +0 -13
- package/tests/setup/models/Employee.ts +0 -10
- package/tests/setup/models/MonthlySales.ts +0 -11
- package/tests/setup/models/Post.ts +0 -16
- package/tests/setup/models/Sales.ts +0 -10
- package/tests/setup/models/User.ts +0 -19
- package/tests/setup/procedure/GetAllUsers.ts +0 -9
- package/tests/setup/procedure/GetUserById.ts +0 -12
- package/tests/setup/test-utils.ts +0 -72
- package/tests/setup/views/ActiveUsers.ts +0 -8
- package/tests/setup/views/UserSummary.ts +0 -11
- package/tests/types/nullable-queryable-record.spec.ts +0 -97
- package/tests/utils/result-parser-perf.spec.ts +0 -143
- package/tests/utils/result-parser.spec.ts +0 -667
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 트랜잭션 관련 에러 코드
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* DBMS별 네이티브 에러 코드를 추상화하여 DBMS 독립적인 에러 처리를 지원한다
|
|
5
5
|
*/
|
|
6
6
|
export enum DbErrorCode {
|
|
7
|
-
/**
|
|
7
|
+
/** 활성 트랜잭션 없음 (ROLLBACK 시 트랜잭션 없음) */
|
|
8
8
|
NO_ACTIVE_TRANSACTION = "NO_ACTIVE_TRANSACTION",
|
|
9
9
|
|
|
10
|
-
/**
|
|
10
|
+
/** 트랜잭션 이미 시작됨 */
|
|
11
11
|
TRANSACTION_ALREADY_STARTED = "TRANSACTION_ALREADY_STARTED",
|
|
12
12
|
|
|
13
|
-
/**
|
|
13
|
+
/** 데드락 발생 */
|
|
14
14
|
DEADLOCK = "DEADLOCK",
|
|
15
15
|
|
|
16
|
-
/**
|
|
16
|
+
/** 잠금 타임아웃 */
|
|
17
17
|
LOCK_TIMEOUT = "LOCK_TIMEOUT",
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* 데이터베이스 트랜잭션 에러
|
|
22
22
|
*
|
|
23
|
-
*
|
|
24
|
-
* DBMS
|
|
23
|
+
* DBMS별 네이티브 에러를 표준화된 에러 코드로 래핑하여
|
|
24
|
+
* DBMS 독립적인 에러 처리를 지원한다
|
|
25
25
|
*
|
|
26
26
|
* @example
|
|
27
27
|
* ```typescript
|
|
@@ -30,7 +30,7 @@ export enum DbErrorCode {
|
|
|
30
30
|
* } catch (err) {
|
|
31
31
|
* if (err instanceof DbTransactionError) {
|
|
32
32
|
* if (err.code === DbErrorCode.NO_ACTIVE_TRANSACTION) {
|
|
33
|
-
* //
|
|
33
|
+
* // 이미 롤백된 경우 무시
|
|
34
34
|
* return;
|
|
35
35
|
* }
|
|
36
36
|
* }
|
|
@@ -42,11 +42,11 @@ export class DbTransactionError extends Error {
|
|
|
42
42
|
override readonly name = "DbTransactionError";
|
|
43
43
|
|
|
44
44
|
constructor(
|
|
45
|
-
/**
|
|
45
|
+
/** 표준화된 에러 코드 */
|
|
46
46
|
public readonly code: DbErrorCode,
|
|
47
|
-
/**
|
|
47
|
+
/** 에러 메시지 */
|
|
48
48
|
message: string,
|
|
49
|
-
/**
|
|
49
|
+
/** 원본 DBMS 에러 (디버깅용) */
|
|
50
50
|
public readonly originalError?: unknown,
|
|
51
51
|
) {
|
|
52
52
|
super(message);
|
package/src/exec/executable.ts
CHANGED
|
@@ -5,22 +5,22 @@ import { ExprUnit } from "../expr/expr-unit";
|
|
|
5
5
|
import { expr } from "../expr/expr";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* 저장 프로시저 실행 래퍼 클래스
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* ProcedureBuilder로 정의된 프로시저를 실행하기 위한 클래스.
|
|
11
|
+
* DbContext에서 executable() 팩토리 함수를 통해 생성 및 사용된다.
|
|
12
12
|
*
|
|
13
|
-
* @template TParams -
|
|
14
|
-
* @template TReturns -
|
|
13
|
+
* @template TParams - 프로시저 파라미터 타입
|
|
14
|
+
* @template TReturns - 프로시저 반환 타입
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
17
|
* ```typescript
|
|
18
|
-
* //
|
|
18
|
+
* // 프로시저 실행
|
|
19
19
|
* const result = await db.getUserById().execute({ userId: 1n });
|
|
20
20
|
* ```
|
|
21
21
|
*
|
|
22
|
-
* @see {@link executable}
|
|
23
|
-
* @see {@link ProcedureBuilder}
|
|
22
|
+
* @see {@link executable} 팩토리 함수
|
|
23
|
+
* @see {@link ProcedureBuilder} 프로시저 정의
|
|
24
24
|
*/
|
|
25
25
|
export class Executable<TParams extends ColumnBuilderRecord, TReturns extends ColumnBuilderRecord> {
|
|
26
26
|
constructor(
|
|
@@ -29,12 +29,12 @@ export class Executable<TParams extends ColumnBuilderRecord, TReturns extends Co
|
|
|
29
29
|
) {}
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* 프로시저 실행 QueryDef 생성
|
|
33
33
|
*/
|
|
34
34
|
getExecProcQueryDef(params?: InferColumnExprs<TParams>) {
|
|
35
35
|
const meta = this._builder.meta;
|
|
36
36
|
if (params && !meta.params) {
|
|
37
|
-
throw new Error(`Procedure '${meta.name}'
|
|
37
|
+
throw new Error(`Procedure '${meta.name}'에 파라미터가 없습니다.`);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
return {
|
|
@@ -59,7 +59,7 @@ export class Executable<TParams extends ColumnBuilderRecord, TReturns extends Co
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* 프로시저 실행
|
|
63
63
|
*/
|
|
64
64
|
async execute(params: InferColumnExprs<TParams>): Promise<InferColumnExprs<TReturns>[][]> {
|
|
65
65
|
return this._db.executeDefs<InferColumnExprs<TReturns>>([this.getExecProcQueryDef(params)]);
|
|
@@ -67,41 +67,41 @@ export class Executable<TParams extends ColumnBuilderRecord, TReturns extends Co
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
// ============================================
|
|
70
|
-
// executable
|
|
70
|
+
// executable 함수
|
|
71
71
|
// ============================================
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* Executable 생성 팩토리 함수
|
|
75
75
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
76
|
+
* DbContext에 프로시저를 등록할 때 사용한다.
|
|
77
|
+
* ProcedureBuilder로 정의된 프로시저를 Executable로 래핑하여 반환한다.
|
|
78
78
|
*
|
|
79
|
-
* @template TParams -
|
|
80
|
-
* @template TReturns -
|
|
81
|
-
* @param db - DbContext
|
|
82
|
-
* @param builder - ProcedureBuilder
|
|
83
|
-
* @returns Executable
|
|
79
|
+
* @template TParams - 프로시저 파라미터 타입
|
|
80
|
+
* @template TReturns - 프로시저 반환 타입
|
|
81
|
+
* @param db - DbContext 인스턴스
|
|
82
|
+
* @param builder - ProcedureBuilder 인스턴스
|
|
83
|
+
* @returns Executable 팩토리 함수
|
|
84
84
|
*
|
|
85
85
|
* @example
|
|
86
86
|
* ```typescript
|
|
87
|
-
* //
|
|
87
|
+
* // 프로시저 정의
|
|
88
88
|
* const GetUserById = Procedure("GetUserById")
|
|
89
89
|
* .database("mydb")
|
|
90
90
|
* .params((c) => ({ userId: c.bigint() }))
|
|
91
91
|
* .returns((c) => ({ id: c.bigint(), name: c.varchar(100) }))
|
|
92
92
|
* .body("SELECT id, name FROM User WHERE id = userId");
|
|
93
93
|
*
|
|
94
|
-
* //
|
|
94
|
+
* // DbContext에 등록
|
|
95
95
|
* class MyDb extends DbContext {
|
|
96
96
|
* getUserById = executable(this, GetUserById);
|
|
97
97
|
* }
|
|
98
98
|
*
|
|
99
|
-
* //
|
|
99
|
+
* // 사용
|
|
100
100
|
* const result = await db.getUserById().execute({ userId: 1n });
|
|
101
101
|
* ```
|
|
102
102
|
*
|
|
103
|
-
* @see {@link Executable}
|
|
104
|
-
* @see {@link ProcedureBuilder}
|
|
103
|
+
* @see {@link Executable} 실행 클래스
|
|
104
|
+
* @see {@link ProcedureBuilder} 프로시저 정의
|
|
105
105
|
*/
|
|
106
106
|
export function executable<
|
|
107
107
|
TParams extends ColumnBuilderRecord,
|