@simplysm/orm-common 14.0.100 → 14.0.102
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/db-context.d.ts +0 -17
- package/dist/db-context.d.ts.map +1 -1
- package/dist/db-context.js +0 -17
- package/dist/db-context.js.map +1 -1
- package/dist/errors/db-transaction-error.d.ts +0 -15
- package/dist/errors/db-transaction-error.d.ts.map +1 -1
- package/dist/errors/db-transaction-error.js +0 -15
- package/dist/errors/db-transaction-error.js.map +1 -1
- package/dist/exec/executable.d.ts +0 -24
- package/dist/exec/executable.d.ts.map +1 -1
- package/dist/exec/executable.js +0 -24
- package/dist/exec/executable.js.map +1 -1
- package/dist/exec/queryable.d.ts +0 -300
- package/dist/exec/queryable.d.ts.map +1 -1
- package/dist/exec/queryable.js +0 -213
- package/dist/exec/queryable.js.map +1 -1
- package/dist/expr/expr.d.ts +0 -689
- package/dist/expr/expr.d.ts.map +1 -1
- package/dist/expr/expr.js +0 -689
- package/dist/expr/expr.js.map +1 -1
- package/dist/schema/factory/column-builder.d.ts +0 -86
- package/dist/schema/factory/column-builder.d.ts.map +1 -1
- package/dist/schema/factory/column-builder.js +0 -74
- package/dist/schema/factory/column-builder.js.map +1 -1
- package/dist/schema/factory/index-builder.d.ts +0 -60
- package/dist/schema/factory/index-builder.d.ts.map +1 -1
- package/dist/schema/factory/index-builder.js +0 -60
- package/dist/schema/factory/index-builder.js.map +1 -1
- package/dist/schema/factory/relation-builder.d.ts +0 -83
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js +0 -77
- package/dist/schema/factory/relation-builder.js.map +1 -1
- package/dist/schema/procedure-builder.d.ts +0 -87
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js +0 -87
- package/dist/schema/procedure-builder.js.map +1 -1
- package/dist/schema/table-builder.d.ts +0 -127
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +0 -127
- package/dist/schema/table-builder.js.map +1 -1
- package/dist/schema/view-builder.d.ts +0 -76
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +0 -76
- package/dist/schema/view-builder.js.map +1 -1
- package/dist/types/column.d.ts +0 -38
- package/dist/types/column.d.ts.map +1 -1
- package/dist/types/column.js +0 -13
- package/dist/types/column.js.map +1 -1
- package/dist/types/db.d.ts +0 -54
- package/dist/types/db.d.ts.map +1 -1
- package/dist/types/db.js +0 -8
- package/dist/types/db.js.map +1 -1
- package/dist/utils/result-parser.d.ts +0 -21
- package/dist/utils/result-parser.d.ts.map +1 -1
- package/dist/utils/result-parser.js +0 -24
- package/dist/utils/result-parser.js.map +1 -1
- package/package.json +2 -2
- package/src/db-context.ts +0 -17
- package/src/errors/db-transaction-error.ts +0 -15
- package/src/exec/executable.ts +0 -24
- package/src/exec/queryable.ts +0 -300
- package/src/expr/expr.ts +0 -689
- package/src/schema/factory/column-builder.ts +0 -86
- package/src/schema/factory/index-builder.ts +0 -60
- package/src/schema/factory/relation-builder.ts +0 -83
- package/src/schema/procedure-builder.ts +0 -87
- package/src/schema/table-builder.ts +0 -127
- package/src/schema/view-builder.ts +0 -76
- package/src/types/column.ts +0 -38
- package/src/types/db.ts +0 -54
- package/src/utils/result-parser.ts +0 -24
|
@@ -13,20 +13,6 @@ import type { ViewBuilder } from "../view-builder";
|
|
|
13
13
|
* @template TOwner - 소유 Table builder 타입
|
|
14
14
|
* @template TTargetFn - 대상 Table builder factory 타입
|
|
15
15
|
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const Post = Table("Post")
|
|
19
|
-
* .columns((c) => ({
|
|
20
|
-
* id: c.bigint().autoIncrement(),
|
|
21
|
-
* authorId: c.bigint(), // FK column
|
|
22
|
-
* }))
|
|
23
|
-
* .primaryKey("id")
|
|
24
|
-
* .relations((r) => ({
|
|
25
|
-
* // N:1 relationship - Post → User
|
|
26
|
-
* author: r.foreignKey(["authorId"], () => User, { description: "작성자" }),
|
|
27
|
-
* }));
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
16
|
* @see {@link ForeignKeyTargetBuilder} 역참조 builder
|
|
31
17
|
* @see {@link RelationKeyBuilder} DB FK 없는 관계
|
|
32
18
|
*/
|
|
@@ -63,26 +49,6 @@ export declare class ForeignKeyBuilder<TOwner extends TableBuilder<any, any, any
|
|
|
63
49
|
* @template TTargetTableFn - 참조하는 Table builder factory 타입
|
|
64
50
|
* @template TIsSingle - 단일 객체 여부
|
|
65
51
|
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```typescript
|
|
68
|
-
* const User = Table("User")
|
|
69
|
-
* .columns((c) => ({
|
|
70
|
-
* id: c.bigint().autoIncrement(),
|
|
71
|
-
* name: c.varchar(100),
|
|
72
|
-
* }))
|
|
73
|
-
* .primaryKey("id")
|
|
74
|
-
* .relations((r) => ({
|
|
75
|
-
* // 1:N relationship - User ← Post.author
|
|
76
|
-
* posts: r.foreignKeyTarget(() => Post, "author"),
|
|
77
|
-
*
|
|
78
|
-
* // 1:1 relation (single object)
|
|
79
|
-
* profile: r.foreignKeyTarget(() => Profile, "user", { single: true }),
|
|
80
|
-
*
|
|
81
|
-
* // with description
|
|
82
|
-
* comments: r.foreignKeyTarget(() => Comment, "user", { description: "댓글목록" }),
|
|
83
|
-
* }));
|
|
84
|
-
* ```
|
|
85
|
-
*
|
|
86
52
|
* @see {@link ForeignKeyBuilder} FK builder
|
|
87
53
|
*/
|
|
88
54
|
export declare class ForeignKeyTargetBuilder<TTargetTableFn extends () => TableBuilder<any, any, any>, TIsSingle extends boolean> {
|
|
@@ -117,17 +83,6 @@ export declare class ForeignKeyTargetBuilder<TTargetTableFn extends () => TableB
|
|
|
117
83
|
* @template TOwner - 소유 Table/View builder 타입
|
|
118
84
|
* @template TTargetFn - 대상 Table/View builder factory 타입
|
|
119
85
|
*
|
|
120
|
-
* @example
|
|
121
|
-
* ```typescript
|
|
122
|
-
* // View에서 Table로의 관계 정의
|
|
123
|
-
* const UserSummary = View("UserSummary")
|
|
124
|
-
* .query((db: MyDb) => db.user().select(...))
|
|
125
|
-
* .relations((r) => ({
|
|
126
|
-
* // View → Table (FK 미생성)
|
|
127
|
-
* company: r.relationKey(["companyId"], () => Company, { description: "소속회사" }),
|
|
128
|
-
* }));
|
|
129
|
-
* ```
|
|
130
|
-
*
|
|
131
86
|
* @see {@link ForeignKeyBuilder} DB FK 생성 버전
|
|
132
87
|
*/
|
|
133
88
|
export declare class RelationKeyBuilder<TOwner extends TableBuilder<any, any, any> | ViewBuilder<any, any, any>, TTargetFn extends () => TableBuilder<any, any, any> | ViewBuilder<any, any, any>> {
|
|
@@ -162,18 +117,6 @@ export declare class RelationKeyBuilder<TOwner extends TableBuilder<any, any, an
|
|
|
162
117
|
* @template TTargetTableFn - 참조하는 Table/View builder factory 타입
|
|
163
118
|
* @template TIsSingle - 단일 객체 여부
|
|
164
119
|
*
|
|
165
|
-
* @example
|
|
166
|
-
* ```typescript
|
|
167
|
-
* const Company = Table("Company")
|
|
168
|
-
* .columns((c) => ({ id: c.bigint() }))
|
|
169
|
-
* .relations((r) => ({
|
|
170
|
-
* // 역참조 (FK 미생성)
|
|
171
|
-
* employees: r.relationKeyTarget(() => UserSummary, "company"),
|
|
172
|
-
* // 단일 객체 + 설명
|
|
173
|
-
* ceo: r.relationKeyTarget(() => UserSummary, "company", { single: true, description: "대표" }),
|
|
174
|
-
* }));
|
|
175
|
-
* ```
|
|
176
|
-
*
|
|
177
120
|
* @see {@link ForeignKeyTargetBuilder} DB FK 생성 버전
|
|
178
121
|
*/
|
|
179
122
|
export declare class RelationKeyTargetBuilder<TTargetTableFn extends () => TableBuilder<any, any, any> | ViewBuilder<any, any, any>, TIsSingle extends boolean> {
|
|
@@ -249,26 +192,6 @@ type RelationRkFactory<TOwner extends TableBuilder<any, any, any> | ViewBuilder<
|
|
|
249
192
|
* @template TColumnKey - Column key 타입
|
|
250
193
|
* @param ownerFn - 소유 Table/View factory 함수
|
|
251
194
|
* @returns 관계 builder factory
|
|
252
|
-
*
|
|
253
|
-
* @example
|
|
254
|
-
* ```typescript
|
|
255
|
-
* // Table - FK와 RelationKey 모두 사용 가능
|
|
256
|
-
* const Post = Table("Post")
|
|
257
|
-
* .columns((c) => ({
|
|
258
|
-
* id: c.bigint(),
|
|
259
|
-
* authorId: c.bigint(),
|
|
260
|
-
* }))
|
|
261
|
-
* .relations((r) => ({
|
|
262
|
-
* author: r.foreignKey(["authorId"], () => User), // FK 생성
|
|
263
|
-
* }));
|
|
264
|
-
*
|
|
265
|
-
* // View - RelationKey만 사용 가능
|
|
266
|
-
* const UserSummary = View("UserSummary")
|
|
267
|
-
* .query(...)
|
|
268
|
-
* .relations((r) => ({
|
|
269
|
-
* posts: r.relationKeyTarget(() => Post, "author"), // FK 미생성
|
|
270
|
-
* }));
|
|
271
|
-
* ```
|
|
272
195
|
*/
|
|
273
196
|
export declare function createRelationFactory<TOwner extends TableBuilder<any, any, any> | ViewBuilder<any, any, any>, TColumnKey extends string>(ownerFn: () => TOwner): TOwner extends TableBuilder<any, any, any> ? RelationFkFactory<TOwner, TColumnKey> & RelationRkFactory<TOwner, TColumnKey> : RelationRkFactory<TOwner, TColumnKey>;
|
|
274
197
|
/**
|
|
@@ -300,12 +223,6 @@ export type ExtractRelationTargetResult<TRelation, TVisited extends string = nev
|
|
|
300
223
|
* include() 없이 접근 시 undefined가 되도록 모든 관계를 optional로 설정
|
|
301
224
|
*
|
|
302
225
|
* @template TRelations - 관계 builder 레코드 타입
|
|
303
|
-
*
|
|
304
|
-
* @example
|
|
305
|
-
* ```typescript
|
|
306
|
-
* type UserRelations = InferDeepRelations<typeof User.$relations>;
|
|
307
|
-
* // { posts?: Post[]; profile?: Profile; }
|
|
308
|
-
* ```
|
|
309
226
|
*/
|
|
310
227
|
export type InferDeepRelations<TRelations extends RelationBuilderRecord, TVisited extends string = never> = {
|
|
311
228
|
[K in keyof TRelations]?: ExtractRelationTarget<TRelations[K], TVisited> | ExtractRelationTargetResult<TRelations[K], TVisited>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-builder.d.ts","sourceRoot":"","sources":["../../../src/schema/factory/relation-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD
|
|
1
|
+
{"version":3,"file":"relation-builder.d.ts","sourceRoot":"","sources":["../../../src/schema/factory/relation-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,20 +14,6 @@ import {} from "./column-builder.js";
|
|
|
14
14
|
* @template TOwner - 소유 Table builder 타입
|
|
15
15
|
* @template TTargetFn - 대상 Table builder factory 타입
|
|
16
16
|
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const Post = Table("Post")
|
|
20
|
-
* .columns((c) => ({
|
|
21
|
-
* id: c.bigint().autoIncrement(),
|
|
22
|
-
* authorId: c.bigint(), // FK column
|
|
23
|
-
* }))
|
|
24
|
-
* .primaryKey("id")
|
|
25
|
-
* .relations((r) => ({
|
|
26
|
-
* // N:1 relationship - Post → User
|
|
27
|
-
* author: r.foreignKey(["authorId"], () => User, { description: "작성자" }),
|
|
28
|
-
* }));
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
17
|
* @see {@link ForeignKeyTargetBuilder} 역참조 builder
|
|
32
18
|
* @see {@link RelationKeyBuilder} DB FK 없는 관계
|
|
33
19
|
*/
|
|
@@ -56,26 +42,6 @@ export class ForeignKeyBuilder {
|
|
|
56
42
|
* @template TTargetTableFn - 참조하는 Table builder factory 타입
|
|
57
43
|
* @template TIsSingle - 단일 객체 여부
|
|
58
44
|
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```typescript
|
|
61
|
-
* const User = Table("User")
|
|
62
|
-
* .columns((c) => ({
|
|
63
|
-
* id: c.bigint().autoIncrement(),
|
|
64
|
-
* name: c.varchar(100),
|
|
65
|
-
* }))
|
|
66
|
-
* .primaryKey("id")
|
|
67
|
-
* .relations((r) => ({
|
|
68
|
-
* // 1:N relationship - User ← Post.author
|
|
69
|
-
* posts: r.foreignKeyTarget(() => Post, "author"),
|
|
70
|
-
*
|
|
71
|
-
* // 1:1 relation (single object)
|
|
72
|
-
* profile: r.foreignKeyTarget(() => Profile, "user", { single: true }),
|
|
73
|
-
*
|
|
74
|
-
* // with description
|
|
75
|
-
* comments: r.foreignKeyTarget(() => Comment, "user", { description: "댓글목록" }),
|
|
76
|
-
* }));
|
|
77
|
-
* ```
|
|
78
|
-
*
|
|
79
45
|
* @see {@link ForeignKeyBuilder} FK builder
|
|
80
46
|
*/
|
|
81
47
|
export class ForeignKeyTargetBuilder {
|
|
@@ -105,17 +71,6 @@ export class ForeignKeyTargetBuilder {
|
|
|
105
71
|
* @template TOwner - 소유 Table/View builder 타입
|
|
106
72
|
* @template TTargetFn - 대상 Table/View builder factory 타입
|
|
107
73
|
*
|
|
108
|
-
* @example
|
|
109
|
-
* ```typescript
|
|
110
|
-
* // View에서 Table로의 관계 정의
|
|
111
|
-
* const UserSummary = View("UserSummary")
|
|
112
|
-
* .query((db: MyDb) => db.user().select(...))
|
|
113
|
-
* .relations((r) => ({
|
|
114
|
-
* // View → Table (FK 미생성)
|
|
115
|
-
* company: r.relationKey(["companyId"], () => Company, { description: "소속회사" }),
|
|
116
|
-
* }));
|
|
117
|
-
* ```
|
|
118
|
-
*
|
|
119
74
|
* @see {@link ForeignKeyBuilder} DB FK 생성 버전
|
|
120
75
|
*/
|
|
121
76
|
export class RelationKeyBuilder {
|
|
@@ -142,18 +97,6 @@ export class RelationKeyBuilder {
|
|
|
142
97
|
* @template TTargetTableFn - 참조하는 Table/View builder factory 타입
|
|
143
98
|
* @template TIsSingle - 단일 객체 여부
|
|
144
99
|
*
|
|
145
|
-
* @example
|
|
146
|
-
* ```typescript
|
|
147
|
-
* const Company = Table("Company")
|
|
148
|
-
* .columns((c) => ({ id: c.bigint() }))
|
|
149
|
-
* .relations((r) => ({
|
|
150
|
-
* // 역참조 (FK 미생성)
|
|
151
|
-
* employees: r.relationKeyTarget(() => UserSummary, "company"),
|
|
152
|
-
* // 단일 객체 + 설명
|
|
153
|
-
* ceo: r.relationKeyTarget(() => UserSummary, "company", { single: true, description: "대표" }),
|
|
154
|
-
* }));
|
|
155
|
-
* ```
|
|
156
|
-
*
|
|
157
100
|
* @see {@link ForeignKeyTargetBuilder} DB FK 생성 버전
|
|
158
101
|
*/
|
|
159
102
|
export class RelationKeyTargetBuilder {
|
|
@@ -179,26 +122,6 @@ export class RelationKeyTargetBuilder {
|
|
|
179
122
|
* @template TColumnKey - Column key 타입
|
|
180
123
|
* @param ownerFn - 소유 Table/View factory 함수
|
|
181
124
|
* @returns 관계 builder factory
|
|
182
|
-
*
|
|
183
|
-
* @example
|
|
184
|
-
* ```typescript
|
|
185
|
-
* // Table - FK와 RelationKey 모두 사용 가능
|
|
186
|
-
* const Post = Table("Post")
|
|
187
|
-
* .columns((c) => ({
|
|
188
|
-
* id: c.bigint(),
|
|
189
|
-
* authorId: c.bigint(),
|
|
190
|
-
* }))
|
|
191
|
-
* .relations((r) => ({
|
|
192
|
-
* author: r.foreignKey(["authorId"], () => User), // FK 생성
|
|
193
|
-
* }));
|
|
194
|
-
*
|
|
195
|
-
* // View - RelationKey만 사용 가능
|
|
196
|
-
* const UserSummary = View("UserSummary")
|
|
197
|
-
* .query(...)
|
|
198
|
-
* .relations((r) => ({
|
|
199
|
-
* posts: r.relationKeyTarget(() => Post, "author"), // FK 미생성
|
|
200
|
-
* }));
|
|
201
|
-
* ```
|
|
202
125
|
*/
|
|
203
126
|
export function createRelationFactory(ownerFn) {
|
|
204
127
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-builder.js","sourceRoot":"","sources":["../../../src/schema/factory/relation-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAIrD,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C
|
|
1
|
+
{"version":3,"file":"relation-builder.js","sourceRoot":"","sources":["../../../src/schema/factory/relation-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAIrD,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,iBAAiB;IAYjB;IARX;;;;;;OAMG;IACH,YACW,IAKR;QALQ,SAAI,GAAJ,IAAI,CAKZ;IACA,CAAC;CACL;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,uBAAuB;IAYvB;IARX;;;;;;OAMG;IACH,YACW,IAKR;QALQ,SAAI,GAAJ,IAAI,CAKZ;IACA,CAAC;CACL;AAED,+CAA+C;AAC/C,iDAAiD;AACjD,+CAA+C;AAE/C;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,kBAAkB;IAYlB;IARX;;;;;;OAMG;IACH,YACW,IAKR;QALQ,SAAI,GAAJ,IAAI,CAKZ;IACA,CAAC;CACL;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,wBAAwB;IAYxB;IARX;;;;;;OAMG;IACH,YACW,IAKR;QALQ,SAAI,GAAJ,IAAI,CAKZ;IACA,CAAC;CACL;AA6DD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAInC,OAAqB;IAIrB,OAAO;QACL,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAK;YACjC,OAAO,IAAI,iBAAiB,CAAC;gBAC3B,OAAO,EAAE,OAA4C;gBACrD,OAAO;gBACP,QAAQ;gBACR,WAAW,EAAE,IAAI,EAAE,WAAW;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,IAAK;YACjD,OAAO,IAAI,uBAAuB,CAAC;gBACjC,aAAa;gBACb,YAAY;gBACZ,WAAW,EAAE,IAAI,EAAE,WAAW;gBAC9B,QAAQ,EAAE,IAAI,EAAE,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAK;YAClC,OAAO,IAAI,kBAAkB,CAAC;gBAC5B,OAAO,EAAE,OAAO;gBAChB,OAAO;gBACP,QAAQ;gBACR,WAAW,EAAE,IAAI,EAAE,WAAW;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,iBAAiB,CAAC,aAAa,EAAE,YAAY,EAAE,IAAK;YAClD,OAAO,IAAI,wBAAwB,CAAC;gBAClC,aAAa;gBACb,YAAY;gBACZ,WAAW,EAAE,IAAI,EAAE,WAAW;gBAC9B,QAAQ,EAAE,IAAI,EAAE,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;KAGsC,CAAC;AAC5C,CAAC"}
|
|
@@ -8,30 +8,6 @@ import { type ColumnBuilderRecord, createColumnFactory } from "./factory/column-
|
|
|
8
8
|
* @template TParams - 파라미터 Column 정의 타입
|
|
9
9
|
* @template TReturns - 반환 Column 정의 타입
|
|
10
10
|
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* // Procedure definition
|
|
14
|
-
* const GetUserById = Procedure("GetUserById")
|
|
15
|
-
* .database("mydb")
|
|
16
|
-
* .params((c) => ({
|
|
17
|
-
* userId: c.bigint(),
|
|
18
|
-
* }))
|
|
19
|
-
* .returns((c) => ({
|
|
20
|
-
* id: c.bigint(),
|
|
21
|
-
* name: c.varchar(100),
|
|
22
|
-
* email: c.varchar(200),
|
|
23
|
-
* }))
|
|
24
|
-
* .body("SELECT id, name, email FROM User WHERE id = userId");
|
|
25
|
-
*
|
|
26
|
-
* // Used in DbContext
|
|
27
|
-
* class MyDb extends DbContext {
|
|
28
|
-
* readonly getUserById = executable(this, GetUserById);
|
|
29
|
-
* }
|
|
30
|
-
*
|
|
31
|
-
* // Invocation
|
|
32
|
-
* const users = await db.getUserById({ userId: 1n }).execute();
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
11
|
* @see {@link Procedure} factory 함수
|
|
36
12
|
* @see {@link executable} Executable 생성
|
|
37
13
|
*/
|
|
@@ -80,11 +56,6 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
|
|
|
80
56
|
*
|
|
81
57
|
* @param db - Database 이름
|
|
82
58
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```typescript
|
|
86
|
-
* const GetUser = Procedure("GetUser").database("mydb");
|
|
87
|
-
* ```
|
|
88
59
|
*/
|
|
89
60
|
database(db: string): ProcedureBuilder<TParams, TReturns>;
|
|
90
61
|
/**
|
|
@@ -105,15 +76,6 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
|
|
|
105
76
|
* @template T - 새 파라미터 정의 타입
|
|
106
77
|
* @param fn - Column factory를 받아 파라미터 정의를 반환하는 함수
|
|
107
78
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* ```typescript
|
|
111
|
-
* const GetUserById = Procedure("GetUserById")
|
|
112
|
-
* .params((c) => ({
|
|
113
|
-
* userId: c.bigint(),
|
|
114
|
-
* includeDeleted: c.boolean().default(false),
|
|
115
|
-
* }));
|
|
116
|
-
* ```
|
|
117
79
|
*/
|
|
118
80
|
params<T extends ColumnBuilderRecord>(fn: (c: ReturnType<typeof createColumnFactory>) => T): ProcedureBuilder<T, TReturns>;
|
|
119
81
|
/**
|
|
@@ -124,17 +86,6 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
|
|
|
124
86
|
* @template T - 새 반환 타입 정의
|
|
125
87
|
* @param fn - Column factory를 받아 column 정의를 반환하는 함수
|
|
126
88
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
127
|
-
*
|
|
128
|
-
* @example
|
|
129
|
-
* ```typescript
|
|
130
|
-
* const GetUserById = Procedure("GetUserById")
|
|
131
|
-
* .params((c) => ({ userId: c.bigint() }))
|
|
132
|
-
* .returns((c) => ({
|
|
133
|
-
* id: c.bigint(),
|
|
134
|
-
* name: c.varchar(100),
|
|
135
|
-
* email: c.varchar(200).nullable(),
|
|
136
|
-
* }));
|
|
137
|
-
* ```
|
|
138
89
|
*/
|
|
139
90
|
returns<T extends ColumnBuilderRecord>(fn: (c: ReturnType<typeof createColumnFactory>) => T): ProcedureBuilder<TParams, T>;
|
|
140
91
|
/**
|
|
@@ -147,19 +98,6 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
|
|
|
147
98
|
*
|
|
148
99
|
* @param sql - Procedure 본문 SQL
|
|
149
100
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
150
|
-
*
|
|
151
|
-
* @example
|
|
152
|
-
* ```typescript
|
|
153
|
-
* // MySQL/PostgreSQL
|
|
154
|
-
* const GetUser = Procedure("GetUser")
|
|
155
|
-
* .params((c) => ({ userId: c.bigint() }))
|
|
156
|
-
* .body("SELECT * FROM User WHERE id = userId");
|
|
157
|
-
*
|
|
158
|
-
* // MSSQL
|
|
159
|
-
* const GetUser = Procedure("GetUser")
|
|
160
|
-
* .params((c) => ({ userId: c.bigint() }))
|
|
161
|
-
* .body("SELECT * FROM [User] WHERE id = @userId");
|
|
162
|
-
* ```
|
|
163
101
|
*/
|
|
164
102
|
body(sql: string): ProcedureBuilder<TParams, TReturns>;
|
|
165
103
|
}
|
|
@@ -171,31 +109,6 @@ export declare class ProcedureBuilder<TParams extends ColumnBuilderRecord, TRetu
|
|
|
171
109
|
* @param name - Procedure 이름
|
|
172
110
|
* @returns ProcedureBuilder 인스턴스
|
|
173
111
|
*
|
|
174
|
-
* @example
|
|
175
|
-
* ```typescript
|
|
176
|
-
* // Basic usage
|
|
177
|
-
* const GetUserById = Procedure("GetUserById")
|
|
178
|
-
* .database("mydb")
|
|
179
|
-
* .params((c) => ({
|
|
180
|
-
* userId: c.bigint(),
|
|
181
|
-
* }))
|
|
182
|
-
* .returns((c) => ({
|
|
183
|
-
* id: c.bigint(),
|
|
184
|
-
* name: c.varchar(100),
|
|
185
|
-
* email: c.varchar(200),
|
|
186
|
-
* }))
|
|
187
|
-
* .body("SELECT id, name, email FROM User WHERE id = userId");
|
|
188
|
-
*
|
|
189
|
-
* // 파라미터 없는 Procedure
|
|
190
|
-
* const GetAllActiveUsers = Procedure("GetAllActiveUsers")
|
|
191
|
-
* .database("mydb")
|
|
192
|
-
* .returns((c) => ({
|
|
193
|
-
* id: c.bigint(),
|
|
194
|
-
* name: c.varchar(100),
|
|
195
|
-
* }))
|
|
196
|
-
* .body("SELECT id, name FROM User WHERE status = 'active'");
|
|
197
|
-
* ```
|
|
198
|
-
*
|
|
199
112
|
* @see {@link ProcedureBuilder} builder 클래스
|
|
200
113
|
*/
|
|
201
114
|
export declare function Procedure(name: string): ProcedureBuilder<never, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedure-builder.d.ts","sourceRoot":"","sources":["../../src/schema/procedure-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMzF
|
|
1
|
+
{"version":3,"file":"procedure-builder.d.ts","sourceRoot":"","sources":["../../src/schema/procedure-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMzF;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAgB,CAC3B,OAAO,SAAS,mBAAmB,EACnC,QAAQ,SAAS,mBAAmB;IAkBlC,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAxBH,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAG,OAAO,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAC;IAE7B;;;;;;;;;OASG;gBAEQ,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAGH;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAI9D;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAIzD;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAI3D;;;;;;;;;OASG;IACH,MAAM,CAAC,CAAC,SAAS,mBAAmB,EAClC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,GACnD,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC;IAIhC;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,SAAS,mBAAmB,EACnC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,GACnD,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IAI/B;;;;;;;;;;OAUG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;CAGvD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAEtE"}
|
|
@@ -11,30 +11,6 @@ import { createColumnFactory } from "./factory/column-builder.js";
|
|
|
11
11
|
* @template TParams - 파라미터 Column 정의 타입
|
|
12
12
|
* @template TReturns - 반환 Column 정의 타입
|
|
13
13
|
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Procedure definition
|
|
17
|
-
* const GetUserById = Procedure("GetUserById")
|
|
18
|
-
* .database("mydb")
|
|
19
|
-
* .params((c) => ({
|
|
20
|
-
* userId: c.bigint(),
|
|
21
|
-
* }))
|
|
22
|
-
* .returns((c) => ({
|
|
23
|
-
* id: c.bigint(),
|
|
24
|
-
* name: c.varchar(100),
|
|
25
|
-
* email: c.varchar(200),
|
|
26
|
-
* }))
|
|
27
|
-
* .body("SELECT id, name, email FROM User WHERE id = userId");
|
|
28
|
-
*
|
|
29
|
-
* // Used in DbContext
|
|
30
|
-
* class MyDb extends DbContext {
|
|
31
|
-
* readonly getUserById = executable(this, GetUserById);
|
|
32
|
-
* }
|
|
33
|
-
*
|
|
34
|
-
* // Invocation
|
|
35
|
-
* const users = await db.getUserById({ userId: 1n }).execute();
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
14
|
* @see {@link Procedure} factory 함수
|
|
39
15
|
* @see {@link executable} Executable 생성
|
|
40
16
|
*/
|
|
@@ -71,11 +47,6 @@ export class ProcedureBuilder {
|
|
|
71
47
|
*
|
|
72
48
|
* @param db - Database 이름
|
|
73
49
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const GetUser = Procedure("GetUser").database("mydb");
|
|
78
|
-
* ```
|
|
79
50
|
*/
|
|
80
51
|
database(db) {
|
|
81
52
|
return new ProcedureBuilder({ ...this.meta, database: db });
|
|
@@ -100,15 +71,6 @@ export class ProcedureBuilder {
|
|
|
100
71
|
* @template T - 새 파라미터 정의 타입
|
|
101
72
|
* @param fn - Column factory를 받아 파라미터 정의를 반환하는 함수
|
|
102
73
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
103
|
-
*
|
|
104
|
-
* @example
|
|
105
|
-
* ```typescript
|
|
106
|
-
* const GetUserById = Procedure("GetUserById")
|
|
107
|
-
* .params((c) => ({
|
|
108
|
-
* userId: c.bigint(),
|
|
109
|
-
* includeDeleted: c.boolean().default(false),
|
|
110
|
-
* }));
|
|
111
|
-
* ```
|
|
112
74
|
*/
|
|
113
75
|
params(fn) {
|
|
114
76
|
return new ProcedureBuilder({ ...this.meta, params: fn(createColumnFactory()) });
|
|
@@ -121,17 +83,6 @@ export class ProcedureBuilder {
|
|
|
121
83
|
* @template T - 새 반환 타입 정의
|
|
122
84
|
* @param fn - Column factory를 받아 column 정의를 반환하는 함수
|
|
123
85
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```typescript
|
|
127
|
-
* const GetUserById = Procedure("GetUserById")
|
|
128
|
-
* .params((c) => ({ userId: c.bigint() }))
|
|
129
|
-
* .returns((c) => ({
|
|
130
|
-
* id: c.bigint(),
|
|
131
|
-
* name: c.varchar(100),
|
|
132
|
-
* email: c.varchar(200).nullable(),
|
|
133
|
-
* }));
|
|
134
|
-
* ```
|
|
135
86
|
*/
|
|
136
87
|
returns(fn) {
|
|
137
88
|
return new ProcedureBuilder({ ...this.meta, returns: fn(createColumnFactory()) });
|
|
@@ -146,19 +97,6 @@ export class ProcedureBuilder {
|
|
|
146
97
|
*
|
|
147
98
|
* @param sql - Procedure 본문 SQL
|
|
148
99
|
* @returns 새 ProcedureBuilder 인스턴스
|
|
149
|
-
*
|
|
150
|
-
* @example
|
|
151
|
-
* ```typescript
|
|
152
|
-
* // MySQL/PostgreSQL
|
|
153
|
-
* const GetUser = Procedure("GetUser")
|
|
154
|
-
* .params((c) => ({ userId: c.bigint() }))
|
|
155
|
-
* .body("SELECT * FROM User WHERE id = userId");
|
|
156
|
-
*
|
|
157
|
-
* // MSSQL
|
|
158
|
-
* const GetUser = Procedure("GetUser")
|
|
159
|
-
* .params((c) => ({ userId: c.bigint() }))
|
|
160
|
-
* .body("SELECT * FROM [User] WHERE id = @userId");
|
|
161
|
-
* ```
|
|
162
100
|
*/
|
|
163
101
|
body(sql) {
|
|
164
102
|
return new ProcedureBuilder({ ...this.meta, query: sql });
|
|
@@ -175,31 +113,6 @@ export class ProcedureBuilder {
|
|
|
175
113
|
* @param name - Procedure 이름
|
|
176
114
|
* @returns ProcedureBuilder 인스턴스
|
|
177
115
|
*
|
|
178
|
-
* @example
|
|
179
|
-
* ```typescript
|
|
180
|
-
* // Basic usage
|
|
181
|
-
* const GetUserById = Procedure("GetUserById")
|
|
182
|
-
* .database("mydb")
|
|
183
|
-
* .params((c) => ({
|
|
184
|
-
* userId: c.bigint(),
|
|
185
|
-
* }))
|
|
186
|
-
* .returns((c) => ({
|
|
187
|
-
* id: c.bigint(),
|
|
188
|
-
* name: c.varchar(100),
|
|
189
|
-
* email: c.varchar(200),
|
|
190
|
-
* }))
|
|
191
|
-
* .body("SELECT id, name, email FROM User WHERE id = userId");
|
|
192
|
-
*
|
|
193
|
-
* // 파라미터 없는 Procedure
|
|
194
|
-
* const GetAllActiveUsers = Procedure("GetAllActiveUsers")
|
|
195
|
-
* .database("mydb")
|
|
196
|
-
* .returns((c) => ({
|
|
197
|
-
* id: c.bigint(),
|
|
198
|
-
* name: c.varchar(100),
|
|
199
|
-
* }))
|
|
200
|
-
* .body("SELECT id, name FROM User WHERE status = 'active'");
|
|
201
|
-
* ```
|
|
202
|
-
*
|
|
203
116
|
* @see {@link ProcedureBuilder} builder 클래스
|
|
204
117
|
*/
|
|
205
118
|
export function Procedure(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedure-builder.js","sourceRoot":"","sources":["../../src/schema/procedure-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C
|
|
1
|
+
{"version":3,"file":"procedure-builder.js","sourceRoot":"","sources":["../../src/schema/procedure-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,gBAAgB;IAoBhB;IAhBX,uBAAuB;IACd,OAAO,CAAW;IAC3B,wBAAwB;IACf,QAAQ,CAAY;IAE7B;;;;;;;;;OASG;IACH,YACW,IAQR;QARQ,SAAI,GAAJ,IAAI,CAQZ;IACA,CAAC;IAEJ;;;;;OAKG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CACJ,EAAoD;QAEpD,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CACL,EAAoD;QAEpD,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,CAAC,GAAW;QACd,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC"}
|