@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.
Files changed (246) hide show
  1. package/README.md +90 -147
  2. package/dist/create-db-context.d.ts +10 -10
  3. package/dist/create-db-context.js +312 -276
  4. package/dist/create-db-context.js.map +1 -6
  5. package/dist/ddl/column-ddl.d.ts +4 -4
  6. package/dist/ddl/column-ddl.js +41 -35
  7. package/dist/ddl/column-ddl.js.map +1 -6
  8. package/dist/ddl/initialize.d.ts +17 -17
  9. package/dist/ddl/initialize.js +200 -142
  10. package/dist/ddl/initialize.js.map +1 -6
  11. package/dist/ddl/relation-ddl.d.ts +6 -6
  12. package/dist/ddl/relation-ddl.js +55 -48
  13. package/dist/ddl/relation-ddl.js.map +1 -6
  14. package/dist/ddl/schema-ddl.d.ts +4 -4
  15. package/dist/ddl/schema-ddl.js +21 -15
  16. package/dist/ddl/schema-ddl.js.map +1 -6
  17. package/dist/ddl/table-ddl.d.ts +20 -20
  18. package/dist/ddl/table-ddl.js +139 -93
  19. package/dist/ddl/table-ddl.js.map +1 -6
  20. package/dist/define-db-context.js +10 -13
  21. package/dist/define-db-context.js.map +1 -6
  22. package/dist/errors/db-transaction-error.d.ts +15 -15
  23. package/dist/errors/db-transaction-error.d.ts.map +1 -1
  24. package/dist/errors/db-transaction-error.js +53 -19
  25. package/dist/errors/db-transaction-error.js.map +1 -6
  26. package/dist/exec/executable.d.ts +23 -23
  27. package/dist/exec/executable.js +94 -40
  28. package/dist/exec/executable.js.map +1 -6
  29. package/dist/exec/queryable.d.ts +97 -97
  30. package/dist/exec/queryable.js +1310 -1204
  31. package/dist/exec/queryable.js.map +1 -6
  32. package/dist/exec/search-parser.d.ts +31 -31
  33. package/dist/exec/search-parser.d.ts.map +1 -1
  34. package/dist/exec/search-parser.js +158 -59
  35. package/dist/exec/search-parser.js.map +1 -6
  36. package/dist/expr/expr-unit.d.ts +4 -4
  37. package/dist/expr/expr-unit.js +24 -18
  38. package/dist/expr/expr-unit.js.map +1 -6
  39. package/dist/expr/expr.d.ts +108 -108
  40. package/dist/expr/expr.js +1872 -1844
  41. package/dist/expr/expr.js.map +1 -6
  42. package/dist/index.js +23 -1
  43. package/dist/index.js.map +1 -6
  44. package/dist/models/system-migration.js +7 -7
  45. package/dist/models/system-migration.js.map +1 -6
  46. package/dist/query-builder/base/expr-renderer-base.d.ts +10 -10
  47. package/dist/query-builder/base/expr-renderer-base.js +27 -21
  48. package/dist/query-builder/base/expr-renderer-base.js.map +1 -6
  49. package/dist/query-builder/base/query-builder-base.d.ts +21 -21
  50. package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
  51. package/dist/query-builder/base/query-builder-base.js +90 -80
  52. package/dist/query-builder/base/query-builder-base.js.map +1 -6
  53. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +5 -5
  54. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
  55. package/dist/query-builder/mssql/mssql-expr-renderer.js +447 -420
  56. package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -6
  57. package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
  58. package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
  59. package/dist/query-builder/mssql/mssql-query-builder.js +483 -443
  60. package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -6
  61. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +5 -5
  62. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
  63. package/dist/query-builder/mysql/mysql-expr-renderer.js +451 -419
  64. package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -6
  65. package/dist/query-builder/mysql/mysql-query-builder.d.ts +10 -10
  66. package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
  67. package/dist/query-builder/mysql/mysql-query-builder.js +570 -479
  68. package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -6
  69. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +5 -5
  70. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
  71. package/dist/query-builder/postgresql/postgresql-expr-renderer.js +449 -422
  72. package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -6
  73. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +8 -8
  74. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
  75. package/dist/query-builder/postgresql/postgresql-query-builder.js +511 -460
  76. package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -6
  77. package/dist/query-builder/query-builder.d.ts +1 -1
  78. package/dist/query-builder/query-builder.js +13 -13
  79. package/dist/query-builder/query-builder.js.map +1 -6
  80. package/dist/schema/factory/column-builder.d.ts +84 -84
  81. package/dist/schema/factory/column-builder.js +248 -185
  82. package/dist/schema/factory/column-builder.js.map +1 -6
  83. package/dist/schema/factory/index-builder.d.ts +38 -38
  84. package/dist/schema/factory/index-builder.js +144 -85
  85. package/dist/schema/factory/index-builder.js.map +1 -6
  86. package/dist/schema/factory/relation-builder.d.ts +99 -99
  87. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  88. package/dist/schema/factory/relation-builder.js +274 -136
  89. package/dist/schema/factory/relation-builder.js.map +1 -6
  90. package/dist/schema/procedure-builder.d.ts +51 -51
  91. package/dist/schema/procedure-builder.d.ts.map +1 -1
  92. package/dist/schema/procedure-builder.js +205 -131
  93. package/dist/schema/procedure-builder.js.map +1 -6
  94. package/dist/schema/table-builder.d.ts +55 -55
  95. package/dist/schema/table-builder.d.ts.map +1 -1
  96. package/dist/schema/table-builder.js +274 -205
  97. package/dist/schema/table-builder.js.map +1 -6
  98. package/dist/schema/view-builder.d.ts +44 -44
  99. package/dist/schema/view-builder.d.ts.map +1 -1
  100. package/dist/schema/view-builder.js +189 -116
  101. package/dist/schema/view-builder.js.map +1 -6
  102. package/dist/types/column.d.ts +21 -21
  103. package/dist/types/column.js +60 -30
  104. package/dist/types/column.js.map +1 -6
  105. package/dist/types/db-context-def.d.ts +9 -9
  106. package/dist/types/db-context-def.js +2 -1
  107. package/dist/types/db-context-def.js.map +1 -6
  108. package/dist/types/db.d.ts +47 -47
  109. package/dist/types/db.js +15 -5
  110. package/dist/types/db.js.map +1 -6
  111. package/dist/types/expr.d.ts +81 -81
  112. package/dist/types/expr.d.ts.map +1 -1
  113. package/dist/types/expr.js +3 -1
  114. package/dist/types/expr.js.map +1 -6
  115. package/dist/types/query-def.d.ts +46 -46
  116. package/dist/types/query-def.d.ts.map +1 -1
  117. package/dist/types/query-def.js +31 -24
  118. package/dist/types/query-def.js.map +1 -6
  119. package/dist/utils/result-parser.d.ts +11 -11
  120. package/dist/utils/result-parser.js +362 -221
  121. package/dist/utils/result-parser.js.map +1 -6
  122. package/docs/core.md +117 -145
  123. package/docs/expression.md +186 -203
  124. package/docs/query-builder.md +75 -42
  125. package/docs/queryable.md +189 -151
  126. package/docs/schema-builders.md +172 -283
  127. package/docs/types.md +229 -173
  128. package/package.json +7 -5
  129. package/src/create-db-context.ts +31 -31
  130. package/src/ddl/column-ddl.ts +4 -4
  131. package/src/ddl/initialize.ts +38 -38
  132. package/src/ddl/relation-ddl.ts +6 -6
  133. package/src/ddl/schema-ddl.ts +4 -4
  134. package/src/ddl/table-ddl.ts +24 -24
  135. package/src/errors/db-transaction-error.ts +13 -13
  136. package/src/exec/executable.ts +25 -25
  137. package/src/exec/queryable.ts +152 -152
  138. package/src/exec/search-parser.ts +50 -50
  139. package/src/expr/expr-unit.ts +4 -4
  140. package/src/expr/expr.ts +118 -118
  141. package/src/index.ts +8 -8
  142. package/src/models/system-migration.ts +1 -1
  143. package/src/query-builder/base/expr-renderer-base.ts +21 -21
  144. package/src/query-builder/base/query-builder-base.ts +33 -33
  145. package/src/query-builder/mssql/mssql-expr-renderer.ts +28 -28
  146. package/src/query-builder/mssql/mssql-query-builder.ts +37 -37
  147. package/src/query-builder/mysql/mysql-expr-renderer.ts +29 -29
  148. package/src/query-builder/mysql/mysql-query-builder.ts +70 -70
  149. package/src/query-builder/postgresql/postgresql-expr-renderer.ts +22 -22
  150. package/src/query-builder/postgresql/postgresql-query-builder.ts +54 -54
  151. package/src/query-builder/query-builder.ts +1 -1
  152. package/src/schema/factory/column-builder.ts +86 -86
  153. package/src/schema/factory/index-builder.ts +38 -38
  154. package/src/schema/factory/relation-builder.ts +102 -102
  155. package/src/schema/procedure-builder.ts +52 -52
  156. package/src/schema/table-builder.ts +56 -56
  157. package/src/schema/view-builder.ts +47 -47
  158. package/src/types/column.ts +24 -24
  159. package/src/types/db-context-def.ts +15 -15
  160. package/src/types/db.ts +50 -50
  161. package/src/types/expr.ts +103 -103
  162. package/src/types/query-def.ts +50 -50
  163. package/src/utils/result-parser.ts +88 -88
  164. package/docs/utilities.md +0 -27
  165. package/tests/db-context/create-db-context.spec.ts +0 -193
  166. package/tests/db-context/define-db-context.spec.ts +0 -17
  167. package/tests/ddl/basic.expected.ts +0 -341
  168. package/tests/ddl/basic.spec.ts +0 -557
  169. package/tests/ddl/column-builder.expected.ts +0 -310
  170. package/tests/ddl/column-builder.spec.ts +0 -525
  171. package/tests/ddl/index-builder.expected.ts +0 -38
  172. package/tests/ddl/index-builder.spec.ts +0 -148
  173. package/tests/ddl/procedure-builder.expected.ts +0 -52
  174. package/tests/ddl/procedure-builder.spec.ts +0 -128
  175. package/tests/ddl/relation-builder.expected.ts +0 -36
  176. package/tests/ddl/relation-builder.spec.ts +0 -171
  177. package/tests/ddl/table-builder.expected.ts +0 -113
  178. package/tests/ddl/table-builder.spec.ts +0 -399
  179. package/tests/ddl/view-builder.expected.ts +0 -38
  180. package/tests/ddl/view-builder.spec.ts +0 -116
  181. package/tests/dml/delete.expected.ts +0 -96
  182. package/tests/dml/delete.spec.ts +0 -127
  183. package/tests/dml/insert.expected.ts +0 -192
  184. package/tests/dml/insert.spec.ts +0 -210
  185. package/tests/dml/update.expected.ts +0 -176
  186. package/tests/dml/update.spec.ts +0 -222
  187. package/tests/dml/upsert.expected.ts +0 -215
  188. package/tests/dml/upsert.spec.ts +0 -190
  189. package/tests/errors/queryable-errors.spec.ts +0 -126
  190. package/tests/escape.spec.ts +0 -59
  191. package/tests/examples/pivot.expected.ts +0 -211
  192. package/tests/examples/pivot.spec.ts +0 -200
  193. package/tests/examples/sampling.expected.ts +0 -69
  194. package/tests/examples/sampling.spec.ts +0 -42
  195. package/tests/examples/unpivot.expected.ts +0 -120
  196. package/tests/examples/unpivot.spec.ts +0 -161
  197. package/tests/exec/search-parser.spec.ts +0 -267
  198. package/tests/executable/basic.expected.ts +0 -18
  199. package/tests/executable/basic.spec.ts +0 -54
  200. package/tests/expr/comparison.expected.ts +0 -282
  201. package/tests/expr/comparison.spec.ts +0 -334
  202. package/tests/expr/conditional.expected.ts +0 -134
  203. package/tests/expr/conditional.spec.ts +0 -249
  204. package/tests/expr/date.expected.ts +0 -332
  205. package/tests/expr/date.spec.ts +0 -459
  206. package/tests/expr/math.expected.ts +0 -62
  207. package/tests/expr/math.spec.ts +0 -59
  208. package/tests/expr/string.expected.ts +0 -218
  209. package/tests/expr/string.spec.ts +0 -300
  210. package/tests/expr/utility.expected.ts +0 -147
  211. package/tests/expr/utility.spec.ts +0 -155
  212. package/tests/select/basic.expected.ts +0 -322
  213. package/tests/select/basic.spec.ts +0 -433
  214. package/tests/select/filter.expected.ts +0 -357
  215. package/tests/select/filter.spec.ts +0 -954
  216. package/tests/select/group.expected.ts +0 -169
  217. package/tests/select/group.spec.ts +0 -159
  218. package/tests/select/join.expected.ts +0 -582
  219. package/tests/select/join.spec.ts +0 -692
  220. package/tests/select/order.expected.ts +0 -150
  221. package/tests/select/order.spec.ts +0 -140
  222. package/tests/select/recursive-cte.expected.ts +0 -244
  223. package/tests/select/recursive-cte.spec.ts +0 -514
  224. package/tests/select/result-meta.spec.ts +0 -270
  225. package/tests/select/subquery.expected.ts +0 -363
  226. package/tests/select/subquery.spec.ts +0 -441
  227. package/tests/select/view.expected.ts +0 -155
  228. package/tests/select/view.spec.ts +0 -235
  229. package/tests/select/window.expected.ts +0 -345
  230. package/tests/select/window.spec.ts +0 -433
  231. package/tests/setup/MockExecutor.ts +0 -18
  232. package/tests/setup/TestDbContext.ts +0 -59
  233. package/tests/setup/models/Company.ts +0 -13
  234. package/tests/setup/models/Employee.ts +0 -10
  235. package/tests/setup/models/MonthlySales.ts +0 -11
  236. package/tests/setup/models/Post.ts +0 -16
  237. package/tests/setup/models/Sales.ts +0 -10
  238. package/tests/setup/models/User.ts +0 -19
  239. package/tests/setup/procedure/GetAllUsers.ts +0 -9
  240. package/tests/setup/procedure/GetUserById.ts +0 -12
  241. package/tests/setup/test-utils.ts +0 -72
  242. package/tests/setup/views/ActiveUsers.ts +0 -8
  243. package/tests/setup/views/UserSummary.ts +0 -11
  244. package/tests/types/nullable-queryable-record.spec.ts +0 -97
  245. package/tests/utils/result-parser-perf.spec.ts +0 -143
  246. 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":"AAKA,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,aAAa;IAIH;IAHrB;;OAEG;IACH,YAAqB,IAAW;QAAX,SAAI,GAAJ,IAAI,CAAO;IAAG,CAAC;IAEpC;;;;;;;;;;;OAWG;IACH,aAAa;QACX,OAAO,IAAI,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,QAAQ;QACN,OAAO,IAAI,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CACL,KAAa;QAEb,OAAO,IAAI,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;OAUG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;CACF;AAED,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL;;;;WAIG;QACH,GAAG;YACD,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED;;;;WAIG;QACH,MAAM;YACJ,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED;;;;WAIG;QACH,KAAK;YACH,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED;;;;WAIG;QACH,MAAM;YACJ,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED;;;;;;;;;;;WAWG;QACH,OAAO,CACL,SAAiB,EACjB,KAAc;YAKd,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QAED;;;;;;;;;;WAUG;QACH,OAAO,CACL,MAAc;YAEd,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;QAED;;;;;;;;;;WAUG;QACH,IAAI,CACF,MAAc;YAEd,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED;;;;WAIG;QACH,IAAI;YACF,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED;;;;;;WAMG;QACH,MAAM;YACJ,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED;;;;;;WAMG;QACH,OAAO;YACL,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED;;;;WAIG;QACH,QAAQ;YACN,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;QAED;;;;WAIG;QACH,IAAI;YACF,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED;;;;WAIG;QACH,IAAI;YACF,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QAED;;;;;;WAMG;QACH,IAAI;YACF,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -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>;