drizzle-orm 0.36.0 → 0.36.1-a24b871

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 (325) hide show
  1. package/README.md +8 -8
  2. package/column-builder.cjs.map +1 -1
  3. package/column-builder.d.cts +9 -4
  4. package/column-builder.d.ts +9 -4
  5. package/column-builder.js.map +1 -1
  6. package/expo-sqlite/driver.cjs.map +1 -1
  7. package/expo-sqlite/driver.d.cts +1 -1
  8. package/expo-sqlite/driver.d.ts +1 -1
  9. package/expo-sqlite/driver.js.map +1 -1
  10. package/expo-sqlite/query.cjs +2 -2
  11. package/expo-sqlite/query.cjs.map +1 -1
  12. package/expo-sqlite/query.js +1 -1
  13. package/expo-sqlite/query.js.map +1 -1
  14. package/expo-sqlite/session.cjs.map +1 -1
  15. package/expo-sqlite/session.d.cts +1 -1
  16. package/expo-sqlite/session.d.ts +1 -1
  17. package/expo-sqlite/session.js.map +1 -1
  18. package/mysql-core/columns/bigint.cjs.map +1 -1
  19. package/mysql-core/columns/bigint.d.cts +0 -2
  20. package/mysql-core/columns/bigint.d.ts +0 -2
  21. package/mysql-core/columns/bigint.js.map +1 -1
  22. package/mysql-core/columns/binary.cjs.map +1 -1
  23. package/mysql-core/columns/binary.d.cts +0 -1
  24. package/mysql-core/columns/binary.d.ts +0 -1
  25. package/mysql-core/columns/binary.js.map +1 -1
  26. package/mysql-core/columns/boolean.cjs.map +1 -1
  27. package/mysql-core/columns/boolean.d.cts +0 -1
  28. package/mysql-core/columns/boolean.d.ts +0 -1
  29. package/mysql-core/columns/boolean.js.map +1 -1
  30. package/mysql-core/columns/char.cjs.map +1 -1
  31. package/mysql-core/columns/char.d.cts +0 -1
  32. package/mysql-core/columns/char.d.ts +0 -1
  33. package/mysql-core/columns/char.js.map +1 -1
  34. package/mysql-core/columns/common.cjs.map +1 -1
  35. package/mysql-core/columns/common.d.cts +3 -1
  36. package/mysql-core/columns/common.d.ts +3 -1
  37. package/mysql-core/columns/common.js.map +1 -1
  38. package/mysql-core/columns/custom.cjs.map +1 -1
  39. package/mysql-core/columns/custom.d.cts +0 -1
  40. package/mysql-core/columns/custom.d.ts +0 -1
  41. package/mysql-core/columns/custom.js.map +1 -1
  42. package/mysql-core/columns/date.cjs.map +1 -1
  43. package/mysql-core/columns/date.d.cts +0 -2
  44. package/mysql-core/columns/date.d.ts +0 -2
  45. package/mysql-core/columns/date.js.map +1 -1
  46. package/mysql-core/columns/datetime.cjs.map +1 -1
  47. package/mysql-core/columns/datetime.d.cts +0 -2
  48. package/mysql-core/columns/datetime.d.ts +0 -2
  49. package/mysql-core/columns/datetime.js.map +1 -1
  50. package/mysql-core/columns/decimal.cjs +12 -7
  51. package/mysql-core/columns/decimal.cjs.map +1 -1
  52. package/mysql-core/columns/decimal.d.cts +3 -2
  53. package/mysql-core/columns/decimal.d.ts +3 -2
  54. package/mysql-core/columns/decimal.js +12 -7
  55. package/mysql-core/columns/decimal.js.map +1 -1
  56. package/mysql-core/columns/double.cjs +7 -3
  57. package/mysql-core/columns/double.cjs.map +1 -1
  58. package/mysql-core/columns/double.d.cts +4 -3
  59. package/mysql-core/columns/double.d.ts +4 -3
  60. package/mysql-core/columns/double.js +7 -3
  61. package/mysql-core/columns/double.js.map +1 -1
  62. package/mysql-core/columns/enum.cjs.map +1 -1
  63. package/mysql-core/columns/enum.d.cts +0 -1
  64. package/mysql-core/columns/enum.d.ts +0 -1
  65. package/mysql-core/columns/enum.js.map +1 -1
  66. package/mysql-core/columns/float.cjs +20 -4
  67. package/mysql-core/columns/float.cjs.map +1 -1
  68. package/mysql-core/columns/float.d.cts +13 -5
  69. package/mysql-core/columns/float.d.ts +13 -5
  70. package/mysql-core/columns/float.js +20 -4
  71. package/mysql-core/columns/float.js.map +1 -1
  72. package/mysql-core/columns/int.cjs.map +1 -1
  73. package/mysql-core/columns/int.d.cts +0 -1
  74. package/mysql-core/columns/int.d.ts +0 -1
  75. package/mysql-core/columns/int.js.map +1 -1
  76. package/mysql-core/columns/json.cjs.map +1 -1
  77. package/mysql-core/columns/json.d.cts +0 -1
  78. package/mysql-core/columns/json.d.ts +0 -1
  79. package/mysql-core/columns/json.js.map +1 -1
  80. package/mysql-core/columns/mediumint.cjs.map +1 -1
  81. package/mysql-core/columns/mediumint.d.cts +0 -1
  82. package/mysql-core/columns/mediumint.d.ts +0 -1
  83. package/mysql-core/columns/mediumint.js.map +1 -1
  84. package/mysql-core/columns/real.cjs.map +1 -1
  85. package/mysql-core/columns/real.d.cts +0 -1
  86. package/mysql-core/columns/real.d.ts +0 -1
  87. package/mysql-core/columns/real.js.map +1 -1
  88. package/mysql-core/columns/serial.cjs.map +1 -1
  89. package/mysql-core/columns/serial.d.cts +0 -1
  90. package/mysql-core/columns/serial.d.ts +0 -1
  91. package/mysql-core/columns/serial.js.map +1 -1
  92. package/mysql-core/columns/smallint.cjs.map +1 -1
  93. package/mysql-core/columns/smallint.d.cts +0 -1
  94. package/mysql-core/columns/smallint.d.ts +0 -1
  95. package/mysql-core/columns/smallint.js.map +1 -1
  96. package/mysql-core/columns/text.cjs.map +1 -1
  97. package/mysql-core/columns/text.d.cts +0 -1
  98. package/mysql-core/columns/text.d.ts +0 -1
  99. package/mysql-core/columns/text.js.map +1 -1
  100. package/mysql-core/columns/time.cjs.map +1 -1
  101. package/mysql-core/columns/time.d.cts +0 -1
  102. package/mysql-core/columns/time.d.ts +0 -1
  103. package/mysql-core/columns/time.js.map +1 -1
  104. package/mysql-core/columns/timestamp.cjs.map +1 -1
  105. package/mysql-core/columns/timestamp.d.cts +0 -2
  106. package/mysql-core/columns/timestamp.d.ts +0 -2
  107. package/mysql-core/columns/timestamp.js.map +1 -1
  108. package/mysql-core/columns/tinyint.cjs.map +1 -1
  109. package/mysql-core/columns/tinyint.d.cts +0 -1
  110. package/mysql-core/columns/tinyint.d.ts +0 -1
  111. package/mysql-core/columns/tinyint.js.map +1 -1
  112. package/mysql-core/columns/varbinary.cjs.map +1 -1
  113. package/mysql-core/columns/varbinary.d.cts +0 -1
  114. package/mysql-core/columns/varbinary.d.ts +0 -1
  115. package/mysql-core/columns/varbinary.js.map +1 -1
  116. package/mysql-core/columns/varchar.cjs.map +1 -1
  117. package/mysql-core/columns/varchar.d.cts +0 -1
  118. package/mysql-core/columns/varchar.d.ts +0 -1
  119. package/mysql-core/columns/varchar.js.map +1 -1
  120. package/mysql-core/columns/year.cjs.map +1 -1
  121. package/mysql-core/columns/year.d.cts +0 -1
  122. package/mysql-core/columns/year.d.ts +0 -1
  123. package/mysql-core/columns/year.js.map +1 -1
  124. package/mysql-core/query-builders/insert.cjs +2 -2
  125. package/mysql-core/query-builders/insert.cjs.map +1 -1
  126. package/mysql-core/query-builders/insert.d.cts +1 -1
  127. package/mysql-core/query-builders/insert.d.ts +1 -1
  128. package/mysql-core/query-builders/insert.js +3 -3
  129. package/mysql-core/query-builders/insert.js.map +1 -1
  130. package/mysql-core/query-builders/select.cjs.map +1 -1
  131. package/mysql-core/query-builders/select.d.cts +3 -3
  132. package/mysql-core/query-builders/select.d.ts +3 -3
  133. package/mysql-core/query-builders/select.js.map +1 -1
  134. package/neon-http/driver.cjs +1 -1
  135. package/neon-http/driver.cjs.map +1 -1
  136. package/neon-http/driver.js +1 -1
  137. package/neon-http/driver.js.map +1 -1
  138. package/operations.cjs.map +1 -1
  139. package/operations.d.cts +6 -4
  140. package/operations.d.ts +6 -4
  141. package/package.json +3 -3
  142. package/pg-core/columns/bigint.cjs.map +1 -1
  143. package/pg-core/columns/bigint.d.cts +0 -2
  144. package/pg-core/columns/bigint.d.ts +0 -2
  145. package/pg-core/columns/bigint.js.map +1 -1
  146. package/pg-core/columns/bigserial.cjs.map +1 -1
  147. package/pg-core/columns/bigserial.d.cts +0 -2
  148. package/pg-core/columns/bigserial.d.ts +0 -2
  149. package/pg-core/columns/bigserial.js.map +1 -1
  150. package/pg-core/columns/boolean.cjs.map +1 -1
  151. package/pg-core/columns/boolean.d.cts +0 -1
  152. package/pg-core/columns/boolean.d.ts +0 -1
  153. package/pg-core/columns/boolean.js.map +1 -1
  154. package/pg-core/columns/char.cjs.map +1 -1
  155. package/pg-core/columns/char.d.cts +0 -1
  156. package/pg-core/columns/char.d.ts +0 -1
  157. package/pg-core/columns/char.js.map +1 -1
  158. package/pg-core/columns/cidr.cjs.map +1 -1
  159. package/pg-core/columns/cidr.d.cts +0 -1
  160. package/pg-core/columns/cidr.d.ts +0 -1
  161. package/pg-core/columns/cidr.js.map +1 -1
  162. package/pg-core/columns/common.cjs.map +1 -1
  163. package/pg-core/columns/common.d.cts +3 -1
  164. package/pg-core/columns/common.d.ts +3 -1
  165. package/pg-core/columns/common.js.map +1 -1
  166. package/pg-core/columns/custom.cjs.map +1 -1
  167. package/pg-core/columns/custom.d.cts +0 -1
  168. package/pg-core/columns/custom.d.ts +0 -1
  169. package/pg-core/columns/custom.js.map +1 -1
  170. package/pg-core/columns/date.cjs.map +1 -1
  171. package/pg-core/columns/date.d.cts +0 -2
  172. package/pg-core/columns/date.d.ts +0 -2
  173. package/pg-core/columns/date.js.map +1 -1
  174. package/pg-core/columns/double-precision.cjs.map +1 -1
  175. package/pg-core/columns/double-precision.d.cts +0 -1
  176. package/pg-core/columns/double-precision.d.ts +0 -1
  177. package/pg-core/columns/double-precision.js.map +1 -1
  178. package/pg-core/columns/enum.cjs.map +1 -1
  179. package/pg-core/columns/enum.d.cts +0 -1
  180. package/pg-core/columns/enum.d.ts +0 -1
  181. package/pg-core/columns/enum.js.map +1 -1
  182. package/pg-core/columns/inet.cjs.map +1 -1
  183. package/pg-core/columns/inet.d.cts +0 -1
  184. package/pg-core/columns/inet.d.ts +0 -1
  185. package/pg-core/columns/inet.js.map +1 -1
  186. package/pg-core/columns/integer.cjs.map +1 -1
  187. package/pg-core/columns/integer.d.cts +1 -3
  188. package/pg-core/columns/integer.d.ts +1 -3
  189. package/pg-core/columns/integer.js.map +1 -1
  190. package/pg-core/columns/interval.cjs.map +1 -1
  191. package/pg-core/columns/interval.d.cts +0 -1
  192. package/pg-core/columns/interval.d.ts +0 -1
  193. package/pg-core/columns/interval.js.map +1 -1
  194. package/pg-core/columns/json.cjs.map +1 -1
  195. package/pg-core/columns/json.d.cts +0 -1
  196. package/pg-core/columns/json.d.ts +0 -1
  197. package/pg-core/columns/json.js.map +1 -1
  198. package/pg-core/columns/jsonb.cjs.map +1 -1
  199. package/pg-core/columns/jsonb.d.cts +0 -1
  200. package/pg-core/columns/jsonb.d.ts +0 -1
  201. package/pg-core/columns/jsonb.js.map +1 -1
  202. package/pg-core/columns/line.cjs.map +1 -1
  203. package/pg-core/columns/line.d.cts +0 -2
  204. package/pg-core/columns/line.d.ts +0 -2
  205. package/pg-core/columns/line.js.map +1 -1
  206. package/pg-core/columns/macaddr.cjs.map +1 -1
  207. package/pg-core/columns/macaddr.d.cts +0 -1
  208. package/pg-core/columns/macaddr.d.ts +0 -1
  209. package/pg-core/columns/macaddr.js.map +1 -1
  210. package/pg-core/columns/macaddr8.cjs.map +1 -1
  211. package/pg-core/columns/macaddr8.d.cts +0 -1
  212. package/pg-core/columns/macaddr8.d.ts +0 -1
  213. package/pg-core/columns/macaddr8.js.map +1 -1
  214. package/pg-core/columns/numeric.cjs.map +1 -1
  215. package/pg-core/columns/numeric.d.cts +0 -1
  216. package/pg-core/columns/numeric.d.ts +0 -1
  217. package/pg-core/columns/numeric.js.map +1 -1
  218. package/pg-core/columns/point.cjs.map +1 -1
  219. package/pg-core/columns/point.d.cts +0 -2
  220. package/pg-core/columns/point.d.ts +0 -2
  221. package/pg-core/columns/point.js.map +1 -1
  222. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  223. package/pg-core/columns/postgis_extension/geometry.d.cts +0 -2
  224. package/pg-core/columns/postgis_extension/geometry.d.ts +0 -2
  225. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  226. package/pg-core/columns/real.cjs.map +1 -1
  227. package/pg-core/columns/real.d.cts +0 -1
  228. package/pg-core/columns/real.d.ts +0 -1
  229. package/pg-core/columns/real.js.map +1 -1
  230. package/pg-core/columns/serial.cjs.map +1 -1
  231. package/pg-core/columns/serial.d.cts +0 -1
  232. package/pg-core/columns/serial.d.ts +0 -1
  233. package/pg-core/columns/serial.js.map +1 -1
  234. package/pg-core/columns/smallint.cjs.map +1 -1
  235. package/pg-core/columns/smallint.d.cts +0 -1
  236. package/pg-core/columns/smallint.d.ts +0 -1
  237. package/pg-core/columns/smallint.js.map +1 -1
  238. package/pg-core/columns/smallserial.cjs.map +1 -1
  239. package/pg-core/columns/smallserial.d.cts +0 -1
  240. package/pg-core/columns/smallserial.d.ts +0 -1
  241. package/pg-core/columns/smallserial.js.map +1 -1
  242. package/pg-core/columns/text.cjs.map +1 -1
  243. package/pg-core/columns/text.d.cts +0 -1
  244. package/pg-core/columns/text.d.ts +0 -1
  245. package/pg-core/columns/text.js.map +1 -1
  246. package/pg-core/columns/time.cjs.map +1 -1
  247. package/pg-core/columns/time.d.cts +0 -1
  248. package/pg-core/columns/time.d.ts +0 -1
  249. package/pg-core/columns/time.js.map +1 -1
  250. package/pg-core/columns/timestamp.cjs.map +1 -1
  251. package/pg-core/columns/timestamp.d.cts +0 -2
  252. package/pg-core/columns/timestamp.d.ts +0 -2
  253. package/pg-core/columns/timestamp.js.map +1 -1
  254. package/pg-core/columns/uuid.cjs.map +1 -1
  255. package/pg-core/columns/uuid.d.cts +0 -1
  256. package/pg-core/columns/uuid.d.ts +0 -1
  257. package/pg-core/columns/uuid.js.map +1 -1
  258. package/pg-core/columns/varchar.cjs.map +1 -1
  259. package/pg-core/columns/varchar.d.cts +0 -1
  260. package/pg-core/columns/varchar.d.ts +0 -1
  261. package/pg-core/columns/varchar.js.map +1 -1
  262. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  263. package/pg-core/columns/vector_extension/bit.d.cts +0 -1
  264. package/pg-core/columns/vector_extension/bit.d.ts +0 -1
  265. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  266. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  267. package/pg-core/columns/vector_extension/halfvec.d.cts +0 -1
  268. package/pg-core/columns/vector_extension/halfvec.d.ts +0 -1
  269. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  270. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  271. package/pg-core/columns/vector_extension/sparsevec.d.cts +0 -1
  272. package/pg-core/columns/vector_extension/sparsevec.d.ts +0 -1
  273. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  274. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  275. package/pg-core/columns/vector_extension/vector.d.cts +0 -1
  276. package/pg-core/columns/vector_extension/vector.d.ts +0 -1
  277. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  278. package/sql/expressions/conditions.cjs.map +1 -1
  279. package/sql/expressions/conditions.d.cts +4 -4
  280. package/sql/expressions/conditions.d.ts +4 -4
  281. package/sql/expressions/conditions.js.map +1 -1
  282. package/sql/sql.cjs +5 -1
  283. package/sql/sql.cjs.map +1 -1
  284. package/sql/sql.js +6 -2
  285. package/sql/sql.js.map +1 -1
  286. package/sqlite-core/columns/blob.cjs +2 -2
  287. package/sqlite-core/columns/blob.cjs.map +1 -1
  288. package/sqlite-core/columns/blob.d.cts +2 -5
  289. package/sqlite-core/columns/blob.d.ts +2 -5
  290. package/sqlite-core/columns/blob.js +2 -2
  291. package/sqlite-core/columns/blob.js.map +1 -1
  292. package/sqlite-core/columns/common.cjs.map +1 -1
  293. package/sqlite-core/columns/common.d.cts +3 -1
  294. package/sqlite-core/columns/common.d.ts +3 -1
  295. package/sqlite-core/columns/common.js.map +1 -1
  296. package/sqlite-core/columns/custom.cjs.map +1 -1
  297. package/sqlite-core/columns/custom.d.cts +0 -1
  298. package/sqlite-core/columns/custom.d.ts +0 -1
  299. package/sqlite-core/columns/custom.js.map +1 -1
  300. package/sqlite-core/columns/integer.cjs.map +1 -1
  301. package/sqlite-core/columns/integer.d.cts +0 -3
  302. package/sqlite-core/columns/integer.d.ts +0 -3
  303. package/sqlite-core/columns/integer.js.map +1 -1
  304. package/sqlite-core/columns/numeric.cjs.map +1 -1
  305. package/sqlite-core/columns/numeric.d.cts +0 -1
  306. package/sqlite-core/columns/numeric.d.ts +0 -1
  307. package/sqlite-core/columns/numeric.js.map +1 -1
  308. package/sqlite-core/columns/real.cjs.map +1 -1
  309. package/sqlite-core/columns/real.d.cts +0 -1
  310. package/sqlite-core/columns/real.d.ts +0 -1
  311. package/sqlite-core/columns/real.js.map +1 -1
  312. package/sqlite-core/columns/text.cjs.map +1 -1
  313. package/sqlite-core/columns/text.d.cts +0 -1
  314. package/sqlite-core/columns/text.d.ts +0 -1
  315. package/sqlite-core/columns/text.js.map +1 -1
  316. package/supabase/rls.cjs +8 -1
  317. package/supabase/rls.cjs.map +1 -1
  318. package/supabase/rls.d.cts +112 -0
  319. package/supabase/rls.d.ts +112 -0
  320. package/supabase/rls.js +9 -2
  321. package/supabase/rls.js.map +1 -1
  322. package/version.cjs +1 -1
  323. package/version.d.cts +1 -1
  324. package/version.d.ts +1 -1
  325. package/version.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/binary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBinaryBuilderInitial<TName extends string> = MySqlBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinaryBuilder';\n\n\tconstructor(name: T['name'], length: number | undefined) {\n\t\tsuper(name, 'string', 'MySqlBinary');\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBinary<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlBinary<T extends ColumnBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumn<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `binary` : `binary(${this.length})`;\n\t}\n}\n\nexport interface MySqlBinaryConfig {\n\tlength?: number;\n}\n\nexport function binary(): MySqlBinaryBuilderInitial<''>;\nexport function binary(\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<''>;\nexport function binary<TName extends string>(\n\tname: TName,\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<TName>;\nexport function binary(a?: string | MySqlBinaryConfig, b: MySqlBinaryConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlBinaryConfig>(a, b);\n\treturn new MySqlBinaryBuilder(name, config.length);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAuC;AACvC,oBAAgD;AAYzC,MAAM,2BAAuF,iCAGlG;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA4B;AACxD,UAAM,MAAM,UAAU,aAAa;AACnC,SAAK,OAAO,SAAS;AAAA,EACtB;AAAA;AAAA,EAGS,MACR,OAC+C;AAC/C,WAAO,IAAI,YAA6C,OAAO,KAAK,MAA8C;AAAA,EACnH;AACD;AAEO,MAAM,oBAAyE,0BAGpF;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEzC,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,WAAW,UAAU,KAAK,MAAM;AAAA,EACpE;AACD;AAcO,SAAS,OAAO,GAAgC,IAAuB,CAAC,GAAG;AACjF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA0C,GAAG,CAAC;AACvE,SAAO,IAAI,mBAAmB,MAAM,OAAO,MAAM;AAClD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/binary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBinaryBuilderInitial<TName extends string> = MySqlBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinaryBuilder';\n\n\tconstructor(name: T['name'], length: number | undefined) {\n\t\tsuper(name, 'string', 'MySqlBinary');\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBinary<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlBinary<T extends ColumnBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumn<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `binary` : `binary(${this.length})`;\n\t}\n}\n\nexport interface MySqlBinaryConfig {\n\tlength?: number;\n}\n\nexport function binary(): MySqlBinaryBuilderInitial<''>;\nexport function binary(\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<''>;\nexport function binary<TName extends string>(\n\tname: TName,\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<TName>;\nexport function binary(a?: string | MySqlBinaryConfig, b: MySqlBinaryConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlBinaryConfig>(a, b);\n\treturn new MySqlBinaryBuilder(name, config.length);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAuC;AACvC,oBAAgD;AAWzC,MAAM,2BAAuF,iCAGlG;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA4B;AACxD,UAAM,MAAM,UAAU,aAAa;AACnC,SAAK,OAAO,SAAS;AAAA,EACtB;AAAA;AAAA,EAGS,MACR,OAC+C;AAC/C,WAAO,IAAI,YAA6C,OAAO,KAAK,MAA8C;AAAA,EACnH;AACD;AAEO,MAAM,oBAAyE,0BAGpF;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEzC,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,WAAW,UAAU,KAAK,MAAM;AAAA,EACpE;AACD;AAcO,SAAS,OAAO,GAAgC,IAAuB,CAAC,GAAG;AACjF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA0C,GAAG,CAAC;AACvE,SAAO,IAAI,mBAAmB,MAAM,OAAO,MAAM;AAClD;","names":[]}
@@ -9,7 +9,6 @@ export type MySqlBinaryBuilderInitial<TName extends string> = MySqlBinaryBuilder
9
9
  data: string;
10
10
  driverParam: string;
11
11
  enumValues: undefined;
12
- generated: undefined;
13
12
  }>;
14
13
  export declare class MySqlBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumnBuilder<T, MySqlBinaryConfig> {
15
14
  static readonly [entityKind]: string;
@@ -9,7 +9,6 @@ export type MySqlBinaryBuilderInitial<TName extends string> = MySqlBinaryBuilder
9
9
  data: string;
10
10
  driverParam: string;
11
11
  enumValues: undefined;
12
- generated: undefined;
13
12
  }>;
14
13
  export declare class MySqlBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumnBuilder<T, MySqlBinaryConfig> {
15
14
  static readonly [entityKind]: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/binary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBinaryBuilderInitial<TName extends string> = MySqlBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinaryBuilder';\n\n\tconstructor(name: T['name'], length: number | undefined) {\n\t\tsuper(name, 'string', 'MySqlBinary');\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBinary<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlBinary<T extends ColumnBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumn<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `binary` : `binary(${this.length})`;\n\t}\n}\n\nexport interface MySqlBinaryConfig {\n\tlength?: number;\n}\n\nexport function binary(): MySqlBinaryBuilderInitial<''>;\nexport function binary(\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<''>;\nexport function binary<TName extends string>(\n\tname: TName,\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<TName>;\nexport function binary(a?: string | MySqlBinaryConfig, b: MySqlBinaryConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlBinaryConfig>(a, b);\n\treturn new MySqlBinaryBuilder(name, config.length);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA8B;AACvC,SAAS,aAAa,0BAA0B;AAYzC,MAAM,2BAAuF,mBAGlG;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA4B;AACxD,UAAM,MAAM,UAAU,aAAa;AACnC,SAAK,OAAO,SAAS;AAAA,EACtB;AAAA;AAAA,EAGS,MACR,OAC+C;AAC/C,WAAO,IAAI,YAA6C,OAAO,KAAK,MAA8C;AAAA,EACnH;AACD;AAEO,MAAM,oBAAyE,YAGpF;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEzC,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,WAAW,UAAU,KAAK,MAAM;AAAA,EACpE;AACD;AAcO,SAAS,OAAO,GAAgC,IAAuB,CAAC,GAAG;AACjF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA0C,GAAG,CAAC;AACvE,SAAO,IAAI,mBAAmB,MAAM,OAAO,MAAM;AAClD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/binary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBinaryBuilderInitial<TName extends string> = MySqlBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinaryBuilder';\n\n\tconstructor(name: T['name'], length: number | undefined) {\n\t\tsuper(name, 'string', 'MySqlBinary');\n\t\tthis.config.length = length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBinary<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlBinary<T extends ColumnBaseConfig<'string', 'MySqlBinary'>> extends MySqlColumn<\n\tT,\n\tMySqlBinaryConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `binary` : `binary(${this.length})`;\n\t}\n}\n\nexport interface MySqlBinaryConfig {\n\tlength?: number;\n}\n\nexport function binary(): MySqlBinaryBuilderInitial<''>;\nexport function binary(\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<''>;\nexport function binary<TName extends string>(\n\tname: TName,\n\tconfig?: MySqlBinaryConfig,\n): MySqlBinaryBuilderInitial<TName>;\nexport function binary(a?: string | MySqlBinaryConfig, b: MySqlBinaryConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlBinaryConfig>(a, b);\n\treturn new MySqlBinaryBuilder(name, config.length);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA8B;AACvC,SAAS,aAAa,0BAA0B;AAWzC,MAAM,2BAAuF,mBAGlG;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA4B;AACxD,UAAM,MAAM,UAAU,aAAa;AACnC,SAAK,OAAO,SAAS;AAAA,EACtB;AAAA;AAAA,EAGS,MACR,OAC+C;AAC/C,WAAO,IAAI,YAA6C,OAAO,KAAK,MAA8C;AAAA,EACnH;AACD;AAEO,MAAM,oBAAyE,YAGpF;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEzC,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,WAAW,UAAU,KAAK,MAAM;AAAA,EACpE;AACD;AAcO,SAAS,OAAO,GAAgC,IAAuB,CAAC,GAAG;AACjF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA0C,GAAG,CAAC;AACvE,SAAO,IAAI,mBAAmB,MAAM,OAAO,MAAM;AAClD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/boolean.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBooleanBuilderInitial<TName extends string> = MySqlBooleanBuilder<{\n\tname: TName;\n\tdataType: 'boolean';\n\tcolumnType: 'MySqlBoolean';\n\tdata: boolean;\n\tdriverParam: number | boolean;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlBooleanBuilder<T extends ColumnBuilderBaseConfig<'boolean', 'MySqlBoolean'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlBooleanBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'boolean', 'MySqlBoolean');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBoolean<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBoolean<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlBoolean<T extends ColumnBaseConfig<'boolean', 'MySqlBoolean'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlBoolean';\n\n\tgetSQLType(): string {\n\t\treturn 'boolean';\n\t}\n\n\toverride mapFromDriverValue(value: number | boolean): boolean {\n\t\tif (typeof value === 'boolean') {\n\t\t\treturn value;\n\t\t}\n\t\treturn value === 1;\n\t}\n}\n\nexport function boolean(): MySqlBooleanBuilderInitial<''>;\nexport function boolean<TName extends string>(name: TName): MySqlBooleanBuilderInitial<TName>;\nexport function boolean(name?: string) {\n\treturn new MySqlBooleanBuilder(name ?? '');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAAgD;AAYzC,MAAM,4BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,WAAW,cAAc;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAA4E,0BAAe;AAAA,EACvG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAkC;AAC7D,QAAI,OAAO,UAAU,WAAW;AAC/B,aAAO;AAAA,IACR;AACA,WAAO,UAAU;AAAA,EAClB;AACD;AAIO,SAAS,QAAQ,MAAe;AACtC,SAAO,IAAI,oBAAoB,QAAQ,EAAE;AAC1C;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/boolean.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBooleanBuilderInitial<TName extends string> = MySqlBooleanBuilder<{\n\tname: TName;\n\tdataType: 'boolean';\n\tcolumnType: 'MySqlBoolean';\n\tdata: boolean;\n\tdriverParam: number | boolean;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlBooleanBuilder<T extends ColumnBuilderBaseConfig<'boolean', 'MySqlBoolean'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlBooleanBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'boolean', 'MySqlBoolean');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBoolean<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBoolean<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlBoolean<T extends ColumnBaseConfig<'boolean', 'MySqlBoolean'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlBoolean';\n\n\tgetSQLType(): string {\n\t\treturn 'boolean';\n\t}\n\n\toverride mapFromDriverValue(value: number | boolean): boolean {\n\t\tif (typeof value === 'boolean') {\n\t\t\treturn value;\n\t\t}\n\t\treturn value === 1;\n\t}\n}\n\nexport function boolean(): MySqlBooleanBuilderInitial<''>;\nexport function boolean<TName extends string>(name: TName): MySqlBooleanBuilderInitial<TName>;\nexport function boolean(name?: string) {\n\treturn new MySqlBooleanBuilder(name ?? '');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAAgD;AAWzC,MAAM,4BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,WAAW,cAAc;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAA4E,0BAAe;AAAA,EACvG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAkC;AAC7D,QAAI,OAAO,UAAU,WAAW;AAC/B,aAAO;AAAA,IACR;AACA,WAAO,UAAU;AAAA,EAClB;AACD;AAIO,SAAS,QAAQ,MAAe;AACtC,SAAO,IAAI,oBAAoB,QAAQ,EAAE;AAC1C;","names":[]}
@@ -9,7 +9,6 @@ export type MySqlBooleanBuilderInitial<TName extends string> = MySqlBooleanBuild
9
9
  data: boolean;
10
10
  driverParam: number | boolean;
11
11
  enumValues: undefined;
12
- generated: undefined;
13
12
  }>;
14
13
  export declare class MySqlBooleanBuilder<T extends ColumnBuilderBaseConfig<'boolean', 'MySqlBoolean'>> extends MySqlColumnBuilder<T> {
15
14
  static readonly [entityKind]: string;
@@ -9,7 +9,6 @@ export type MySqlBooleanBuilderInitial<TName extends string> = MySqlBooleanBuild
9
9
  data: boolean;
10
10
  driverParam: number | boolean;
11
11
  enumValues: undefined;
12
- generated: undefined;
13
12
  }>;
14
13
  export declare class MySqlBooleanBuilder<T extends ColumnBuilderBaseConfig<'boolean', 'MySqlBoolean'>> extends MySqlColumnBuilder<T> {
15
14
  static readonly [entityKind]: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/boolean.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBooleanBuilderInitial<TName extends string> = MySqlBooleanBuilder<{\n\tname: TName;\n\tdataType: 'boolean';\n\tcolumnType: 'MySqlBoolean';\n\tdata: boolean;\n\tdriverParam: number | boolean;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlBooleanBuilder<T extends ColumnBuilderBaseConfig<'boolean', 'MySqlBoolean'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlBooleanBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'boolean', 'MySqlBoolean');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBoolean<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBoolean<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlBoolean<T extends ColumnBaseConfig<'boolean', 'MySqlBoolean'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlBoolean';\n\n\tgetSQLType(): string {\n\t\treturn 'boolean';\n\t}\n\n\toverride mapFromDriverValue(value: number | boolean): boolean {\n\t\tif (typeof value === 'boolean') {\n\t\t\treturn value;\n\t\t}\n\t\treturn value === 1;\n\t}\n}\n\nexport function boolean(): MySqlBooleanBuilderInitial<''>;\nexport function boolean<TName extends string>(name: TName): MySqlBooleanBuilderInitial<TName>;\nexport function boolean(name?: string) {\n\treturn new MySqlBooleanBuilder(name ?? '');\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,aAAa,0BAA0B;AAYzC,MAAM,4BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,WAAW,cAAc;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAA4E,YAAe;AAAA,EACvG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAkC;AAC7D,QAAI,OAAO,UAAU,WAAW;AAC/B,aAAO;AAAA,IACR;AACA,WAAO,UAAU;AAAA,EAClB;AACD;AAIO,SAAS,QAAQ,MAAe;AACtC,SAAO,IAAI,oBAAoB,QAAQ,EAAE;AAC1C;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/boolean.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlBooleanBuilderInitial<TName extends string> = MySqlBooleanBuilder<{\n\tname: TName;\n\tdataType: 'boolean';\n\tcolumnType: 'MySqlBoolean';\n\tdata: boolean;\n\tdriverParam: number | boolean;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlBooleanBuilder<T extends ColumnBuilderBaseConfig<'boolean', 'MySqlBoolean'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlBooleanBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'boolean', 'MySqlBoolean');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlBoolean<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlBoolean<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlBoolean<T extends ColumnBaseConfig<'boolean', 'MySqlBoolean'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlBoolean';\n\n\tgetSQLType(): string {\n\t\treturn 'boolean';\n\t}\n\n\toverride mapFromDriverValue(value: number | boolean): boolean {\n\t\tif (typeof value === 'boolean') {\n\t\t\treturn value;\n\t\t}\n\t\treturn value === 1;\n\t}\n}\n\nexport function boolean(): MySqlBooleanBuilderInitial<''>;\nexport function boolean<TName extends string>(name: TName): MySqlBooleanBuilderInitial<TName>;\nexport function boolean(name?: string) {\n\treturn new MySqlBooleanBuilder(name ?? '');\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,aAAa,0BAA0B;AAWzC,MAAM,4BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,WAAW,cAAc;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAA4E,YAAe;AAAA,EACvG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAkC;AAC7D,QAAI,OAAO,UAAU,WAAW;AAC/B,aAAO;AAAA,IACR;AACA,WAAO,UAAU;AAAA,EAClB;AACD;AAIO,SAAS,QAAQ,MAAe;AACtC,SAAO,IAAI,oBAAoB,QAAQ,EAAE;AAC1C;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/char.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlCharBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = MySqlCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlChar';\n\tdata: TEnum[number];\n\tdriverParam: number | string;\n\tenumValues: TEnum;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlChar'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlCharConfig<T['enumValues']>\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlCharBuilder';\n\n\tconstructor(name: T['name'], config: MySqlCharConfig<T['enumValues']>) {\n\t\tsuper(name, 'string', 'MySqlChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlChar<T extends ColumnBaseConfig<'string', 'MySqlChar'>>\n\textends MySqlColumn<T, MySqlCharConfig<T['enumValues']>>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlChar';\n\n\treadonly length: number | undefined = this.config.length;\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface MySqlCharConfig<\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n> {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char(): MySqlCharBuilderInitial<'', [string, ...string[]]>;\nexport function char<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<'', Writable<T>>;\nexport function char<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: TName,\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<TName, Writable<T>>;\nexport function char(a?: string | MySqlCharConfig, b: MySqlCharConfig = {}): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlCharConfig>(a, b);\n\treturn new MySqlCharBuilder(name, config as any);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAsD;AACtD,oBAAgD;AAYzC,MAAM,yBAAmF,iCAG9F;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA0C;AACtE,UAAM,MAAM,UAAU,WAAW;AACjC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OAC+E;AAC/E,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kBACJ,0BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAChC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,SAAS,QAAQ,KAAK,MAAM;AAAA,EAChE;AACD;AAiBO,SAAS,KAAK,GAA8B,IAAqB,CAAC,GAAQ;AAChF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAwC,GAAG,CAAC;AACrE,SAAO,IAAI,iBAAiB,MAAM,MAAa;AAChD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/char.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlCharBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = MySqlCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlChar';\n\tdata: TEnum[number];\n\tdriverParam: number | string;\n\tenumValues: TEnum;\n}>;\n\nexport class MySqlCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlChar'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlCharConfig<T['enumValues']>\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlCharBuilder';\n\n\tconstructor(name: T['name'], config: MySqlCharConfig<T['enumValues']>) {\n\t\tsuper(name, 'string', 'MySqlChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlChar<T extends ColumnBaseConfig<'string', 'MySqlChar'>>\n\textends MySqlColumn<T, MySqlCharConfig<T['enumValues']>>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlChar';\n\n\treadonly length: number | undefined = this.config.length;\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface MySqlCharConfig<\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n> {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char(): MySqlCharBuilderInitial<'', [string, ...string[]]>;\nexport function char<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<'', Writable<T>>;\nexport function char<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: TName,\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<TName, Writable<T>>;\nexport function char(a?: string | MySqlCharConfig, b: MySqlCharConfig = {}): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlCharConfig>(a, b);\n\treturn new MySqlCharBuilder(name, config as any);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAsD;AACtD,oBAAgD;AAWzC,MAAM,yBAAmF,iCAG9F;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA0C;AACtE,UAAM,MAAM,UAAU,WAAW;AACjC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OAC+E;AAC/E,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kBACJ,0BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAChC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,SAAS,QAAQ,KAAK,MAAM;AAAA,EAChE;AACD;AAiBO,SAAS,KAAK,GAA8B,IAAqB,CAAC,GAAQ;AAChF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAwC,GAAG,CAAC;AACrE,SAAO,IAAI,iBAAiB,MAAM,MAAa;AAChD;","names":[]}
@@ -10,7 +10,6 @@ export type MySqlCharBuilderInitial<TName extends string, TEnum extends [string,
10
10
  data: TEnum[number];
11
11
  driverParam: number | string;
12
12
  enumValues: TEnum;
13
- generated: undefined;
14
13
  }>;
15
14
  export declare class MySqlCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlChar'>> extends MySqlColumnBuilder<T, MySqlCharConfig<T['enumValues']>> {
16
15
  static readonly [entityKind]: string;
@@ -10,7 +10,6 @@ export type MySqlCharBuilderInitial<TName extends string, TEnum extends [string,
10
10
  data: TEnum[number];
11
11
  driverParam: number | string;
12
12
  enumValues: TEnum;
13
- generated: undefined;
14
13
  }>;
15
14
  export declare class MySqlCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlChar'>> extends MySqlColumnBuilder<T, MySqlCharConfig<T['enumValues']>> {
16
15
  static readonly [entityKind]: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/char.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlCharBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = MySqlCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlChar';\n\tdata: TEnum[number];\n\tdriverParam: number | string;\n\tenumValues: TEnum;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlChar'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlCharConfig<T['enumValues']>\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlCharBuilder';\n\n\tconstructor(name: T['name'], config: MySqlCharConfig<T['enumValues']>) {\n\t\tsuper(name, 'string', 'MySqlChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlChar<T extends ColumnBaseConfig<'string', 'MySqlChar'>>\n\textends MySqlColumn<T, MySqlCharConfig<T['enumValues']>>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlChar';\n\n\treadonly length: number | undefined = this.config.length;\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface MySqlCharConfig<\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n> {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char(): MySqlCharBuilderInitial<'', [string, ...string[]]>;\nexport function char<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<'', Writable<T>>;\nexport function char<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: TName,\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<TName, Writable<T>>;\nexport function char(a?: string | MySqlCharConfig, b: MySqlCharConfig = {}): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlCharConfig>(a, b);\n\treturn new MySqlCharBuilder(name, config as any);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA6C;AACtD,SAAS,aAAa,0BAA0B;AAYzC,MAAM,yBAAmF,mBAG9F;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA0C;AACtE,UAAM,MAAM,UAAU,WAAW;AACjC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OAC+E;AAC/E,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAChC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,SAAS,QAAQ,KAAK,MAAM;AAAA,EAChE;AACD;AAiBO,SAAS,KAAK,GAA8B,IAAqB,CAAC,GAAQ;AAChF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAwC,GAAG,CAAC;AACrE,SAAO,IAAI,iBAAiB,MAAM,MAAa;AAChD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/char.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlCharBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = MySqlCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlChar';\n\tdata: TEnum[number];\n\tdriverParam: number | string;\n\tenumValues: TEnum;\n}>;\n\nexport class MySqlCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlChar'>> extends MySqlColumnBuilder<\n\tT,\n\tMySqlCharConfig<T['enumValues']>\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlCharBuilder';\n\n\tconstructor(name: T['name'], config: MySqlCharConfig<T['enumValues']>) {\n\t\tsuper(name, 'string', 'MySqlChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlChar<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlChar<T extends ColumnBaseConfig<'string', 'MySqlChar'>>\n\textends MySqlColumn<T, MySqlCharConfig<T['enumValues']>>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlChar';\n\n\treadonly length: number | undefined = this.config.length;\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface MySqlCharConfig<\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n> {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char(): MySqlCharBuilderInitial<'', [string, ...string[]]>;\nexport function char<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<'', Writable<T>>;\nexport function char<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: TName,\n\tconfig?: MySqlCharConfig<T | Writable<T>>,\n): MySqlCharBuilderInitial<TName, Writable<T>>;\nexport function char(a?: string | MySqlCharConfig, b: MySqlCharConfig = {}): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlCharConfig>(a, b);\n\treturn new MySqlCharBuilder(name, config as any);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA6C;AACtD,SAAS,aAAa,0BAA0B;AAWzC,MAAM,yBAAmF,mBAG9F;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAA0C;AACtE,UAAM,MAAM,UAAU,WAAW;AACjC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OAC+E;AAC/E,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAChC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,SAAS,QAAQ,KAAK,MAAM;AAAA,EAChE;AACD;AAiBO,SAAS,KAAK,GAA8B,IAAqB,CAAC,GAAQ;AAChF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAwC,GAAG,CAAC;AACrE,SAAO,IAAI,iBAAiB,MAAM,MAAa;AAChD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/common.ts"],"sourcesContent":["import { ColumnBuilder } from '~/column-builder.ts';\nimport type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tHasGenerated,\n\tIsAutoincrement,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/mysql-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/mysql-core/foreign-keys.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => MySqlColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface MySqlColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'mysql' }> {}\n\nexport interface MySqlGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class MySqlColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string> & {\n\t\tdata: any;\n\t},\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'mysql' }, TExtraConfig>\n\timplements MySqlColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(ref: ReferenceConfig['ref'], actions: ReferenceConfig['actions'] = {}): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(name?: string): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: MySqlColumn, table: MySqlTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `MySqlColumn` and `AnyMySqlColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class MySqlColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends Column<T, TRuntimeConfig, { dialect: 'mysql' }> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumn';\n\n\tconstructor(\n\t\toverride readonly table: MySqlTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyMySqlColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = MySqlColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n\nexport interface MySqlColumnWithAutoIncrementConfig {\n\tautoIncrement: boolean;\n}\n\nexport abstract class MySqlColumnBuilderWithAutoIncrement<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends MySqlColumnBuilder<T, TRuntimeConfig & MySqlColumnWithAutoIncrementConfig, TExtraConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilderWithAutoIncrement';\n\n\tconstructor(name: NonNullable<T['name']>, dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\tautoincrement(): IsAutoincrement<HasDefault<this>> {\n\t\tthis.config.autoIncrement = true;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as IsAutoincrement<HasDefault<this>>;\n\t}\n}\n\nexport abstract class MySqlColumnWithAutoIncrement<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends MySqlColumn<T, MySqlColumnWithAutoIncrementConfig & TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnWithAutoIncrement';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA8B;AAa9B,oBAAuB;AACvB,oBAA2B;AAE3B,0BAAkC;AAIlC,+BAA8B;AAmBvB,MAAe,2BAOZ,oCAEV;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WAAW,KAA6B,UAAsC,CAAC,GAAS;AACvF,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,MAAqB;AAC3B,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAAyD;AAC7G,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAqB,OAAiC;AACtE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,sCAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,oBAGZ,qBAAgD;AAAA,EAGzD,YACmB,OAClB,QACC;AACD,QAAI,CAAC,OAAO,YAAY;AACvB,aAAO,iBAAa,wCAAc,OAAO,CAAC,OAAO,IAAI,CAAC;AAAA,IACvD;AACA,UAAM,OAAO,MAAM;AAND;AAAA,EAOnB;AAAA,EAVA,QAA0B,wBAAU,IAAY;AAWjD;AAUO,MAAe,4CAIZ,mBAAyF;AAAA,EAClG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAA8B,UAAyB,YAA6B;AAC/F,UAAM,MAAM,UAAU,UAAU;AAChC,SAAK,OAAO,gBAAgB;AAAA,EAC7B;AAAA,EAEA,gBAAmD;AAClD,SAAK,OAAO,gBAAgB;AAC5B,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AACD;AAEO,MAAe,qCAGZ,YAAoE;AAAA,EAC7E,QAA0B,wBAAU,IAAY;AAAA,EAEvC,gBAAyB,KAAK,OAAO;AAC/C;","names":["ref","actions"]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/common.ts"],"sourcesContent":["import { ColumnBuilder } from '~/column-builder.ts';\nimport type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tHasGenerated,\n\tIsAutoincrement,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/mysql-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/mysql-core/foreign-keys.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => MySqlColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface MySqlColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'mysql' }> {}\n\nexport interface MySqlGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class MySqlColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string> & {\n\t\tdata: any;\n\t},\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'mysql' }, TExtraConfig>\n\timplements MySqlColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(ref: ReferenceConfig['ref'], actions: ReferenceConfig['actions'] = {}): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(name?: string): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: MySqlColumn, table: MySqlTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `MySqlColumn` and `AnyMySqlColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class MySqlColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends Column<T, TRuntimeConfig, { dialect: 'mysql' }> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumn';\n\n\tconstructor(\n\t\toverride readonly table: MySqlTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyMySqlColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = MySqlColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n\nexport interface MySqlColumnWithAutoIncrementConfig {\n\tautoIncrement: boolean;\n}\n\nexport abstract class MySqlColumnBuilderWithAutoIncrement<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends MySqlColumnBuilder<T, TRuntimeConfig & MySqlColumnWithAutoIncrementConfig, TExtraConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilderWithAutoIncrement';\n\n\tconstructor(name: NonNullable<T['name']>, dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\tautoincrement(): IsAutoincrement<HasDefault<this>> {\n\t\tthis.config.autoIncrement = true;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as IsAutoincrement<HasDefault<this>>;\n\t}\n}\n\nexport abstract class MySqlColumnWithAutoIncrement<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends MySqlColumn<T, MySqlColumnWithAutoIncrementConfig & TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnWithAutoIncrement';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA8B;AAa9B,oBAAuB;AACvB,oBAA2B;AAE3B,0BAAkC;AAIlC,+BAA8B;AAmBvB,MAAe,2BAOZ,oCAEV;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WAAW,KAA6B,UAAsC,CAAC,GAAS;AACvF,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,MAAqB;AAC3B,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAElD;AACF,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAqB,OAAiC;AACtE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,sCAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,oBAGZ,qBAAgD;AAAA,EAGzD,YACmB,OAClB,QACC;AACD,QAAI,CAAC,OAAO,YAAY;AACvB,aAAO,iBAAa,wCAAc,OAAO,CAAC,OAAO,IAAI,CAAC;AAAA,IACvD;AACA,UAAM,OAAO,MAAM;AAND;AAAA,EAOnB;AAAA,EAVA,QAA0B,wBAAU,IAAY;AAWjD;AAUO,MAAe,4CAIZ,mBAAyF;AAAA,EAClG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAA8B,UAAyB,YAA6B;AAC/F,UAAM,MAAM,UAAU,UAAU;AAChC,SAAK,OAAO,gBAAgB;AAAA,EAC7B;AAAA,EAEA,gBAAmD;AAClD,SAAK,OAAO,gBAAgB;AAC5B,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AACD;AAEO,MAAe,qCAGZ,YAAoE;AAAA,EAC7E,QAA0B,wBAAU,IAAY;AAAA,EAEvC,gBAAyB,KAAK,OAAO;AAC/C;","names":["ref","actions"]}
@@ -30,7 +30,9 @@ export declare abstract class MySqlColumnBuilder<T extends ColumnBuilderBaseConf
30
30
  private foreignKeyConfigs;
31
31
  references(ref: ReferenceConfig['ref'], actions?: ReferenceConfig['actions']): this;
32
32
  unique(name?: string): this;
33
- generatedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this>;
33
+ generatedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this, {
34
+ type: 'always';
35
+ }>;
34
36
  }
35
37
  export declare abstract class MySqlColumn<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object> extends Column<T, TRuntimeConfig, {
36
38
  dialect: 'mysql';
@@ -30,7 +30,9 @@ export declare abstract class MySqlColumnBuilder<T extends ColumnBuilderBaseConf
30
30
  private foreignKeyConfigs;
31
31
  references(ref: ReferenceConfig['ref'], actions?: ReferenceConfig['actions']): this;
32
32
  unique(name?: string): this;
33
- generatedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this>;
33
+ generatedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this, {
34
+ type: 'always';
35
+ }>;
34
36
  }
35
37
  export declare abstract class MySqlColumn<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object> extends Column<T, TRuntimeConfig, {
36
38
  dialect: 'mysql';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/common.ts"],"sourcesContent":["import { ColumnBuilder } from '~/column-builder.ts';\nimport type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tHasGenerated,\n\tIsAutoincrement,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/mysql-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/mysql-core/foreign-keys.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => MySqlColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface MySqlColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'mysql' }> {}\n\nexport interface MySqlGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class MySqlColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string> & {\n\t\tdata: any;\n\t},\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'mysql' }, TExtraConfig>\n\timplements MySqlColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(ref: ReferenceConfig['ref'], actions: ReferenceConfig['actions'] = {}): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(name?: string): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: MySqlColumn, table: MySqlTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `MySqlColumn` and `AnyMySqlColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class MySqlColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends Column<T, TRuntimeConfig, { dialect: 'mysql' }> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumn';\n\n\tconstructor(\n\t\toverride readonly table: MySqlTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyMySqlColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = MySqlColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n\nexport interface MySqlColumnWithAutoIncrementConfig {\n\tautoIncrement: boolean;\n}\n\nexport abstract class MySqlColumnBuilderWithAutoIncrement<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends MySqlColumnBuilder<T, TRuntimeConfig & MySqlColumnWithAutoIncrementConfig, TExtraConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilderWithAutoIncrement';\n\n\tconstructor(name: NonNullable<T['name']>, dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\tautoincrement(): IsAutoincrement<HasDefault<this>> {\n\t\tthis.config.autoIncrement = true;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as IsAutoincrement<HasDefault<this>>;\n\t}\n}\n\nexport abstract class MySqlColumnWithAutoIncrement<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends MySqlColumn<T, MySqlColumnWithAutoIncrementConfig & TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnWithAutoIncrement';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAa9B,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAE3B,SAAS,yBAAyB;AAIlC,SAAS,qBAAqB;AAmBvB,MAAe,2BAOZ,cAEV;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WAAW,KAA6B,UAAsC,CAAC,GAAS;AACvF,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,MAAqB;AAC3B,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAAyD;AAC7G,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAqB,OAAiC;AACtE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,kBAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,oBAGZ,OAAgD;AAAA,EAGzD,YACmB,OAClB,QACC;AACD,QAAI,CAAC,OAAO,YAAY;AACvB,aAAO,aAAa,cAAc,OAAO,CAAC,OAAO,IAAI,CAAC;AAAA,IACvD;AACA,UAAM,OAAO,MAAM;AAND;AAAA,EAOnB;AAAA,EAVA,QAA0B,UAAU,IAAY;AAWjD;AAUO,MAAe,4CAIZ,mBAAyF;AAAA,EAClG,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAA8B,UAAyB,YAA6B;AAC/F,UAAM,MAAM,UAAU,UAAU;AAChC,SAAK,OAAO,gBAAgB;AAAA,EAC7B;AAAA,EAEA,gBAAmD;AAClD,SAAK,OAAO,gBAAgB;AAC5B,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AACD;AAEO,MAAe,qCAGZ,YAAoE;AAAA,EAC7E,QAA0B,UAAU,IAAY;AAAA,EAEvC,gBAAyB,KAAK,OAAO;AAC/C;","names":["ref","actions"]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/common.ts"],"sourcesContent":["import { ColumnBuilder } from '~/column-builder.ts';\nimport type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tHasGenerated,\n\tIsAutoincrement,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/mysql-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/mysql-core/foreign-keys.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => MySqlColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface MySqlColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'mysql' }> {}\n\nexport interface MySqlGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class MySqlColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string> & {\n\t\tdata: any;\n\t},\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'mysql' }, TExtraConfig>\n\timplements MySqlColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(ref: ReferenceConfig['ref'], actions: ReferenceConfig['actions'] = {}): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(name?: string): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: MySqlGeneratedColumnConfig): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: MySqlColumn, table: MySqlTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `MySqlColumn` and `AnyMySqlColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class MySqlColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends Column<T, TRuntimeConfig, { dialect: 'mysql' }> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumn';\n\n\tconstructor(\n\t\toverride readonly table: MySqlTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyMySqlColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = MySqlColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n\nexport interface MySqlColumnWithAutoIncrementConfig {\n\tautoIncrement: boolean;\n}\n\nexport abstract class MySqlColumnBuilderWithAutoIncrement<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends MySqlColumnBuilder<T, TRuntimeConfig & MySqlColumnWithAutoIncrementConfig, TExtraConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnBuilderWithAutoIncrement';\n\n\tconstructor(name: NonNullable<T['name']>, dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\tautoincrement(): IsAutoincrement<HasDefault<this>> {\n\t\tthis.config.autoIncrement = true;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as IsAutoincrement<HasDefault<this>>;\n\t}\n}\n\nexport abstract class MySqlColumnWithAutoIncrement<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends MySqlColumn<T, MySqlColumnWithAutoIncrementConfig & TRuntimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlColumnWithAutoIncrement';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAa9B,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAE3B,SAAS,yBAAyB;AAIlC,SAAS,qBAAqB;AAmBvB,MAAe,2BAOZ,cAEV;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WAAW,KAA6B,UAAsC,CAAC,GAAS;AACvF,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,MAAqB;AAC3B,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAElD;AACF,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAqB,OAAiC;AACtE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,kBAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,oBAGZ,OAAgD;AAAA,EAGzD,YACmB,OAClB,QACC;AACD,QAAI,CAAC,OAAO,YAAY;AACvB,aAAO,aAAa,cAAc,OAAO,CAAC,OAAO,IAAI,CAAC;AAAA,IACvD;AACA,UAAM,OAAO,MAAM;AAND;AAAA,EAOnB;AAAA,EAVA,QAA0B,UAAU,IAAY;AAWjD;AAUO,MAAe,4CAIZ,mBAAyF;AAAA,EAClG,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAA8B,UAAyB,YAA6B;AAC/F,UAAM,MAAM,UAAU,UAAU;AAChC,SAAK,OAAO,gBAAgB;AAAA,EAC7B;AAAA,EAEA,gBAAmD;AAClD,SAAK,OAAO,gBAAgB;AAC5B,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AACD;AAEO,MAAe,qCAGZ,YAAoE;AAAA,EAC7E,QAA0B,UAAU,IAAY;AAAA,EAEvC,gBAAyB,KAAK,OAAO;AAC/C;","names":["ref","actions"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tname: TName;\n\t\tdataType: 'custom';\n\t\tcolumnType: 'MySqlCustomColumn';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t\tenumValues: undefined;\n\t\tgenerated: undefined;\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface MySqlCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class MySqlCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom', 'MySqlCustomColumn'>>\n\textends MySqlColumnBuilder<\n\t\tT,\n\t\t{\n\t\t\tfieldConfig: CustomTypeValues['config'];\n\t\t\tcustomTypeParams: CustomTypeParams<any>;\n\t\t},\n\t\t{\n\t\t\tmysqlColumnBuilderBrand: 'MySqlCustomColumnBuilderBrand';\n\t\t}\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: T['name'],\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'MySqlCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\tbuild<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlCustomColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlCustomColumn<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlCustomColumn<T extends ColumnBaseConfig<'custom', 'MySqlCustomColumn'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue(value: T['driverParam']): T['data'] {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t}\n\n\toverride mapToDriverValue(value: T['data']): T['driverParam'] {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t}\n}\n\nexport type CustomTypeValues = {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n};\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, between user input and driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is responsible for data mapping from database to JS/TS code\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * },\n\t * ```\n\t */\n\tfromDriver?: (value: T['driverData']) => T['data'];\n}\n\n/**\n * Custom mysql database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n\t: {\n\t\t(): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig?: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n{\n\treturn <TName extends string>(\n\t\ta?: TName | T['config'],\n\t\tb?: T['config'],\n\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new MySqlCustomColumnBuilder(name as ConvertCustomConfig<TName, T>['name'], config, customTypeParams);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAAgD;AAmBzC,MAAM,iCACJ,iCAUT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,MACA,aACA,kBACC;AACD,UAAM,MAAM,UAAU,mBAAmB;AACzC,SAAK,OAAO,cAAc;AAC1B,SAAK,OAAO,mBAAmB;AAAA,EAChC;AAAA;AAAA,EAGA,MACC,OACqD;AACrD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAqF,0BAAe;AAAA,EAChH,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,WAAW;AAClE,SAAK,QAAQ,OAAO,iBAAiB;AACrC,SAAK,UAAU,OAAO,iBAAiB;AAAA,EACxC;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI;AAAA,EACnE;AAAA,EAES,iBAAiB,OAAoC;AAC7D,WAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,KAAK,IAAI;AAAA,EAC/D;AACD;AAmHO,SAAS,WACf,kBAoBD;AACC,SAAO,CACN,GACA,MAC6D;AAC7D,UAAM,EAAE,MAAM,OAAO,QAAI,qCAAoC,GAAG,CAAC;AACjE,WAAO,IAAI,yBAAyB,MAA+C,QAAQ,gBAAgB;AAAA,EAC5G;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tname: TName;\n\t\tdataType: 'custom';\n\t\tcolumnType: 'MySqlCustomColumn';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t\tenumValues: undefined;\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface MySqlCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class MySqlCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom', 'MySqlCustomColumn'>>\n\textends MySqlColumnBuilder<\n\t\tT,\n\t\t{\n\t\t\tfieldConfig: CustomTypeValues['config'];\n\t\t\tcustomTypeParams: CustomTypeParams<any>;\n\t\t},\n\t\t{\n\t\t\tmysqlColumnBuilderBrand: 'MySqlCustomColumnBuilderBrand';\n\t\t}\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: T['name'],\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'MySqlCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\tbuild<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlCustomColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlCustomColumn<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlCustomColumn<T extends ColumnBaseConfig<'custom', 'MySqlCustomColumn'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue(value: T['driverParam']): T['data'] {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t}\n\n\toverride mapToDriverValue(value: T['data']): T['driverParam'] {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t}\n}\n\nexport type CustomTypeValues = {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n};\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, between user input and driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is responsible for data mapping from database to JS/TS code\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * },\n\t * ```\n\t */\n\tfromDriver?: (value: T['driverData']) => T['data'];\n}\n\n/**\n * Custom mysql database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n\t: {\n\t\t(): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig?: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n{\n\treturn <TName extends string>(\n\t\ta?: TName | T['config'],\n\t\tb?: T['config'],\n\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new MySqlCustomColumnBuilder(name as ConvertCustomConfig<TName, T>['name'], config, customTypeParams);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAAgD;AAkBzC,MAAM,iCACJ,iCAUT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,MACA,aACA,kBACC;AACD,UAAM,MAAM,UAAU,mBAAmB;AACzC,SAAK,OAAO,cAAc;AAC1B,SAAK,OAAO,mBAAmB;AAAA,EAChC;AAAA;AAAA,EAGA,MACC,OACqD;AACrD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAqF,0BAAe;AAAA,EAChH,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,WAAW;AAClE,SAAK,QAAQ,OAAO,iBAAiB;AACrC,SAAK,UAAU,OAAO,iBAAiB;AAAA,EACxC;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI;AAAA,EACnE;AAAA,EAES,iBAAiB,OAAoC;AAC7D,WAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,KAAK,IAAI;AAAA,EAC/D;AACD;AAmHO,SAAS,WACf,kBAoBD;AACC,SAAO,CACN,GACA,MAC6D;AAC7D,UAAM,EAAE,MAAM,OAAO,QAAI,qCAAoC,GAAG,CAAC;AACjE,WAAO,IAAI,yBAAyB,MAA+C,QAAQ,gBAAgB;AAAA,EAC5G;AACD;","names":[]}
@@ -12,7 +12,6 @@ export type ConvertCustomConfig<TName extends string, T extends Partial<CustomTy
12
12
  data: T['data'];
13
13
  driverParam: T['driverData'];
14
14
  enumValues: undefined;
15
- generated: undefined;
16
15
  } & (T['notNull'] extends true ? {
17
16
  notNull: true;
18
17
  } : {}) & (T['default'] extends true ? {
@@ -12,7 +12,6 @@ export type ConvertCustomConfig<TName extends string, T extends Partial<CustomTy
12
12
  data: T['data'];
13
13
  driverParam: T['driverData'];
14
14
  enumValues: undefined;
15
- generated: undefined;
16
15
  } & (T['notNull'] extends true ? {
17
16
  notNull: true;
18
17
  } : {}) & (T['default'] extends true ? {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tname: TName;\n\t\tdataType: 'custom';\n\t\tcolumnType: 'MySqlCustomColumn';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t\tenumValues: undefined;\n\t\tgenerated: undefined;\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface MySqlCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class MySqlCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom', 'MySqlCustomColumn'>>\n\textends MySqlColumnBuilder<\n\t\tT,\n\t\t{\n\t\t\tfieldConfig: CustomTypeValues['config'];\n\t\t\tcustomTypeParams: CustomTypeParams<any>;\n\t\t},\n\t\t{\n\t\t\tmysqlColumnBuilderBrand: 'MySqlCustomColumnBuilderBrand';\n\t\t}\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: T['name'],\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'MySqlCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\tbuild<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlCustomColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlCustomColumn<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlCustomColumn<T extends ColumnBaseConfig<'custom', 'MySqlCustomColumn'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue(value: T['driverParam']): T['data'] {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t}\n\n\toverride mapToDriverValue(value: T['data']): T['driverParam'] {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t}\n}\n\nexport type CustomTypeValues = {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n};\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, between user input and driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is responsible for data mapping from database to JS/TS code\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * },\n\t * ```\n\t */\n\tfromDriver?: (value: T['driverData']) => T['data'];\n}\n\n/**\n * Custom mysql database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n\t: {\n\t\t(): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig?: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n{\n\treturn <TName extends string>(\n\t\ta?: TName | T['config'],\n\t\tb?: T['config'],\n\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new MySqlCustomColumnBuilder(name as ConvertCustomConfig<TName, T>['name'], config, customTypeParams);\n\t};\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAqB,8BAA8B;AACnD,SAAS,aAAa,0BAA0B;AAmBzC,MAAM,iCACJ,mBAUT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,MACA,aACA,kBACC;AACD,UAAM,MAAM,UAAU,mBAAmB;AACzC,SAAK,OAAO,cAAc;AAC1B,SAAK,OAAO,mBAAmB;AAAA,EAChC;AAAA;AAAA,EAGA,MACC,OACqD;AACrD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAqF,YAAe;AAAA,EAChH,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,WAAW;AAClE,SAAK,QAAQ,OAAO,iBAAiB;AACrC,SAAK,UAAU,OAAO,iBAAiB;AAAA,EACxC;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI;AAAA,EACnE;AAAA,EAES,iBAAiB,OAAoC;AAC7D,WAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,KAAK,IAAI;AAAA,EAC/D;AACD;AAmHO,SAAS,WACf,kBAoBD;AACC,SAAO,CACN,GACA,MAC6D;AAC7D,UAAM,EAAE,MAAM,OAAO,IAAI,uBAAoC,GAAG,CAAC;AACjE,WAAO,IAAI,yBAAyB,MAA+C,QAAQ,gBAAgB;AAAA,EAC5G;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/custom.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> =\n\t& {\n\t\tname: TName;\n\t\tdataType: 'custom';\n\t\tcolumnType: 'MySqlCustomColumn';\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverData'];\n\t\tenumValues: undefined;\n\t}\n\t& (T['notNull'] extends true ? { notNull: true } : {})\n\t& (T['default'] extends true ? { hasDefault: true } : {});\n\nexport interface MySqlCustomColumnInnerConfig {\n\tcustomTypeValues: CustomTypeValues;\n}\n\nexport class MySqlCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom', 'MySqlCustomColumn'>>\n\textends MySqlColumnBuilder<\n\t\tT,\n\t\t{\n\t\t\tfieldConfig: CustomTypeValues['config'];\n\t\t\tcustomTypeParams: CustomTypeParams<any>;\n\t\t},\n\t\t{\n\t\t\tmysqlColumnBuilderBrand: 'MySqlCustomColumnBuilderBrand';\n\t\t}\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumnBuilder';\n\n\tconstructor(\n\t\tname: T['name'],\n\t\tfieldConfig: CustomTypeValues['config'],\n\t\tcustomTypeParams: CustomTypeParams<any>,\n\t) {\n\t\tsuper(name, 'custom', 'MySqlCustomColumn');\n\t\tthis.config.fieldConfig = fieldConfig;\n\t\tthis.config.customTypeParams = customTypeParams;\n\t}\n\n\t/** @internal */\n\tbuild<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlCustomColumn<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlCustomColumn<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlCustomColumn<T extends ColumnBaseConfig<'custom', 'MySqlCustomColumn'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlCustomColumn';\n\n\tprivate sqlName: string;\n\tprivate mapTo?: (value: T['data']) => T['driverParam'];\n\tprivate mapFrom?: (value: T['driverParam']) => T['data'];\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlCustomColumnBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n\t\tthis.mapTo = config.customTypeParams.toDriver;\n\t\tthis.mapFrom = config.customTypeParams.fromDriver;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.sqlName;\n\t}\n\n\toverride mapFromDriverValue(value: T['driverParam']): T['data'] {\n\t\treturn typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];\n\t}\n\n\toverride mapToDriverValue(value: T['data']): T['driverParam'] {\n\t\treturn typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];\n\t}\n}\n\nexport type CustomTypeValues = {\n\t/**\n\t * Required type for custom column, that will infer proper type model\n\t *\n\t * Examples:\n\t *\n\t * If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`\n\t *\n\t * If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`\n\t */\n\tdata: unknown;\n\n\t/**\n\t * Type helper, that represents what type database driver is accepting for specific database data type\n\t */\n\tdriverData?: unknown;\n\n\t/**\n\t * What config type should be used for {@link CustomTypeParams} `dataType` generation\n\t */\n\tconfig?: Record<string, any>;\n\n\t/**\n\t * Whether the config argument should be required or not\n\t * @default false\n\t */\n\tconfigRequired?: boolean;\n\n\t/**\n\t * If your custom data type should be notNull by default you can use `notNull: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tnotNull?: boolean;\n\n\t/**\n\t * If your custom data type has default you can use `default: true`\n\t *\n\t * @example\n\t * const customSerial = customType<{ data: number, notNull: true, default: true }>({\n\t * \t dataType() {\n\t * \t return 'serial';\n\t * },\n\t * });\n\t */\n\tdefault?: boolean;\n};\n\nexport interface CustomTypeParams<T extends CustomTypeValues> {\n\t/**\n\t * Database data type string representation, that is used for migrations\n\t * @example\n\t * ```\n\t * `jsonb`, `text`\n\t * ```\n\t *\n\t * If database data type needs additional params you can use them from `config` param\n\t * @example\n\t * ```\n\t * `varchar(256)`, `numeric(2,3)`\n\t * ```\n\t *\n\t * To make `config` be of specific type please use config generic in {@link CustomTypeValues}\n\t *\n\t * @example\n\t * Usage example\n\t * ```\n\t * dataType() {\n\t * return 'boolean';\n\t * },\n\t * ```\n\t * Or\n\t * ```\n\t * dataType(config) {\n\t * \t return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;\n\t * \t }\n\t * ```\n\t */\n\tdataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;\n\n\t/**\n\t * Optional mapping function, between user input and driver\n\t * @example\n\t * For example, when using jsonb we need to map JS/TS object to string before writing to database\n\t * ```\n\t * toDriver(value: TData): string {\n\t * \t return JSON.stringify(value);\n\t * }\n\t * ```\n\t */\n\ttoDriver?: (value: T['data']) => T['driverData'] | SQL;\n\n\t/**\n\t * Optional mapping function, that is responsible for data mapping from database to JS/TS code\n\t * @example\n\t * For example, when using timestamp we need to map string Date representation to JS Date\n\t * ```\n\t * fromDriver(value: string): Date {\n\t * \treturn new Date(value);\n\t * },\n\t * ```\n\t */\n\tfromDriver?: (value: T['driverData']) => T['data'];\n}\n\n/**\n * Custom mysql database data type generator\n */\nexport function customType<T extends CustomTypeValues = CustomTypeValues>(\n\tcustomTypeParams: CustomTypeParams<T>,\n): Equal<T['configRequired'], true> extends true ? {\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n\t: {\n\t\t(): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TConfig extends Record<string, any> & T['config']>(\n\t\t\tfieldConfig?: TConfig,\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<'', T>>;\n\t\t<TName extends string>(\n\t\t\tdbName: TName,\n\t\t\tfieldConfig?: T['config'],\n\t\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>>;\n\t}\n{\n\treturn <TName extends string>(\n\t\ta?: TName | T['config'],\n\t\tb?: T['config'],\n\t): MySqlCustomColumnBuilder<ConvertCustomConfig<TName, T>> => {\n\t\tconst { name, config } = getColumnNameAndConfig<T['config']>(a, b);\n\t\treturn new MySqlCustomColumnBuilder(name as ConvertCustomConfig<TName, T>['name'], config, customTypeParams);\n\t};\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAqB,8BAA8B;AACnD,SAAS,aAAa,0BAA0B;AAkBzC,MAAM,iCACJ,mBAUT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,MACA,aACA,kBACC;AACD,UAAM,MAAM,UAAU,mBAAmB;AACzC,SAAK,OAAO,cAAc;AAC1B,SAAK,OAAO,mBAAmB;AAAA,EAChC;AAAA;AAAA,EAGA,MACC,OACqD;AACrD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAAqF,YAAe;AAAA,EAChH,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EACA;AAAA,EACA;AAAA,EAER,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,UAAU,OAAO,iBAAiB,SAAS,OAAO,WAAW;AAClE,SAAK,QAAQ,OAAO,iBAAiB;AACrC,SAAK,UAAU,OAAO,iBAAiB;AAAA,EACxC;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAES,mBAAmB,OAAoC;AAC/D,WAAO,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,KAAK,IAAI;AAAA,EACnE;AAAA,EAES,iBAAiB,OAAoC;AAC7D,WAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,KAAK,IAAI;AAAA,EAC/D;AACD;AAmHO,SAAS,WACf,kBAoBD;AACC,SAAO,CACN,GACA,MAC6D;AAC7D,UAAM,EAAE,MAAM,OAAO,IAAI,uBAAoC,GAAG,CAAC;AACjE,WAAO,IAAI,yBAAyB,MAA+C,QAAQ,gBAAgB;AAAA,EAC5G;AACD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/date.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateBuilderInitial<TName extends string> = MySqlDateBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDate';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDate'>> extends MySqlColumnBuilder<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'date', 'MySqlDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDate<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDate<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlDate<T extends ColumnBaseConfig<'date', 'MySqlDate'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDate';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n}\n\nexport type MySqlDateStringBuilderInitial<TName extends string> = MySqlDateStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateString'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateStringBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'MySqlDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateString<T extends ColumnBaseConfig<'string', 'MySqlDateString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateString';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n}\n\nexport interface MySqlDateConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function date(): MySqlDateBuilderInitial<''>;\nexport function date<TMode extends MySqlDateConfig['mode'] & {}>(\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<''> : MySqlDateBuilderInitial<''>;\nexport function date<TName extends string, TMode extends MySqlDateConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<TName> : MySqlDateBuilderInitial<TName>;\nexport function date(a?: string | MySqlDateConfig, b?: MySqlDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDateConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateStringBuilder(name);\n\t}\n\treturn new MySqlDateBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAgD;AAYzC,MAAM,yBAAiF,iCAAsB;AAAA,EACnH,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,WAAW;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI,UAA2C,OAAO,KAAK,MAA8C;AAAA,EACjH;AACD;AAEO,MAAM,kBAAmE,0BAAe;AAAA,EAC9F,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AACD;AAYO,MAAM,+BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,iBAAiB;AAAA,EACxC;AAAA;AAAA,EAGS,MACR,OACmD;AACnD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,wBAAiF,0BAAe;AAAA,EAC5G,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAcO,SAAS,KAAK,GAA8B,GAAqB;AACvE,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAoD,GAAG,CAAC;AACjF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,uBAAuB,IAAI;AAAA,EACvC;AACA,SAAO,IAAI,iBAAiB,IAAI;AACjC;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/date.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateBuilderInitial<TName extends string> = MySqlDateBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDate';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDate'>> extends MySqlColumnBuilder<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'date', 'MySqlDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDate<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDate<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlDate<T extends ColumnBaseConfig<'date', 'MySqlDate'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDate';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n}\n\nexport type MySqlDateStringBuilderInitial<TName extends string> = MySqlDateStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateString'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateStringBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'MySqlDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateString<T extends ColumnBaseConfig<'string', 'MySqlDateString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateString';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n}\n\nexport interface MySqlDateConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function date(): MySqlDateBuilderInitial<''>;\nexport function date<TMode extends MySqlDateConfig['mode'] & {}>(\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<''> : MySqlDateBuilderInitial<''>;\nexport function date<TName extends string, TMode extends MySqlDateConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<TName> : MySqlDateBuilderInitial<TName>;\nexport function date(a?: string | MySqlDateConfig, b?: MySqlDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDateConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateStringBuilder(name);\n\t}\n\treturn new MySqlDateBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAgD;AAWzC,MAAM,yBAAiF,iCAAsB;AAAA,EACnH,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,WAAW;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI,UAA2C,OAAO,KAAK,MAA8C;AAAA,EACjH;AACD;AAEO,MAAM,kBAAmE,0BAAe;AAAA,EAC9F,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AACD;AAWO,MAAM,+BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,iBAAiB;AAAA,EACxC;AAAA;AAAA,EAGS,MACR,OACmD;AACnD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,wBAAiF,0BAAe;AAAA,EAC5G,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAcO,SAAS,KAAK,GAA8B,GAAqB;AACvE,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAoD,GAAG,CAAC;AACjF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,uBAAuB,IAAI;AAAA,EACvC;AACA,SAAO,IAAI,iBAAiB,IAAI;AACjC;","names":[]}
@@ -11,7 +11,6 @@ export type MySqlDateBuilderInitial<TName extends string> = MySqlDateBuilder<{
11
11
  data: Date;
12
12
  driverParam: string | number;
13
13
  enumValues: undefined;
14
- generated: undefined;
15
14
  }>;
16
15
  export declare class MySqlDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDate'>> extends MySqlColumnBuilder<T> {
17
16
  static readonly [entityKind]: string;
@@ -32,7 +31,6 @@ export type MySqlDateStringBuilderInitial<TName extends string> = MySqlDateStrin
32
31
  data: string;
33
32
  driverParam: string | number;
34
33
  enumValues: undefined;
35
- generated: undefined;
36
34
  }>;
37
35
  export declare class MySqlDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateString'>> extends MySqlColumnBuilder<T> {
38
36
  static readonly [entityKind]: string;
@@ -11,7 +11,6 @@ export type MySqlDateBuilderInitial<TName extends string> = MySqlDateBuilder<{
11
11
  data: Date;
12
12
  driverParam: string | number;
13
13
  enumValues: undefined;
14
- generated: undefined;
15
14
  }>;
16
15
  export declare class MySqlDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDate'>> extends MySqlColumnBuilder<T> {
17
16
  static readonly [entityKind]: string;
@@ -32,7 +31,6 @@ export type MySqlDateStringBuilderInitial<TName extends string> = MySqlDateStrin
32
31
  data: string;
33
32
  driverParam: string | number;
34
33
  enumValues: undefined;
35
- generated: undefined;
36
34
  }>;
37
35
  export declare class MySqlDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateString'>> extends MySqlColumnBuilder<T> {
38
36
  static readonly [entityKind]: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/date.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateBuilderInitial<TName extends string> = MySqlDateBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDate';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDate'>> extends MySqlColumnBuilder<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'date', 'MySqlDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDate<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDate<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlDate<T extends ColumnBaseConfig<'date', 'MySqlDate'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDate';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n}\n\nexport type MySqlDateStringBuilderInitial<TName extends string> = MySqlDateStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateString'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateStringBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'MySqlDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateString<T extends ColumnBaseConfig<'string', 'MySqlDateString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateString';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n}\n\nexport interface MySqlDateConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function date(): MySqlDateBuilderInitial<''>;\nexport function date<TMode extends MySqlDateConfig['mode'] & {}>(\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<''> : MySqlDateBuilderInitial<''>;\nexport function date<TName extends string, TMode extends MySqlDateConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<TName> : MySqlDateBuilderInitial<TName>;\nexport function date(a?: string | MySqlDateConfig, b?: MySqlDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDateConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateStringBuilder(name);\n\t}\n\treturn new MySqlDateBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,aAAa,0BAA0B;AAYzC,MAAM,yBAAiF,mBAAsB;AAAA,EACnH,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,WAAW;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI,UAA2C,OAAO,KAAK,MAA8C;AAAA,EACjH;AACD;AAEO,MAAM,kBAAmE,YAAe;AAAA,EAC9F,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AACD;AAYO,MAAM,+BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,iBAAiB;AAAA,EACxC;AAAA;AAAA,EAGS,MACR,OACmD;AACnD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,wBAAiF,YAAe;AAAA,EAC5G,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAcO,SAAS,KAAK,GAA8B,GAAqB;AACvE,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAoD,GAAG,CAAC;AACjF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,uBAAuB,IAAI;AAAA,EACvC;AACA,SAAO,IAAI,iBAAiB,IAAI;AACjC;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/date.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateBuilderInitial<TName extends string> = MySqlDateBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDate';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDate'>> extends MySqlColumnBuilder<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'date', 'MySqlDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDate<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDate<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class MySqlDate<T extends ColumnBaseConfig<'date', 'MySqlDate'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDate';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n}\n\nexport type MySqlDateStringBuilderInitial<TName extends string> = MySqlDateStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateString'>>\n\textends MySqlColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateStringBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'MySqlDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateString<T extends ColumnBaseConfig<'string', 'MySqlDateString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateString';\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `date`;\n\t}\n}\n\nexport interface MySqlDateConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function date(): MySqlDateBuilderInitial<''>;\nexport function date<TMode extends MySqlDateConfig['mode'] & {}>(\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<''> : MySqlDateBuilderInitial<''>;\nexport function date<TName extends string, TMode extends MySqlDateConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDateConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateStringBuilderInitial<TName> : MySqlDateBuilderInitial<TName>;\nexport function date(a?: string | MySqlDateConfig, b?: MySqlDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDateConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateStringBuilder(name);\n\t}\n\treturn new MySqlDateBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,aAAa,0BAA0B;AAWzC,MAAM,yBAAiF,mBAAsB;AAAA,EACnH,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,WAAW;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI,UAA2C,OAAO,KAAK,MAA8C;AAAA,EACjH;AACD;AAEO,MAAM,kBAAmE,YAAe;AAAA,EAC9F,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AACD;AAWO,MAAM,+BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,iBAAiB;AAAA,EACxC;AAAA;AAAA,EAGS,MACR,OACmD;AACnD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,wBAAiF,YAAe;AAAA,EAC5G,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAcO,SAAS,KAAK,GAA8B,GAAqB;AACvE,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAoD,GAAG,CAAC;AACjF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,uBAAuB,IAAI;AAAA,EACvC;AACA,SAAO,IAAI,iBAAiB,IAAI;AACjC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateTimeBuilderInitial<TName extends string> = MySqlDateTimeBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDateTime';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateTimeBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDateTime'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTime<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTime<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport type MySqlDateTimeStringBuilderInitial<TName extends string> = MySqlDateTimeStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateTimeString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateTimeStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateTimeString'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeStringBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'string', 'MySqlDateTimeString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTimeString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTimeString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTimeString<T extends ColumnBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeString';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n}\n\nexport type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tfsp?: DatetimeFsp;\n}\n\nexport function datetime(): MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<''> : MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TName extends string, TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<TName> : MySqlDateTimeBuilderInitial<TName>;\nexport function datetime(a?: string | MySqlDatetimeConfig, b?: MySqlDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateTimeStringBuilder(name, config);\n\t}\n\treturn new MySqlDateTimeBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAgD;AAYzC,MAAM,6BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,QAAQ,eAAe;AACnC,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA2E,0BAAe;AAAA,EACtG,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAYO,MAAM,mCACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,UAAU,qBAAqB;AAC3C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,0BAAe;AAAA,EACpH,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AACD;AAiBO,SAAS,SAAS,GAAkC,GAAyB;AACnF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAwD,GAAG,CAAC;AACrF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,2BAA2B,MAAM,MAAM;AAAA,EACnD;AACA,SAAO,IAAI,qBAAqB,MAAM,MAAM;AAC7C;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateTimeBuilderInitial<TName extends string> = MySqlDateTimeBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDateTime';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateTimeBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDateTime'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTime<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTime<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport type MySqlDateTimeStringBuilderInitial<TName extends string> = MySqlDateTimeStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateTimeString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateTimeStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateTimeString'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeStringBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'string', 'MySqlDateTimeString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTimeString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTimeString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTimeString<T extends ColumnBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeString';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n}\n\nexport type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tfsp?: DatetimeFsp;\n}\n\nexport function datetime(): MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<''> : MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TName extends string, TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<TName> : MySqlDateTimeBuilderInitial<TName>;\nexport function datetime(a?: string | MySqlDatetimeConfig, b?: MySqlDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateTimeStringBuilder(name, config);\n\t}\n\treturn new MySqlDateTimeBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAgD;AAWzC,MAAM,6BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,QAAQ,eAAe;AACnC,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA2E,0BAAe;AAAA,EACtG,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAWO,MAAM,mCACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,UAAU,qBAAqB;AAC3C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,0BAAe;AAAA,EACpH,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AACD;AAiBO,SAAS,SAAS,GAAkC,GAAyB;AACnF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAwD,GAAG,CAAC;AACrF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,2BAA2B,MAAM,MAAM;AAAA,EACnD;AACA,SAAO,IAAI,qBAAqB,MAAM,MAAM;AAC7C;","names":[]}
@@ -11,7 +11,6 @@ export type MySqlDateTimeBuilderInitial<TName extends string> = MySqlDateTimeBui
11
11
  data: Date;
12
12
  driverParam: string | number;
13
13
  enumValues: undefined;
14
- generated: undefined;
15
14
  }>;
16
15
  export declare class MySqlDateTimeBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumnBuilder<T, MySqlDatetimeConfig> {
17
16
  static readonly [entityKind]: string;
@@ -34,7 +33,6 @@ export type MySqlDateTimeStringBuilderInitial<TName extends string> = MySqlDateT
34
33
  data: string;
35
34
  driverParam: string | number;
36
35
  enumValues: undefined;
37
- generated: undefined;
38
36
  }>;
39
37
  export declare class MySqlDateTimeStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumnBuilder<T, MySqlDatetimeConfig> {
40
38
  static readonly [entityKind]: string;
@@ -11,7 +11,6 @@ export type MySqlDateTimeBuilderInitial<TName extends string> = MySqlDateTimeBui
11
11
  data: Date;
12
12
  driverParam: string | number;
13
13
  enumValues: undefined;
14
- generated: undefined;
15
14
  }>;
16
15
  export declare class MySqlDateTimeBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumnBuilder<T, MySqlDatetimeConfig> {
17
16
  static readonly [entityKind]: string;
@@ -34,7 +33,6 @@ export type MySqlDateTimeStringBuilderInitial<TName extends string> = MySqlDateT
34
33
  data: string;
35
34
  driverParam: string | number;
36
35
  enumValues: undefined;
37
- generated: undefined;
38
36
  }>;
39
37
  export declare class MySqlDateTimeStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumnBuilder<T, MySqlDatetimeConfig> {
40
38
  static readonly [entityKind]: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateTimeBuilderInitial<TName extends string> = MySqlDateTimeBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDateTime';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateTimeBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDateTime'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTime<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTime<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport type MySqlDateTimeStringBuilderInitial<TName extends string> = MySqlDateTimeStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateTimeString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class MySqlDateTimeStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateTimeString'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeStringBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'string', 'MySqlDateTimeString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTimeString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTimeString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTimeString<T extends ColumnBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeString';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n}\n\nexport type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tfsp?: DatetimeFsp;\n}\n\nexport function datetime(): MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<''> : MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TName extends string, TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<TName> : MySqlDateTimeBuilderInitial<TName>;\nexport function datetime(a?: string | MySqlDatetimeConfig, b?: MySqlDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateTimeStringBuilder(name, config);\n\t}\n\treturn new MySqlDateTimeBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,aAAa,0BAA0B;AAYzC,MAAM,6BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,QAAQ,eAAe;AACnC,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA2E,YAAe;AAAA,EACtG,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAYO,MAAM,mCACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,UAAU,qBAAqB;AAC3C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,YAAe;AAAA,EACpH,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AACD;AAiBO,SAAS,SAAS,GAAkC,GAAyB;AACnF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAwD,GAAG,CAAC;AACrF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,2BAA2B,MAAM,MAAM;AAAA,EACnD;AACA,SAAO,IAAI,qBAAqB,MAAM,MAAM;AAC7C;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlDateTimeBuilderInitial<TName extends string> = MySqlDateTimeBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'MySqlDateTime';\n\tdata: Date;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateTimeBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDateTime'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTime<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTime<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport type MySqlDateTimeStringBuilderInitial<TName extends string> = MySqlDateTimeStringBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDateTimeString';\n\tdata: string;\n\tdriverParam: string | number;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDateTimeStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateTimeString'>>\n\textends MySqlColumnBuilder<T, MySqlDatetimeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeStringBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'string', 'MySqlDateTimeString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDateTimeString<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDateTimeString<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTimeString<T extends ColumnBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeString';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeStringBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n}\n\nexport type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tfsp?: DatetimeFsp;\n}\n\nexport function datetime(): MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<''> : MySqlDateTimeBuilderInitial<''>;\nexport function datetime<TName extends string, TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<TName> : MySqlDateTimeBuilderInitial<TName>;\nexport function datetime(a?: string | MySqlDatetimeConfig, b?: MySqlDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateTimeStringBuilder(name, config);\n\t}\n\treturn new MySqlDateTimeBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,aAAa,0BAA0B;AAWzC,MAAM,6BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,QAAQ,eAAe;AACnC,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA2E,YAAe;AAAA,EACtG,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAWO,MAAM,mCACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyC;AACrE,UAAM,MAAM,UAAU,qBAAqB;AAC3C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,YAAe;AAAA,EACpH,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AACD;AAiBO,SAAS,SAAS,GAAkC,GAAyB;AACnF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAwD,GAAG,CAAC;AACrF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,2BAA2B,MAAM,MAAM;AAAA,EACnD;AACA,SAAO,IAAI,qBAAqB,MAAM,MAAM;AAC7C;","names":[]}