@simplysm/orm-common 13.0.99 → 14.0.1

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.
Files changed (238) hide show
  1. package/dist/create-db-context.d.ts +10 -10
  2. package/dist/create-db-context.js +312 -276
  3. package/dist/create-db-context.js.map +1 -6
  4. package/dist/ddl/column-ddl.d.ts +4 -4
  5. package/dist/ddl/column-ddl.js +41 -35
  6. package/dist/ddl/column-ddl.js.map +1 -6
  7. package/dist/ddl/initialize.d.ts +17 -17
  8. package/dist/ddl/initialize.js +200 -142
  9. package/dist/ddl/initialize.js.map +1 -6
  10. package/dist/ddl/relation-ddl.d.ts +6 -6
  11. package/dist/ddl/relation-ddl.js +55 -48
  12. package/dist/ddl/relation-ddl.js.map +1 -6
  13. package/dist/ddl/schema-ddl.d.ts +4 -4
  14. package/dist/ddl/schema-ddl.js +21 -15
  15. package/dist/ddl/schema-ddl.js.map +1 -6
  16. package/dist/ddl/table-ddl.d.ts +20 -20
  17. package/dist/ddl/table-ddl.js +139 -93
  18. package/dist/ddl/table-ddl.js.map +1 -6
  19. package/dist/define-db-context.js +10 -13
  20. package/dist/define-db-context.js.map +1 -6
  21. package/dist/errors/db-transaction-error.d.ts +15 -15
  22. package/dist/errors/db-transaction-error.d.ts.map +1 -1
  23. package/dist/errors/db-transaction-error.js +53 -19
  24. package/dist/errors/db-transaction-error.js.map +1 -6
  25. package/dist/exec/executable.d.ts +23 -23
  26. package/dist/exec/executable.js +94 -40
  27. package/dist/exec/executable.js.map +1 -6
  28. package/dist/exec/queryable.d.ts +97 -97
  29. package/dist/exec/queryable.js +1310 -1204
  30. package/dist/exec/queryable.js.map +1 -6
  31. package/dist/exec/search-parser.d.ts +31 -31
  32. package/dist/exec/search-parser.d.ts.map +1 -1
  33. package/dist/exec/search-parser.js +158 -59
  34. package/dist/exec/search-parser.js.map +1 -6
  35. package/dist/expr/expr-unit.d.ts +4 -4
  36. package/dist/expr/expr-unit.js +24 -18
  37. package/dist/expr/expr-unit.js.map +1 -6
  38. package/dist/expr/expr.d.ts +6 -6
  39. package/dist/expr/expr.js +1872 -1844
  40. package/dist/expr/expr.js.map +1 -6
  41. package/dist/index.js +23 -1
  42. package/dist/index.js.map +1 -6
  43. package/dist/models/system-migration.js +7 -7
  44. package/dist/models/system-migration.js.map +1 -6
  45. package/dist/query-builder/base/expr-renderer-base.d.ts +10 -10
  46. package/dist/query-builder/base/expr-renderer-base.js +27 -21
  47. package/dist/query-builder/base/expr-renderer-base.js.map +1 -6
  48. package/dist/query-builder/base/query-builder-base.d.ts +21 -21
  49. package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
  50. package/dist/query-builder/base/query-builder-base.js +90 -80
  51. package/dist/query-builder/base/query-builder-base.js.map +1 -6
  52. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
  53. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
  54. package/dist/query-builder/mssql/mssql-expr-renderer.js +447 -420
  55. package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -6
  56. package/dist/query-builder/mssql/mssql-query-builder.js +483 -443
  57. package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -6
  58. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
  59. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
  60. package/dist/query-builder/mysql/mysql-expr-renderer.js +451 -419
  61. package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -6
  62. package/dist/query-builder/mysql/mysql-query-builder.js +570 -479
  63. package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -6
  64. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
  65. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
  66. package/dist/query-builder/postgresql/postgresql-expr-renderer.js +449 -422
  67. package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -6
  68. package/dist/query-builder/postgresql/postgresql-query-builder.js +511 -460
  69. package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -6
  70. package/dist/query-builder/query-builder.d.ts +1 -1
  71. package/dist/query-builder/query-builder.js +13 -13
  72. package/dist/query-builder/query-builder.js.map +1 -6
  73. package/dist/schema/factory/column-builder.d.ts +84 -84
  74. package/dist/schema/factory/column-builder.js +248 -185
  75. package/dist/schema/factory/column-builder.js.map +1 -6
  76. package/dist/schema/factory/index-builder.d.ts +38 -38
  77. package/dist/schema/factory/index-builder.js +144 -85
  78. package/dist/schema/factory/index-builder.js.map +1 -6
  79. package/dist/schema/factory/relation-builder.d.ts +91 -91
  80. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  81. package/dist/schema/factory/relation-builder.js +274 -136
  82. package/dist/schema/factory/relation-builder.js.map +1 -6
  83. package/dist/schema/procedure-builder.d.ts +51 -51
  84. package/dist/schema/procedure-builder.d.ts.map +1 -1
  85. package/dist/schema/procedure-builder.js +205 -131
  86. package/dist/schema/procedure-builder.js.map +1 -6
  87. package/dist/schema/table-builder.d.ts +55 -55
  88. package/dist/schema/table-builder.d.ts.map +1 -1
  89. package/dist/schema/table-builder.js +274 -205
  90. package/dist/schema/table-builder.js.map +1 -6
  91. package/dist/schema/view-builder.d.ts +44 -44
  92. package/dist/schema/view-builder.d.ts.map +1 -1
  93. package/dist/schema/view-builder.js +189 -116
  94. package/dist/schema/view-builder.js.map +1 -6
  95. package/dist/types/column.js +60 -30
  96. package/dist/types/column.js.map +1 -6
  97. package/dist/types/db-context-def.d.ts +9 -9
  98. package/dist/types/db-context-def.js +2 -1
  99. package/dist/types/db-context-def.js.map +1 -6
  100. package/dist/types/db.d.ts +47 -47
  101. package/dist/types/db.js +15 -5
  102. package/dist/types/db.js.map +1 -6
  103. package/dist/types/expr.d.ts +81 -81
  104. package/dist/types/expr.d.ts.map +1 -1
  105. package/dist/types/expr.js +3 -1
  106. package/dist/types/expr.js.map +1 -6
  107. package/dist/types/query-def.d.ts +46 -46
  108. package/dist/types/query-def.d.ts.map +1 -1
  109. package/dist/types/query-def.js +31 -24
  110. package/dist/types/query-def.js.map +1 -6
  111. package/dist/utils/result-parser.js +362 -221
  112. package/dist/utils/result-parser.js.map +1 -6
  113. package/package.json +5 -7
  114. package/src/create-db-context.ts +31 -31
  115. package/src/ddl/column-ddl.ts +4 -4
  116. package/src/ddl/initialize.ts +38 -38
  117. package/src/ddl/relation-ddl.ts +6 -6
  118. package/src/ddl/schema-ddl.ts +4 -4
  119. package/src/ddl/table-ddl.ts +24 -24
  120. package/src/errors/db-transaction-error.ts +13 -13
  121. package/src/exec/executable.ts +25 -25
  122. package/src/exec/queryable.ts +134 -134
  123. package/src/exec/search-parser.ts +50 -50
  124. package/src/expr/expr-unit.ts +4 -4
  125. package/src/expr/expr.ts +13 -13
  126. package/src/index.ts +8 -8
  127. package/src/models/system-migration.ts +1 -1
  128. package/src/query-builder/base/expr-renderer-base.ts +21 -21
  129. package/src/query-builder/base/query-builder-base.ts +33 -33
  130. package/src/query-builder/mssql/mssql-expr-renderer.ts +11 -11
  131. package/src/query-builder/mssql/mssql-query-builder.ts +11 -11
  132. package/src/query-builder/mysql/mysql-expr-renderer.ts +15 -15
  133. package/src/query-builder/mysql/mysql-query-builder.ts +3 -3
  134. package/src/query-builder/postgresql/postgresql-expr-renderer.ts +9 -9
  135. package/src/query-builder/postgresql/postgresql-query-builder.ts +7 -7
  136. package/src/query-builder/query-builder.ts +1 -1
  137. package/src/schema/factory/column-builder.ts +86 -86
  138. package/src/schema/factory/index-builder.ts +38 -38
  139. package/src/schema/factory/relation-builder.ts +93 -93
  140. package/src/schema/procedure-builder.ts +52 -52
  141. package/src/schema/table-builder.ts +56 -56
  142. package/src/schema/view-builder.ts +45 -45
  143. package/src/types/column.ts +1 -1
  144. package/src/types/db-context-def.ts +15 -15
  145. package/src/types/db.ts +50 -50
  146. package/src/types/expr.ts +103 -103
  147. package/src/types/query-def.ts +50 -50
  148. package/src/utils/result-parser.ts +39 -39
  149. package/README.md +0 -192
  150. package/docs/core.md +0 -234
  151. package/docs/expression.md +0 -234
  152. package/docs/query-builder.md +0 -93
  153. package/docs/queryable.md +0 -198
  154. package/docs/schema-builders.md +0 -463
  155. package/docs/types.md +0 -445
  156. package/docs/utilities.md +0 -27
  157. package/tests/db-context/create-db-context.spec.ts +0 -193
  158. package/tests/db-context/define-db-context.spec.ts +0 -17
  159. package/tests/ddl/basic.expected.ts +0 -341
  160. package/tests/ddl/basic.spec.ts +0 -557
  161. package/tests/ddl/column-builder.expected.ts +0 -310
  162. package/tests/ddl/column-builder.spec.ts +0 -525
  163. package/tests/ddl/index-builder.expected.ts +0 -38
  164. package/tests/ddl/index-builder.spec.ts +0 -148
  165. package/tests/ddl/procedure-builder.expected.ts +0 -52
  166. package/tests/ddl/procedure-builder.spec.ts +0 -128
  167. package/tests/ddl/relation-builder.expected.ts +0 -36
  168. package/tests/ddl/relation-builder.spec.ts +0 -171
  169. package/tests/ddl/table-builder.expected.ts +0 -113
  170. package/tests/ddl/table-builder.spec.ts +0 -399
  171. package/tests/ddl/view-builder.expected.ts +0 -38
  172. package/tests/ddl/view-builder.spec.ts +0 -116
  173. package/tests/dml/delete.expected.ts +0 -96
  174. package/tests/dml/delete.spec.ts +0 -127
  175. package/tests/dml/insert.expected.ts +0 -192
  176. package/tests/dml/insert.spec.ts +0 -210
  177. package/tests/dml/update.expected.ts +0 -176
  178. package/tests/dml/update.spec.ts +0 -222
  179. package/tests/dml/upsert.expected.ts +0 -215
  180. package/tests/dml/upsert.spec.ts +0 -190
  181. package/tests/errors/queryable-errors.spec.ts +0 -126
  182. package/tests/escape.spec.ts +0 -59
  183. package/tests/examples/pivot.expected.ts +0 -211
  184. package/tests/examples/pivot.spec.ts +0 -200
  185. package/tests/examples/sampling.expected.ts +0 -69
  186. package/tests/examples/sampling.spec.ts +0 -42
  187. package/tests/examples/unpivot.expected.ts +0 -120
  188. package/tests/examples/unpivot.spec.ts +0 -161
  189. package/tests/exec/search-parser.spec.ts +0 -267
  190. package/tests/executable/basic.expected.ts +0 -18
  191. package/tests/executable/basic.spec.ts +0 -54
  192. package/tests/expr/comparison.expected.ts +0 -282
  193. package/tests/expr/comparison.spec.ts +0 -334
  194. package/tests/expr/conditional.expected.ts +0 -134
  195. package/tests/expr/conditional.spec.ts +0 -249
  196. package/tests/expr/date.expected.ts +0 -332
  197. package/tests/expr/date.spec.ts +0 -459
  198. package/tests/expr/math.expected.ts +0 -62
  199. package/tests/expr/math.spec.ts +0 -59
  200. package/tests/expr/string.expected.ts +0 -218
  201. package/tests/expr/string.spec.ts +0 -300
  202. package/tests/expr/utility.expected.ts +0 -147
  203. package/tests/expr/utility.spec.ts +0 -155
  204. package/tests/select/basic.expected.ts +0 -322
  205. package/tests/select/basic.spec.ts +0 -433
  206. package/tests/select/filter.expected.ts +0 -357
  207. package/tests/select/filter.spec.ts +0 -954
  208. package/tests/select/group.expected.ts +0 -169
  209. package/tests/select/group.spec.ts +0 -159
  210. package/tests/select/join.expected.ts +0 -582
  211. package/tests/select/join.spec.ts +0 -692
  212. package/tests/select/order.expected.ts +0 -150
  213. package/tests/select/order.spec.ts +0 -140
  214. package/tests/select/recursive-cte.expected.ts +0 -244
  215. package/tests/select/recursive-cte.spec.ts +0 -514
  216. package/tests/select/result-meta.spec.ts +0 -270
  217. package/tests/select/subquery.expected.ts +0 -363
  218. package/tests/select/subquery.spec.ts +0 -441
  219. package/tests/select/view.expected.ts +0 -155
  220. package/tests/select/view.spec.ts +0 -235
  221. package/tests/select/window.expected.ts +0 -345
  222. package/tests/select/window.spec.ts +0 -433
  223. package/tests/setup/MockExecutor.ts +0 -18
  224. package/tests/setup/TestDbContext.ts +0 -59
  225. package/tests/setup/models/Company.ts +0 -13
  226. package/tests/setup/models/Employee.ts +0 -10
  227. package/tests/setup/models/MonthlySales.ts +0 -11
  228. package/tests/setup/models/Post.ts +0 -16
  229. package/tests/setup/models/Sales.ts +0 -10
  230. package/tests/setup/models/User.ts +0 -19
  231. package/tests/setup/procedure/GetAllUsers.ts +0 -9
  232. package/tests/setup/procedure/GetUserById.ts +0 -12
  233. package/tests/setup/test-utils.ts +0 -72
  234. package/tests/setup/views/ActiveUsers.ts +0 -8
  235. package/tests/setup/views/UserSummary.ts +0 -11
  236. package/tests/types/nullable-queryable-record.spec.ts +0 -97
  237. package/tests/utils/result-parser-perf.spec.ts +0 -143
  238. package/tests/utils/result-parser.spec.ts +0 -667
@@ -1,215 +1,278 @@
1
- class ColumnBuilder {
2
- /**
3
- * @param meta - Column Metadata
4
- */
5
- constructor(meta) {
6
- this.meta = meta;
7
- }
8
- /**
9
- * Auto Increment configuration
10
- *
11
- * Auto increments on INSERT. Treated as optional in INSERT Type inference
12
- *
13
- * @returns new ColumnBuilder instance
14
- *
15
- * @example
16
- * ```typescript
17
- * id: c.bigint().autoIncrement()
18
- * ```
19
- */
20
- autoIncrement() {
21
- return new ColumnBuilder({ ...this.meta, autoIncrement: true });
22
- }
23
- /**
24
- * Nullable configuration
25
- *
26
- * Allow NULL. Adds undefined to the value type
27
- *
28
- * @returns new ColumnBuilder instance
29
- *
30
- * @example
31
- * ```typescript
32
- * email: c.varchar(200).nullable() // string | undefined
33
- * ```
34
- */
35
- nullable() {
36
- return new ColumnBuilder({ ...this.meta, nullable: true });
37
- }
38
- /**
39
- * Default value configuration
40
- *
41
- * Used when no value is specified on INSERT. Treated as optional in INSERT Type inference
42
- *
43
- * @param value - Default value
44
- * @returns new ColumnBuilder instance
45
- *
46
- * @example
47
- * ```typescript
48
- * status: c.varchar(20).default("active")
49
- * createdAt: c.datetime().default("CURRENT_TIMESTAMP")
50
- * ```
51
- */
52
- default(value) {
53
- return new ColumnBuilder({ ...this.meta, default: value });
54
- }
55
- /**
56
- * column set description
57
- *
58
- * @param desc - Column description (used as DDL Comment)
59
- * @returns new ColumnBuilder instance
60
- *
61
- * @example
62
- * ```typescript
63
- * createdAt: c.datetime().description("record creation datetime")
64
- * ```
65
- */
66
- description(desc) {
67
- return new ColumnBuilder({ ...this.meta, description: desc });
68
- }
69
- }
70
- function createColumnFactory() {
71
- return {
72
- /**
73
- * INT column (4 bytes, -2^31 ~ 2^31-1)
74
- *
75
- * @returns ColumnBuilder instance
76
- */
77
- int() {
78
- return new ColumnBuilder({ type: "number", dataType: { type: "int" } });
79
- },
80
- /**
81
- * BIGINT column (8 bytes, -2^63 ~ 2^63-1)
82
- *
83
- * @returns ColumnBuilder instance
84
- */
85
- bigint() {
86
- return new ColumnBuilder({ type: "number", dataType: { type: "bigint" } });
87
- },
1
+ // ============================================
2
+ // ColumnBuilder
3
+ // ============================================
4
+ /**
5
+ * Column 정의 builder
6
+ *
7
+ * Fluent API로 column 타입, nullable, autoIncrement, default, description을 정의
8
+ * TableBuilder.columns()에서 사용
9
+ *
10
+ * @template TValue - Column 값 타입
11
+ * @template TMeta - Column 메타데이터 타입
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * Table("User")
16
+ * .columns((c) => ({
17
+ * id: c.bigint().autoIncrement(), // bigint, 자동 증가
18
+ * name: c.varchar(100), // varchar(100), 필수
19
+ * email: c.varchar(200).nullable(), // varchar(200), nullable
20
+ * status: c.varchar(20).default("active"), // varchar(20), 기본값
21
+ * createdAt: c.datetime().description("created datetime"),
22
+ * }));
23
+ * ```
24
+ *
25
+ * @see {@link createColumnFactory} column factory
26
+ * @see {@link TableBuilder} Table builder
27
+ */
28
+ export class ColumnBuilder {
29
+ meta;
88
30
  /**
89
- * FLOAT column (4 bytes, single-precision floating point)
90
- *
91
- * @returns ColumnBuilder instance
31
+ * @param meta - Column 메타데이터
92
32
  */
93
- float() {
94
- return new ColumnBuilder({ type: "number", dataType: { type: "float" } });
95
- },
33
+ constructor(meta) {
34
+ this.meta = meta;
35
+ }
96
36
  /**
97
- * DOUBLE column (8 bytes, double-precision floating point)
37
+ * Auto Increment 설정
98
38
  *
99
- * @returns ColumnBuilder instance
100
- */
101
- double() {
102
- return new ColumnBuilder({ type: "number", dataType: { type: "double" } });
103
- },
104
- /**
105
- * DECIMAL column (fixed-point)
39
+ * INSERT 자동 증가. INSERT 타입 추론에서 선택적(optional)으로 처리됨
106
40
  *
107
- * @param precision - Total number of digits
108
- * @param scale - Number of digits after the decimal point (optional)
109
- * @returns ColumnBuilder instance
41
+ * @returns ColumnBuilder 인스턴스
110
42
  *
111
43
  * @example
112
44
  * ```typescript
113
- * price: c.decimal(10, 2) // DECIMAL(10, 2)
45
+ * id: c.bigint().autoIncrement()
114
46
  * ```
115
47
  */
116
- decimal(precision, scale) {
117
- return new ColumnBuilder({ type: "number", dataType: { type: "decimal", precision, scale } });
118
- },
48
+ autoIncrement() {
49
+ return new ColumnBuilder({ ...this.meta, autoIncrement: true });
50
+ }
119
51
  /**
120
- * VARCHAR column (variable-length string)
52
+ * Nullable 설정
53
+ *
54
+ * NULL 허용. 값 타입에 undefined가 추가됨
121
55
  *
122
- * @param length - Maximum length
123
- * @returns ColumnBuilder instance
56
+ * @returns ColumnBuilder 인스턴스
124
57
  *
125
58
  * @example
126
59
  * ```typescript
127
- * name: c.varchar(100) // VARCHAR(100)
60
+ * email: c.varchar(200).nullable() // string | undefined
128
61
  * ```
129
62
  */
130
- varchar(length) {
131
- return new ColumnBuilder({ type: "string", dataType: { type: "varchar", length } });
132
- },
63
+ nullable() {
64
+ return new ColumnBuilder({ ...this.meta, nullable: true });
65
+ }
133
66
  /**
134
- * CHAR column (fixed-length string)
67
+ * 기본값 설정
68
+ *
69
+ * INSERT 시 값이 지정되지 않으면 사용됨. INSERT 타입 추론에서 선택적(optional)으로 처리됨
135
70
  *
136
- * @param length - Fixed length
137
- * @returns ColumnBuilder instance
71
+ * @param value - 기본값
72
+ * @returns ColumnBuilder 인스턴스
138
73
  *
139
74
  * @example
140
75
  * ```typescript
141
- * countryCode: c.char(2) // CHAR(2)
76
+ * status: c.varchar(20).default("active")
77
+ * createdAt: c.datetime().default("CURRENT_TIMESTAMP")
142
78
  * ```
143
79
  */
144
- char(length) {
145
- return new ColumnBuilder({ type: "string", dataType: { type: "char", length } });
146
- },
147
- /**
148
- * TEXT column (large text)
149
- *
150
- * @returns ColumnBuilder instance
151
- */
152
- text() {
153
- return new ColumnBuilder({ type: "string", dataType: { type: "text" } });
154
- },
155
- /**
156
- * BINARY column (binary data)
157
- *
158
- * Per DBMS: MySQL=LONGBLOB, MSSQL=VARBINARY(MAX), PostgreSQL=BYTEA
159
- *
160
- * @returns ColumnBuilder instance
161
- */
162
- binary() {
163
- return new ColumnBuilder({ type: "Bytes", dataType: { type: "binary" } });
164
- },
165
- /**
166
- * BOOLEAN column
167
- *
168
- * Per DBMS: MySQL=TINYINT(1), MSSQL=BIT, PostgreSQL=BOOLEAN
169
- *
170
- * @returns ColumnBuilder instance
171
- */
172
- boolean() {
173
- return new ColumnBuilder({ type: "boolean", dataType: { type: "boolean" } });
174
- },
175
- /**
176
- * DATETIME column (date + time)
177
- *
178
- * @returns ColumnBuilder instance
179
- */
180
- datetime() {
181
- return new ColumnBuilder({ type: "DateTime", dataType: { type: "datetime" } });
182
- },
183
- /**
184
- * DATE column (date only)
185
- *
186
- * @returns ColumnBuilder instance
187
- */
188
- date() {
189
- return new ColumnBuilder({ type: "DateOnly", dataType: { type: "date" } });
190
- },
191
- /**
192
- * TIME column (time only)
193
- *
194
- * @returns ColumnBuilder instance
195
- */
196
- time() {
197
- return new ColumnBuilder({ type: "Time", dataType: { type: "time" } });
198
- },
80
+ default(value) {
81
+ return new ColumnBuilder({ ...this.meta, default: value });
82
+ }
199
83
  /**
200
- * UUID column
84
+ * Column 설명 설정
201
85
  *
202
- * Per DBMS: MySQL=BINARY(16), MSSQL=UNIQUEIDENTIFIER, PostgreSQL=UUID
86
+ * @param desc - Column 설명 (DDL Comment로 사용됨)
87
+ * @returns 새 ColumnBuilder 인스턴스
203
88
  *
204
- * @returns ColumnBuilder instance
89
+ * @example
90
+ * ```typescript
91
+ * createdAt: c.datetime().description("record creation datetime")
92
+ * ```
205
93
  */
206
- uuid() {
207
- return new ColumnBuilder({ type: "Uuid", dataType: { type: "uuid" } });
94
+ description(desc) {
95
+ return new ColumnBuilder({ ...this.meta, description: desc });
208
96
  }
209
- };
210
97
  }
211
- export {
212
- ColumnBuilder,
213
- createColumnFactory
214
- };
215
- //# sourceMappingURL=column-builder.js.map
98
+ // ============================================
99
+ // column factory
100
+ // ============================================
101
+ /**
102
+ * Column builder factory 생성
103
+ *
104
+ * TableBuilder.columns()에서 사용하는 column 타입 factory
105
+ * 모든 기본 데이터 타입에 대한 builder 생성 메서드를 제공
106
+ *
107
+ * @returns 각 Column 타입별 builder 생성 메서드를 포함하는 객체
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * Table("User")
112
+ * .columns((c) => ({
113
+ * // 숫자 타입
114
+ * id: c.bigint().autoIncrement(),
115
+ * count: c.int(),
116
+ * price: c.decimal(10, 2),
117
+ *
118
+ * // 문자열 타입
119
+ * name: c.varchar(100),
120
+ * code: c.char(10),
121
+ * content: c.text(),
122
+ *
123
+ * // 날짜/시간 타입
124
+ * createdAt: c.datetime(),
125
+ * birthDate: c.date(),
126
+ * startTime: c.time(),
127
+ *
128
+ * // 기타 타입
129
+ * isActive: c.boolean(),
130
+ * data: c.binary(),
131
+ * uuid: c.uuid(),
132
+ * }));
133
+ * ```
134
+ *
135
+ * @see {@link ColumnBuilder} Column builder 클래스
136
+ */
137
+ export function createColumnFactory() {
138
+ return {
139
+ /**
140
+ * INT column (4바이트, -2^31 ~ 2^31-1)
141
+ *
142
+ * @returns ColumnBuilder 인스턴스
143
+ */
144
+ int() {
145
+ return new ColumnBuilder({ type: "number", dataType: { type: "int" } });
146
+ },
147
+ /**
148
+ * BIGINT column (8바이트, -2^63 ~ 2^63-1)
149
+ *
150
+ * @returns ColumnBuilder 인스턴스
151
+ */
152
+ bigint() {
153
+ return new ColumnBuilder({ type: "number", dataType: { type: "bigint" } });
154
+ },
155
+ /**
156
+ * FLOAT column (4바이트, 단정밀도 부동소수점)
157
+ *
158
+ * @returns ColumnBuilder 인스턴스
159
+ */
160
+ float() {
161
+ return new ColumnBuilder({ type: "number", dataType: { type: "float" } });
162
+ },
163
+ /**
164
+ * DOUBLE column (8바이트, 배정밀도 부동소수점)
165
+ *
166
+ * @returns ColumnBuilder 인스턴스
167
+ */
168
+ double() {
169
+ return new ColumnBuilder({ type: "number", dataType: { type: "double" } });
170
+ },
171
+ /**
172
+ * DECIMAL column (고정 소수점)
173
+ *
174
+ * @param precision - 전체 자릿수
175
+ * @param scale - 소수점 이하 자릿수 (선택)
176
+ * @returns ColumnBuilder 인스턴스
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * price: c.decimal(10, 2) // DECIMAL(10, 2)
181
+ * ```
182
+ */
183
+ decimal(precision, scale) {
184
+ return new ColumnBuilder({ type: "number", dataType: { type: "decimal", precision, scale } });
185
+ },
186
+ /**
187
+ * VARCHAR column (가변 길이 문자열)
188
+ *
189
+ * @param length - 최대 길이
190
+ * @returns ColumnBuilder 인스턴스
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * name: c.varchar(100) // VARCHAR(100)
195
+ * ```
196
+ */
197
+ varchar(length) {
198
+ return new ColumnBuilder({ type: "string", dataType: { type: "varchar", length } });
199
+ },
200
+ /**
201
+ * CHAR column (고정 길이 문자열)
202
+ *
203
+ * @param length - 고정 길이
204
+ * @returns ColumnBuilder 인스턴스
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * countryCode: c.char(2) // CHAR(2)
209
+ * ```
210
+ */
211
+ char(length) {
212
+ return new ColumnBuilder({ type: "string", dataType: { type: "char", length } });
213
+ },
214
+ /**
215
+ * TEXT column (대용량 텍스트)
216
+ *
217
+ * @returns ColumnBuilder 인스턴스
218
+ */
219
+ text() {
220
+ return new ColumnBuilder({ type: "string", dataType: { type: "text" } });
221
+ },
222
+ /**
223
+ * BINARY column (바이너리 데이터)
224
+ *
225
+ * DBMS별: MySQL=LONGBLOB, MSSQL=VARBINARY(MAX), PostgreSQL=BYTEA
226
+ *
227
+ * @returns ColumnBuilder 인스턴스
228
+ */
229
+ binary() {
230
+ return new ColumnBuilder({ type: "Bytes", dataType: { type: "binary" } });
231
+ },
232
+ /**
233
+ * BOOLEAN column
234
+ *
235
+ * DBMS별: MySQL=TINYINT(1), MSSQL=BIT, PostgreSQL=BOOLEAN
236
+ *
237
+ * @returns ColumnBuilder 인스턴스
238
+ */
239
+ boolean() {
240
+ return new ColumnBuilder({ type: "boolean", dataType: { type: "boolean" } });
241
+ },
242
+ /**
243
+ * DATETIME column (날짜 + 시간)
244
+ *
245
+ * @returns ColumnBuilder 인스턴스
246
+ */
247
+ datetime() {
248
+ return new ColumnBuilder({ type: "DateTime", dataType: { type: "datetime" } });
249
+ },
250
+ /**
251
+ * DATE column (날짜만)
252
+ *
253
+ * @returns ColumnBuilder 인스턴스
254
+ */
255
+ date() {
256
+ return new ColumnBuilder({ type: "DateOnly", dataType: { type: "date" } });
257
+ },
258
+ /**
259
+ * TIME column (시간만)
260
+ *
261
+ * @returns ColumnBuilder 인스턴스
262
+ */
263
+ time() {
264
+ return new ColumnBuilder({ type: "Time", dataType: { type: "time" } });
265
+ },
266
+ /**
267
+ * UUID column
268
+ *
269
+ * DBMS별: MySQL=BINARY(16), MSSQL=UNIQUEIDENTIFIER, PostgreSQL=UUID
270
+ *
271
+ * @returns ColumnBuilder 인스턴스
272
+ */
273
+ uuid() {
274
+ return new ColumnBuilder({ type: "Uuid", dataType: { type: "uuid" } });
275
+ },
276
+ };
277
+ }
278
+ //# sourceMappingURL=column-builder.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/schema/factory/column-builder.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
1
+ {"version":3,"file":"column-builder.js","sourceRoot":"","sources":["..\\..\\..\\src\\schema\\factory\\column-builder.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Index definition builder
2
+ * Index 정의 builder
3
3
  *
4
- * Define Index columns, uniqueness, and sort order via Fluent API
5
- * Used in TableBuilder.indexes()
4
+ * Fluent API로 index column, 유니크 여부, 정렬 순서를 정의
5
+ * TableBuilder.indexes()에서 사용
6
6
  *
7
- * @template TKeys - Index column key array type
7
+ * @template TKeys - Index column key 배열 타입
8
8
  *
9
9
  * @example
10
10
  * ```typescript
@@ -16,13 +16,13 @@
16
16
  * createdAt: c.datetime(),
17
17
  * }))
18
18
  * .indexes((i) => [
19
- * // Unique index
19
+ * // 유니크 index
20
20
  * i.index("email").unique(),
21
21
  *
22
- * // Composite index + sort order
22
+ * // 복합 index + 정렬 순서
23
23
  * i.index("name", "createdAt").orderBy("ASC", "DESC"),
24
24
  *
25
- * // Custom name
25
+ * // 커스텀 이름
26
26
  * i.index("createdAt").name("IX_User_CreatedAt"),
27
27
  * ]);
28
28
  * ```
@@ -41,12 +41,12 @@ export declare class IndexBuilder<TKeys extends string[]> {
41
41
  description?: string;
42
42
  };
43
43
  /**
44
- * @param meta - Index Metadata
45
- * @param meta.columns - Index column array
46
- * @param meta.name - Index name (optional)
47
- * @param meta.unique - Whether it is a unique index
48
- * @param meta.orderBy - Sort order per column
49
- * @param meta.description - Index description
44
+ * @param meta - Index 메타데이터
45
+ * @param meta.columns - Index column 배열
46
+ * @param meta.name - Index 이름 (선택)
47
+ * @param meta.unique - 유니크 index 여부
48
+ * @param meta.orderBy - column별 정렬 순서
49
+ * @param meta.description - Index 설명
50
50
  */
51
51
  constructor(meta: {
52
52
  columns: TKeys;
@@ -58,10 +58,10 @@ export declare class IndexBuilder<TKeys extends string[]> {
58
58
  description?: string;
59
59
  });
60
60
  /**
61
- * Index set name
61
+ * Index 이름 설정
62
62
  *
63
- * @param name - Index name
64
- * @returns new IndexBuilder instance
63
+ * @param name - Index 이름
64
+ * @returns IndexBuilder 인스턴스
65
65
  *
66
66
  * @example
67
67
  * ```typescript
@@ -70,9 +70,9 @@ export declare class IndexBuilder<TKeys extends string[]> {
70
70
  */
71
71
  name(name: string): IndexBuilder<TKeys>;
72
72
  /**
73
- * Unique index configuration
73
+ * 유니크 index 설정
74
74
  *
75
- * @returns new IndexBuilder instance
75
+ * @returns IndexBuilder 인스턴스
76
76
  *
77
77
  * @example
78
78
  * ```typescript
@@ -81,19 +81,19 @@ export declare class IndexBuilder<TKeys extends string[]> {
81
81
  */
82
82
  unique(): IndexBuilder<TKeys>;
83
83
  /**
84
- * Sort order configuration
84
+ * 정렬 순서 설정
85
85
  *
86
- * Specify ASC or DESC for each column
86
+ * column에 ASC 또는 DESC 지정
87
87
  *
88
- * @param orderBy - Sort order per column (must match the number of columns)
89
- * @returns new IndexBuilder instance
88
+ * @param orderBy - column별 정렬 순서 (column 수와 일치해야 )
89
+ * @returns IndexBuilder 인스턴스
90
90
  *
91
91
  * @example
92
92
  * ```typescript
93
- * // Single column
93
+ * // 단일 column
94
94
  * i.index("createdAt").orderBy("DESC")
95
95
  *
96
- * // Composite column
96
+ * // 복합 column
97
97
  * i.index("status", "createdAt").orderBy("ASC", "DESC")
98
98
  * ```
99
99
  */
@@ -101,20 +101,20 @@ export declare class IndexBuilder<TKeys extends string[]> {
101
101
  [K in keyof TKeys]: "ASC" | "DESC";
102
102
  }): IndexBuilder<TKeys>;
103
103
  /**
104
- * Index set description
104
+ * Index 설명 설정
105
105
  *
106
- * @param description - Index description (used as DDL Comment)
107
- * @returns new IndexBuilder instance
106
+ * @param description - Index 설명 (DDL Comment로 사용됨)
107
+ * @returns IndexBuilder 인스턴스
108
108
  */
109
109
  description(description: string): IndexBuilder<TKeys>;
110
110
  }
111
111
  /**
112
- * Index builder factory creation
112
+ * Index builder factory 생성
113
113
  *
114
- * Index factory used in TableBuilder.indexes()
114
+ * TableBuilder.indexes()에서 사용하는 index factory
115
115
  *
116
- * @template TColumnKey - Table column key type
117
- * @returns Object containing Index creation methods
116
+ * @template TColumnKey - Table column key 타입
117
+ * @returns Index 생성 메서드를 포함하는 객체
118
118
  *
119
119
  * @example
120
120
  * ```typescript
@@ -130,20 +130,20 @@ export declare class IndexBuilder<TKeys extends string[]> {
130
130
  * ]);
131
131
  * ```
132
132
  *
133
- * @see {@link IndexBuilder} Index builder class
133
+ * @see {@link IndexBuilder} Index builder 클래스
134
134
  */
135
135
  export declare function createIndexFactory<TColumnKey extends string>(): {
136
136
  /**
137
- * Index Generate
137
+ * Index 생성
138
138
  *
139
- * @template TKeys - Index column key array type
140
- * @param columns - Index column names
141
- * @returns IndexBuilder instance
139
+ * @template TKeys - Index column key 배열 타입
140
+ * @param columns - Index column 이름들
141
+ * @returns IndexBuilder 인스턴스
142
142
  *
143
143
  * @example
144
144
  * ```typescript
145
- * i.index("email") // Single column
146
- * i.index("name", "email") // Composite column
145
+ * i.index("email") // 단일 column
146
+ * i.index("name", "email") // 복합 column
147
147
  * ```
148
148
  */
149
149
  index<TKeys extends TColumnKey[]>(...columns: TKeys): IndexBuilder<TKeys>;