sonamu 0.4.14 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/.swcrc +15 -0
  2. package/dist/api/base-frame.d.ts +8 -0
  3. package/dist/api/base-frame.d.ts.map +1 -0
  4. package/dist/api/base-frame.js +2 -0
  5. package/dist/api/base-frame.js.map +1 -0
  6. package/dist/api/caster.d.ts +5 -0
  7. package/dist/api/caster.d.ts.map +1 -0
  8. package/dist/api/caster.js +2 -0
  9. package/dist/api/caster.js.map +1 -0
  10. package/dist/api/code-converters.d.ts +23 -0
  11. package/dist/api/code-converters.d.ts.map +1 -0
  12. package/dist/api/code-converters.js +2 -0
  13. package/dist/api/code-converters.js.map +1 -0
  14. package/dist/api/context.d.ts +19 -0
  15. package/dist/api/context.d.ts.map +1 -0
  16. package/dist/api/context.js +2 -0
  17. package/dist/api/context.js.map +1 -0
  18. package/dist/api/decorators.d.ts +50 -0
  19. package/dist/api/decorators.d.ts.map +1 -0
  20. package/dist/api/decorators.js +2 -0
  21. package/dist/api/decorators.js.map +1 -0
  22. package/dist/api/index.d.ts +8 -0
  23. package/dist/api/index.d.ts.map +1 -0
  24. package/dist/api/index.js +2 -0
  25. package/dist/api/index.js.map +1 -0
  26. package/dist/api/sonamu.d.ts +84 -0
  27. package/dist/api/sonamu.d.ts.map +1 -0
  28. package/dist/api/sonamu.js +2 -0
  29. package/dist/api/sonamu.js.map +1 -0
  30. package/dist/bin/build-config.d.ts +9 -0
  31. package/dist/bin/build-config.d.ts.map +1 -0
  32. package/dist/bin/build-config.js +2 -0
  33. package/dist/bin/build-config.js.map +1 -0
  34. package/dist/bin/cli-wrapper.d.ts +2 -0
  35. package/dist/bin/cli-wrapper.d.ts.map +1 -0
  36. package/dist/bin/cli-wrapper.js +1 -38
  37. package/dist/bin/cli-wrapper.js.map +1 -1
  38. package/dist/bin/cli.d.ts +2 -2
  39. package/dist/bin/cli.d.ts.map +1 -0
  40. package/dist/bin/cli.js +1 -903
  41. package/dist/bin/cli.js.map +1 -1
  42. package/dist/database/_batch_update.d.ts +15 -0
  43. package/dist/database/_batch_update.d.ts.map +1 -0
  44. package/dist/database/_batch_update.js +2 -0
  45. package/dist/database/_batch_update.js.map +1 -0
  46. package/dist/database/base-model.d.ts +48 -0
  47. package/dist/database/base-model.d.ts.map +1 -0
  48. package/dist/database/base-model.js +2 -0
  49. package/dist/database/base-model.js.map +1 -0
  50. package/dist/database/code-generator.d.ts +13 -0
  51. package/dist/database/code-generator.d.ts.map +1 -0
  52. package/dist/database/code-generator.js +2 -0
  53. package/dist/database/code-generator.js.map +1 -0
  54. package/dist/database/db.d.ts +40 -0
  55. package/dist/database/db.d.ts.map +1 -0
  56. package/dist/database/db.js +2 -0
  57. package/dist/database/db.js.map +1 -0
  58. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +2 -0
  59. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +1 -0
  60. package/dist/database/knex-plugins/knex-on-duplicate-update.js +2 -0
  61. package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +1 -0
  62. package/dist/database/puri-wrapper.d.ts +34 -0
  63. package/dist/database/puri-wrapper.d.ts.map +1 -0
  64. package/dist/database/puri-wrapper.js +2 -0
  65. package/dist/database/puri-wrapper.js.map +1 -0
  66. package/dist/database/puri.d.ts +83 -0
  67. package/dist/database/puri.d.ts.map +1 -0
  68. package/dist/database/puri.js +2 -0
  69. package/dist/database/puri.js.map +1 -0
  70. package/dist/database/puri.types.d.ts +60 -0
  71. package/dist/database/puri.types.d.ts.map +1 -0
  72. package/dist/database/puri.types.js +2 -0
  73. package/dist/database/puri.types.js.map +1 -0
  74. package/dist/database/transaction-context.d.ts +9 -0
  75. package/dist/database/transaction-context.d.ts.map +1 -0
  76. package/dist/database/transaction-context.js +2 -0
  77. package/dist/database/transaction-context.js.map +1 -0
  78. package/dist/database/upsert-builder.d.ts +34 -0
  79. package/dist/database/upsert-builder.d.ts.map +1 -0
  80. package/dist/database/upsert-builder.js +2 -0
  81. package/dist/database/upsert-builder.js.map +1 -0
  82. package/dist/entity/entity-manager.d.ts +32 -0
  83. package/dist/entity/entity-manager.d.ts.map +1 -0
  84. package/dist/entity/entity-manager.js +2 -0
  85. package/dist/entity/entity-manager.js.map +1 -0
  86. package/dist/entity/entity-utils.d.ts +61 -0
  87. package/dist/entity/entity-utils.d.ts.map +1 -0
  88. package/dist/entity/entity-utils.js +2 -0
  89. package/dist/entity/entity-utils.js.map +1 -0
  90. package/dist/entity/entity.d.ts +62 -0
  91. package/dist/entity/entity.d.ts.map +1 -0
  92. package/dist/entity/entity.js +2 -0
  93. package/dist/entity/entity.js.map +1 -0
  94. package/dist/entity/migrator.d.ts +135 -0
  95. package/dist/entity/migrator.d.ts.map +1 -0
  96. package/dist/entity/migrator.js +2 -0
  97. package/dist/entity/migrator.js.map +1 -0
  98. package/dist/exceptions/error-handler.d.ts +3 -0
  99. package/dist/exceptions/error-handler.d.ts.map +1 -0
  100. package/dist/exceptions/error-handler.js +2 -0
  101. package/dist/exceptions/error-handler.js.map +1 -0
  102. package/dist/exceptions/so-exceptions.d.ts +48 -0
  103. package/dist/exceptions/so-exceptions.d.ts.map +1 -0
  104. package/dist/exceptions/so-exceptions.js +2 -0
  105. package/dist/exceptions/so-exceptions.js.map +1 -0
  106. package/dist/file-storage/driver.d.ts +48 -0
  107. package/dist/file-storage/driver.d.ts.map +1 -0
  108. package/dist/file-storage/driver.js +2 -0
  109. package/dist/file-storage/driver.js.map +1 -0
  110. package/dist/file-storage/file-storage.d.ts +50 -0
  111. package/dist/file-storage/file-storage.d.ts.map +1 -0
  112. package/dist/file-storage/file-storage.js +2 -0
  113. package/dist/file-storage/file-storage.js.map +1 -0
  114. package/dist/index.d.ts +23 -813
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +1 -433
  117. package/dist/index.js.map +1 -1
  118. package/dist/migration/code-generation.d.ts +15 -0
  119. package/dist/migration/code-generation.d.ts.map +1 -0
  120. package/dist/migration/code-generation.js +2 -0
  121. package/dist/migration/code-generation.js.map +1 -0
  122. package/dist/migration/migration-set.d.ts +17 -0
  123. package/dist/migration/migration-set.d.ts.map +1 -0
  124. package/dist/migration/migration-set.js +2 -0
  125. package/dist/migration/migration-set.js.map +1 -0
  126. package/dist/migration/migrator.d.ts +130 -0
  127. package/dist/migration/migrator.d.ts.map +1 -0
  128. package/dist/migration/migrator.js +2 -0
  129. package/dist/migration/migrator.js.map +1 -0
  130. package/dist/migration/types.d.ts +52 -0
  131. package/dist/migration/types.d.ts.map +1 -0
  132. package/dist/migration/types.js +2 -0
  133. package/dist/migration/types.js.map +1 -0
  134. package/dist/stream/index.d.ts +2 -0
  135. package/dist/stream/index.d.ts.map +1 -0
  136. package/dist/stream/index.js +2 -0
  137. package/dist/stream/index.js.map +1 -0
  138. package/dist/stream/sse.d.ts +13 -0
  139. package/dist/stream/sse.d.ts.map +1 -0
  140. package/dist/stream/sse.js +2 -0
  141. package/dist/stream/sse.js.map +1 -0
  142. package/dist/syncer/index.d.ts +2 -0
  143. package/dist/syncer/index.d.ts.map +1 -0
  144. package/dist/syncer/index.js +2 -0
  145. package/dist/syncer/index.js.map +1 -0
  146. package/dist/syncer/syncer.d.ts +127 -0
  147. package/dist/syncer/syncer.d.ts.map +1 -0
  148. package/dist/syncer/syncer.js +2 -0
  149. package/dist/syncer/syncer.js.map +1 -0
  150. package/dist/templates/base-template.d.ts +13 -0
  151. package/dist/templates/base-template.d.ts.map +1 -0
  152. package/dist/templates/base-template.js +2 -0
  153. package/dist/templates/base-template.js.map +1 -0
  154. package/dist/templates/entity.template.d.ts +17 -0
  155. package/dist/templates/entity.template.d.ts.map +1 -0
  156. package/dist/templates/entity.template.js +2 -0
  157. package/dist/templates/entity.template.js.map +1 -0
  158. package/dist/templates/generated.template.d.ts +27 -0
  159. package/dist/templates/generated.template.d.ts.map +1 -0
  160. package/dist/templates/generated.template.js +2 -0
  161. package/dist/templates/generated.template.js.map +1 -0
  162. package/dist/templates/generated_http.template.d.ts +24 -0
  163. package/dist/templates/generated_http.template.d.ts.map +1 -0
  164. package/dist/templates/generated_http.template.js +2 -0
  165. package/dist/templates/generated_http.template.js.map +1 -0
  166. package/dist/templates/generated_sso.template.d.ts +20 -0
  167. package/dist/templates/generated_sso.template.d.ts.map +1 -0
  168. package/dist/templates/generated_sso.template.js +2 -0
  169. package/dist/templates/generated_sso.template.js.map +1 -0
  170. package/dist/templates/index.d.ts +2 -0
  171. package/dist/templates/index.d.ts.map +1 -0
  172. package/dist/templates/index.js +2 -0
  173. package/dist/templates/index.js.map +1 -0
  174. package/dist/templates/init_types.template.d.ts +17 -0
  175. package/dist/templates/init_types.template.d.ts.map +1 -0
  176. package/dist/templates/init_types.template.js +2 -0
  177. package/dist/templates/init_types.template.js.map +1 -0
  178. package/dist/templates/model.template.d.ts +17 -0
  179. package/dist/templates/model.template.d.ts.map +1 -0
  180. package/dist/templates/model.template.js +2 -0
  181. package/dist/templates/model.template.js.map +1 -0
  182. package/dist/templates/model_test.template.d.ts +17 -0
  183. package/dist/templates/model_test.template.d.ts.map +1 -0
  184. package/dist/templates/model_test.template.js +2 -0
  185. package/dist/templates/model_test.template.js.map +1 -0
  186. package/dist/templates/service.template.d.ts +29 -0
  187. package/dist/templates/service.template.d.ts.map +1 -0
  188. package/dist/templates/service.template.js +2 -0
  189. package/dist/templates/service.template.js.map +1 -0
  190. package/dist/templates/view_enums_buttonset.template.d.ts +17 -0
  191. package/dist/templates/view_enums_buttonset.template.d.ts.map +1 -0
  192. package/dist/templates/view_enums_buttonset.template.js +2 -0
  193. package/dist/templates/view_enums_buttonset.template.js.map +1 -0
  194. package/dist/templates/view_enums_dropdown.template.d.ts +18 -0
  195. package/dist/templates/view_enums_dropdown.template.d.ts.map +1 -0
  196. package/dist/templates/view_enums_dropdown.template.js +2 -0
  197. package/dist/templates/view_enums_dropdown.template.js.map +1 -0
  198. package/dist/templates/view_enums_select.template.d.ts +17 -0
  199. package/dist/templates/view_enums_select.template.d.ts.map +1 -0
  200. package/dist/templates/view_enums_select.template.js +2 -0
  201. package/dist/templates/view_enums_select.template.js.map +1 -0
  202. package/dist/templates/view_form.template.d.ts +26 -0
  203. package/dist/templates/view_form.template.d.ts.map +1 -0
  204. package/dist/templates/view_form.template.js +2 -0
  205. package/dist/templates/view_form.template.js.map +1 -0
  206. package/dist/templates/view_id_all_select.template.d.ts +17 -0
  207. package/dist/templates/view_id_all_select.template.d.ts.map +1 -0
  208. package/dist/templates/view_id_all_select.template.js +2 -0
  209. package/dist/templates/view_id_all_select.template.js.map +1 -0
  210. package/dist/templates/view_id_async_select.template.d.ts +17 -0
  211. package/dist/templates/view_id_async_select.template.d.ts.map +1 -0
  212. package/dist/templates/view_id_async_select.template.js +2 -0
  213. package/dist/templates/view_id_async_select.template.js.map +1 -0
  214. package/dist/templates/view_list.template.d.ts +38 -0
  215. package/dist/templates/view_list.template.d.ts.map +1 -0
  216. package/dist/templates/view_list.template.js +2 -0
  217. package/dist/templates/view_list.template.js.map +1 -0
  218. package/dist/templates/view_list_columns.template.d.ts +17 -0
  219. package/dist/templates/view_list_columns.template.d.ts.map +1 -0
  220. package/dist/templates/view_list_columns.template.js +2 -0
  221. package/dist/templates/view_list_columns.template.js.map +1 -0
  222. package/dist/templates/view_search_input.template.d.ts +17 -0
  223. package/dist/templates/view_search_input.template.d.ts.map +1 -0
  224. package/dist/templates/view_search_input.template.js +2 -0
  225. package/dist/templates/view_search_input.template.js.map +1 -0
  226. package/dist/testing/_relation-graph.d.ts +7 -0
  227. package/dist/testing/_relation-graph.d.ts.map +1 -0
  228. package/dist/testing/_relation-graph.js +2 -0
  229. package/dist/testing/_relation-graph.js.map +1 -0
  230. package/dist/testing/fixture-manager.d.ts +35 -0
  231. package/dist/testing/fixture-manager.d.ts.map +1 -0
  232. package/dist/testing/fixture-manager.js +2 -0
  233. package/dist/testing/fixture-manager.js.map +1 -0
  234. package/dist/types/types.d.ts +611 -0
  235. package/dist/types/types.d.ts.map +1 -0
  236. package/dist/types/types.js +2 -0
  237. package/dist/types/types.js.map +1 -0
  238. package/dist/typings/knex.d.js +2 -0
  239. package/dist/typings/knex.d.js.map +1 -0
  240. package/dist/utils/async-utils.d.ts +25 -0
  241. package/dist/utils/async-utils.d.ts.map +1 -0
  242. package/dist/utils/async-utils.js +2 -0
  243. package/dist/utils/async-utils.js.map +1 -0
  244. package/dist/utils/controller.d.ts +9 -0
  245. package/dist/utils/controller.d.ts.map +1 -0
  246. package/dist/utils/controller.js +2 -0
  247. package/dist/utils/controller.js.map +1 -0
  248. package/dist/utils/fs-utils.d.ts +9 -0
  249. package/dist/utils/fs-utils.d.ts.map +1 -0
  250. package/dist/utils/fs-utils.js +2 -0
  251. package/dist/utils/fs-utils.js.map +1 -0
  252. package/dist/utils/lodash-able.d.ts +2 -0
  253. package/dist/utils/lodash-able.d.ts.map +1 -0
  254. package/dist/utils/lodash-able.js +2 -0
  255. package/dist/utils/lodash-able.js.map +1 -0
  256. package/dist/utils/model.d.ts +17 -0
  257. package/dist/utils/model.d.ts.map +1 -0
  258. package/dist/utils/model.js +2 -0
  259. package/dist/utils/model.js.map +1 -0
  260. package/dist/utils/sql-parser.d.ts +4 -0
  261. package/dist/utils/sql-parser.d.ts.map +1 -0
  262. package/dist/utils/sql-parser.js +2 -0
  263. package/dist/utils/sql-parser.js.map +1 -0
  264. package/dist/utils/utils.d.ts +9 -0
  265. package/dist/utils/utils.d.ts.map +1 -0
  266. package/dist/utils/utils.js +2 -0
  267. package/dist/utils/utils.js.map +1 -0
  268. package/dist/utils/zod-error.d.ts +8 -0
  269. package/dist/utils/zod-error.d.ts.map +1 -0
  270. package/dist/utils/zod-error.js +2 -0
  271. package/dist/utils/zod-error.js.map +1 -0
  272. package/nodemon.json +6 -0
  273. package/package.json +32 -45
  274. package/src/api/base-frame.ts +3 -4
  275. package/src/api/caster.ts +22 -23
  276. package/src/api/code-converters.ts +170 -134
  277. package/src/api/context.ts +15 -3
  278. package/src/api/decorators.ts +144 -20
  279. package/src/api/index.ts +2 -0
  280. package/src/api/sonamu.ts +408 -165
  281. package/src/bin/build-config.ts +10 -0
  282. package/src/bin/cli-wrapper.ts +35 -32
  283. package/src/bin/cli.ts +141 -204
  284. package/src/database/_batch_update.ts +10 -15
  285. package/src/database/base-model.ts +326 -216
  286. package/src/database/db.ts +191 -21
  287. package/src/database/{drivers/knex/plugins → knex-plugins}/knex-on-duplicate-update.ts +1 -1
  288. package/src/database/puri-wrapper.ts +129 -0
  289. package/src/database/puri.ts +808 -0
  290. package/src/database/puri.types.ts +222 -0
  291. package/src/database/transaction-context.ts +18 -0
  292. package/src/database/upsert-builder.ts +32 -35
  293. package/src/entity/entity-manager.ts +7 -15
  294. package/src/entity/entity.ts +9 -31
  295. package/src/entity/migrator-/354/235/264/354/202/254/352/260/224/354/226/264/354/232/224.md +1 -0
  296. package/src/file-storage/driver.ts +131 -0
  297. package/src/file-storage/file-storage.ts +100 -0
  298. package/src/index.ts +15 -11
  299. package/src/migration/code-generation.ts +777 -0
  300. package/src/migration/migration-set.ts +453 -0
  301. package/src/migration/migrator.ts +823 -0
  302. package/src/migration/types.ts +53 -0
  303. package/src/shared/web.shared.ts.txt +33 -2
  304. package/src/stream/index.ts +1 -0
  305. package/src/stream/sse.ts +49 -0
  306. package/src/syncer/syncer.ts +294 -127
  307. package/src/templates/generated.template.ts +13 -1
  308. package/src/templates/generated_http.template.ts +15 -12
  309. package/src/templates/generated_sso.template.ts +50 -2
  310. package/src/templates/model.template.ts +138 -2
  311. package/src/templates/service.template.ts +0 -1
  312. package/src/templates/view_form.template.ts +11 -7
  313. package/src/templates/view_list.template.ts +12 -4
  314. package/src/testing/fixture-manager.ts +229 -174
  315. package/src/types/types.ts +108 -14
  316. package/src/utils/async-utils.ts +64 -0
  317. package/src/utils/fs-utils.ts +17 -0
  318. package/src/utils/model.ts +0 -2
  319. package/src/utils/utils.ts +14 -58
  320. package/src/utils/zod-error.ts +12 -176
  321. package/tsconfig.json +6 -0
  322. package/tsup.config.js +4 -2
  323. package/.pnp.cjs +0 -14363
  324. package/.pnp.loader.mjs +0 -2047
  325. package/.vscode/extensions.json +0 -6
  326. package/.vscode/settings.json +0 -9
  327. package/.yarnrc.yml +0 -5
  328. package/dist/base-model-CEB0H0aO.d.mts +0 -43
  329. package/dist/base-model-CrqDMYhI.d.ts +0 -43
  330. package/dist/bin/cli-wrapper.d.mts +0 -1
  331. package/dist/bin/cli-wrapper.mjs +0 -43
  332. package/dist/bin/cli-wrapper.mjs.map +0 -1
  333. package/dist/bin/cli.d.mts +0 -2
  334. package/dist/bin/cli.mjs +0 -907
  335. package/dist/bin/cli.mjs.map +0 -1
  336. package/dist/chunk-2WAC2GER.js +0 -7625
  337. package/dist/chunk-2WAC2GER.js.map +0 -1
  338. package/dist/chunk-C3IPIF6O.mjs +0 -1581
  339. package/dist/chunk-C3IPIF6O.mjs.map +0 -1
  340. package/dist/chunk-EXHKSVTE.js +0 -280
  341. package/dist/chunk-EXHKSVTE.js.map +0 -1
  342. package/dist/chunk-FCERKIIF.mjs +0 -7623
  343. package/dist/chunk-FCERKIIF.mjs.map +0 -1
  344. package/dist/chunk-HGIBJYOU.mjs +0 -231
  345. package/dist/chunk-HGIBJYOU.mjs.map +0 -1
  346. package/dist/chunk-JKSOJRQA.mjs +0 -280
  347. package/dist/chunk-JKSOJRQA.mjs.map +0 -1
  348. package/dist/chunk-OTKKFP3Y.js +0 -1581
  349. package/dist/chunk-OTKKFP3Y.js.map +0 -1
  350. package/dist/chunk-PTFDTOJU.mjs +0 -19
  351. package/dist/chunk-PTFDTOJU.mjs.map +0 -1
  352. package/dist/chunk-UZ2IY5VE.js +0 -231
  353. package/dist/chunk-UZ2IY5VE.js.map +0 -1
  354. package/dist/database/drivers/knex/base-model.d.mts +0 -16
  355. package/dist/database/drivers/knex/base-model.d.ts +0 -16
  356. package/dist/database/drivers/knex/base-model.js +0 -55
  357. package/dist/database/drivers/knex/base-model.js.map +0 -1
  358. package/dist/database/drivers/knex/base-model.mjs +0 -56
  359. package/dist/database/drivers/knex/base-model.mjs.map +0 -1
  360. package/dist/database/drivers/kysely/base-model.d.mts +0 -22
  361. package/dist/database/drivers/kysely/base-model.d.ts +0 -22
  362. package/dist/database/drivers/kysely/base-model.js +0 -64
  363. package/dist/database/drivers/kysely/base-model.js.map +0 -1
  364. package/dist/database/drivers/kysely/base-model.mjs +0 -65
  365. package/dist/database/drivers/kysely/base-model.mjs.map +0 -1
  366. package/dist/index.d.mts +0 -813
  367. package/dist/index.mjs +0 -435
  368. package/dist/index.mjs.map +0 -1
  369. package/dist/model-aFgomcdc.d.mts +0 -1112
  370. package/dist/model-aFgomcdc.d.ts +0 -1112
  371. package/src/database/base-model.abstract.ts +0 -97
  372. package/src/database/db.abstract.ts +0 -75
  373. package/src/database/drivers/knex/base-model.ts +0 -55
  374. package/src/database/drivers/knex/client.ts +0 -209
  375. package/src/database/drivers/knex/db.ts +0 -232
  376. package/src/database/drivers/knex/generator.ts +0 -659
  377. package/src/database/drivers/kysely/base-model.ts +0 -89
  378. package/src/database/drivers/kysely/client.ts +0 -309
  379. package/src/database/drivers/kysely/db.ts +0 -238
  380. package/src/database/drivers/kysely/generator.ts +0 -714
  381. package/src/database/types.ts +0 -118
  382. package/src/entity/migrator.ts +0 -1400
  383. package/src/smd/smd-manager.ts +0 -139
  384. package/src/smd/smd.ts +0 -571
  385. package/src/templates/kysely_types.template.ts +0 -205
@@ -1,55 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
- var _chunkUZ2IY5VEjs = require('../../../chunk-UZ2IY5VE.js');
4
-
5
-
6
- var _chunkEXHKSVTEjs = require('../../../chunk-EXHKSVTE.js');
7
-
8
-
9
-
10
- var _chunk2WAC2GERjs = require('../../../chunk-2WAC2GER.js');
11
-
12
- // src/database/drivers/knex/base-model.ts
13
- var BaseModelClass = class extends _chunkUZ2IY5VEjs.BaseModelClassAbstract {
14
- getDB(which) {
15
- return _chunk2WAC2GERjs.DB.getDB(which);
16
- }
17
- async destroy() {
18
- return _chunk2WAC2GERjs.DB.destroy();
19
- }
20
- getUpsertBuilder() {
21
- return new (0, _chunkEXHKSVTEjs.UpsertBuilder)();
22
- }
23
- applyJoins(clonedQb, joins) {
24
- for (const join of joins) {
25
- if (_chunk2WAC2GERjs.isCustomJoinClause.call(void 0, join)) {
26
- if (join.join === "inner") {
27
- clonedQb.qb = clonedQb.qb.innerJoin(
28
- `${join.table} as ${join.as}`,
29
- join.custom
30
- );
31
- } else {
32
- clonedQb.qb = clonedQb.qb.leftJoin(
33
- `${join.table} as ${join.as}`,
34
- join.custom
35
- );
36
- }
37
- } else {
38
- if (join.join === "inner") {
39
- clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
40
- } else if (join.join === "outer") {
41
- clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
42
- }
43
- }
44
- }
45
- return clonedQb;
46
- }
47
- async executeCountQuery(qb) {
48
- const result = await qb.clear("select").count("* as total").first();
49
- return _nullishCoalesce(Number(_optionalChain([result, 'optionalAccess', _ => _.total])), () => ( 0));
50
- }
51
- };
52
-
53
-
54
- exports.BaseModelClass = BaseModelClass;
55
- //# sourceMappingURL=base-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/database/drivers/knex/base-model.ts"],"names":[],"mappings":";;;;;;;;;;;;AASO,IAAM,iBAAN,cAA6B,uBAA+B;AAAA,EACjE,MAAM,OAAuB;AAC3B,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAsB;AAAA,EACnC;AAAA,EAEU,WACR,UACA,OACY;AACZ,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF,OAAO;AACL,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACtE,WAAW,KAAK,SAAS,SAAS;AAChC,mBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACrE;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBAAkB,IAAwC;AACxE,UAAM,SAAS,MAAM,GAAG,MAAM,QAAQ,EAAE,MAAM,YAAY,EAAE,MAAM;AAClE,WAAO,OAAO,QAAQ,KAAK,KAAK;AAAA,EAClC;AACF","sourcesContent":["// base-model.knex.ts\nimport { Knex } from \"knex\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { KnexClient } from \"./client\";\nimport { DBPreset } from \"../../types\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"knex\"> {\n getDB(which: DBPreset): Knex {\n return DB.getDB(which) as Knex;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"knex\">();\n }\n\n protected applyJoins(\n clonedQb: KnexClient,\n joins: SubsetQuery[\"joins\"]\n ): KnexClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n if (join.join === \"inner\") {\n clonedQb.qb = clonedQb.qb.innerJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n } else {\n clonedQb.qb = clonedQb.qb.leftJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n }\n } else {\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n }\n return clonedQb;\n }\n\n protected async executeCountQuery(qb: Knex.QueryBuilder): Promise<number> {\n const result = await qb.clear(\"select\").count(\"* as total\").first();\n return Number(result?.total) ?? 0;\n }\n}\n"]}
@@ -1,56 +0,0 @@
1
- import {
2
- BaseModelClassAbstract
3
- } from "../../../chunk-HGIBJYOU.mjs";
4
- import {
5
- UpsertBuilder
6
- } from "../../../chunk-JKSOJRQA.mjs";
7
- import {
8
- DB,
9
- isCustomJoinClause
10
- } from "../../../chunk-FCERKIIF.mjs";
11
- import "../../../chunk-PTFDTOJU.mjs";
12
-
13
- // src/database/drivers/knex/base-model.ts
14
- var BaseModelClass = class extends BaseModelClassAbstract {
15
- getDB(which) {
16
- return DB.getDB(which);
17
- }
18
- async destroy() {
19
- return DB.destroy();
20
- }
21
- getUpsertBuilder() {
22
- return new UpsertBuilder();
23
- }
24
- applyJoins(clonedQb, joins) {
25
- for (const join of joins) {
26
- if (isCustomJoinClause(join)) {
27
- if (join.join === "inner") {
28
- clonedQb.qb = clonedQb.qb.innerJoin(
29
- `${join.table} as ${join.as}`,
30
- join.custom
31
- );
32
- } else {
33
- clonedQb.qb = clonedQb.qb.leftJoin(
34
- `${join.table} as ${join.as}`,
35
- join.custom
36
- );
37
- }
38
- } else {
39
- if (join.join === "inner") {
40
- clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
41
- } else if (join.join === "outer") {
42
- clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
43
- }
44
- }
45
- }
46
- return clonedQb;
47
- }
48
- async executeCountQuery(qb) {
49
- const result = await qb.clear("select").count("* as total").first();
50
- return Number(result?.total) ?? 0;
51
- }
52
- };
53
- export {
54
- BaseModelClass
55
- };
56
- //# sourceMappingURL=base-model.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/database/drivers/knex/base-model.ts"],"sourcesContent":["// base-model.knex.ts\nimport { Knex } from \"knex\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { KnexClient } from \"./client\";\nimport { DBPreset } from \"../../types\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"knex\"> {\n getDB(which: DBPreset): Knex {\n return DB.getDB(which) as Knex;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"knex\">();\n }\n\n protected applyJoins(\n clonedQb: KnexClient,\n joins: SubsetQuery[\"joins\"]\n ): KnexClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n if (join.join === \"inner\") {\n clonedQb.qb = clonedQb.qb.innerJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n } else {\n clonedQb.qb = clonedQb.qb.leftJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n }\n } else {\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n }\n return clonedQb;\n }\n\n protected async executeCountQuery(qb: Knex.QueryBuilder): Promise<number> {\n const result = await qb.clear(\"select\").count(\"* as total\").first();\n return Number(result?.total) ?? 0;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AASO,IAAM,iBAAN,cAA6B,uBAA+B;AAAA,EACjE,MAAM,OAAuB;AAC3B,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAsB;AAAA,EACnC;AAAA,EAEU,WACR,UACA,OACY;AACZ,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF,OAAO;AACL,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACtE,WAAW,KAAK,SAAS,SAAS;AAChC,mBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACrE;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBAAkB,IAAwC;AACxE,UAAM,SAAS,MAAM,GAAG,MAAM,QAAQ,EAAE,MAAM,YAAY,EAAE,MAAM;AAClE,WAAO,OAAO,QAAQ,KAAK,KAAK;AAAA,EAClC;AACF;","names":[]}
@@ -1,22 +0,0 @@
1
- import { Kysely, SelectQueryBuilder } from 'kysely';
2
- import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-aFgomcdc.mjs';
3
- import { B as BaseModelClassAbstract } from '../../../base-model-CEB0H0aO.mjs';
4
- import { UndirectedOrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser';
5
- import 'knex';
6
- import 'zod';
7
- import 'mysql2';
8
-
9
- type TB = keyof Database;
10
- declare class BaseModelClass extends BaseModelClassAbstract<"kysely"> {
11
- getDB(which: DBPreset): Kysely<Database>;
12
- destroy(): Promise<void>;
13
- getUpsertBuilder(): UpsertBuilder<"kysely">;
14
- protected applyJoins(clonedQb: KyselyClient, joins: SubsetQuery["joins"]): KyselyClient;
15
- protected executeCountQuery(qb: SelectQueryBuilder<Database, TB, any>): Promise<number>;
16
- parseOrderBy(orderBy: string): [
17
- UndirectedOrderByExpression<Database, keyof Database, {}>,
18
- "asc" | "desc"
19
- ];
20
- }
21
-
22
- export { BaseModelClass };
@@ -1,22 +0,0 @@
1
- import { Kysely, SelectQueryBuilder } from 'kysely';
2
- import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-aFgomcdc.js';
3
- import { B as BaseModelClassAbstract } from '../../../base-model-CrqDMYhI.js';
4
- import { UndirectedOrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser';
5
- import 'knex';
6
- import 'zod';
7
- import 'mysql2';
8
-
9
- type TB = keyof Database;
10
- declare class BaseModelClass extends BaseModelClassAbstract<"kysely"> {
11
- getDB(which: DBPreset): Kysely<Database>;
12
- destroy(): Promise<void>;
13
- getUpsertBuilder(): UpsertBuilder<"kysely">;
14
- protected applyJoins(clonedQb: KyselyClient, joins: SubsetQuery["joins"]): KyselyClient;
15
- protected executeCountQuery(qb: SelectQueryBuilder<Database, TB, any>): Promise<number>;
16
- parseOrderBy(orderBy: string): [
17
- UndirectedOrderByExpression<Database, keyof Database, {}>,
18
- "asc" | "desc"
19
- ];
20
- }
21
-
22
- export { BaseModelClass };
@@ -1,64 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
-
3
- var _chunkUZ2IY5VEjs = require('../../../chunk-UZ2IY5VE.js');
4
-
5
-
6
- var _chunkEXHKSVTEjs = require('../../../chunk-EXHKSVTE.js');
7
-
8
-
9
-
10
-
11
- var _chunk2WAC2GERjs = require('../../../chunk-2WAC2GER.js');
12
-
13
- // src/database/drivers/kysely/base-model.ts
14
- var _inflection = require('inflection'); var _inflection2 = _interopRequireDefault(_inflection);
15
- var BaseModelClass = class extends _chunkUZ2IY5VEjs.BaseModelClassAbstract {
16
- getDB(which) {
17
- return _chunk2WAC2GERjs.DB.getDB(which);
18
- }
19
- async destroy() {
20
- return _chunk2WAC2GERjs.DB.destroy();
21
- }
22
- getUpsertBuilder() {
23
- return new (0, _chunkEXHKSVTEjs.UpsertBuilder)();
24
- }
25
- applyJoins(clonedQb, joins) {
26
- for (const join of joins) {
27
- if (_chunk2WAC2GERjs.isCustomJoinClause.call(void 0, join)) {
28
- throw new Error("Custom join clause is not supported in Kysely");
29
- }
30
- if (join.join === "inner") {
31
- clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
32
- } else if (join.join === "outer") {
33
- clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
34
- }
35
- }
36
- return clonedQb;
37
- }
38
- async executeCountQuery(qb) {
39
- const result = await qb.clearSelect().select((eb) => eb.fn.count("id").as("total")).executeTakeFirstOrThrow();
40
- return Number(result.total);
41
- }
42
- parseOrderBy(orderBy) {
43
- const [_column, order] = orderBy.split("-");
44
- const [table, column] = _column.includes(".") ? _column.split(".") : [_inflection2.default.tableize(this.modelName), _column];
45
- if (order !== "asc" && order !== "desc") {
46
- throw new Error("parseOrderBy: Invalid order");
47
- }
48
- if (!column) {
49
- throw new Error("parseOrderBy: Invalid column");
50
- }
51
- const entity = _chunk2WAC2GERjs.EntityManager.get(_inflection2.default.classify(table));
52
- if (!entity.props.find((p) => p.name === column)) {
53
- throw new Error("parseOrderBy: \uD604\uC7AC \uC5D4\uD2F0\uD2F0\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uCEEC\uB7FC\uC785\uB2C8\uB2E4: ");
54
- }
55
- return [
56
- `${table}.${column}`,
57
- order
58
- ];
59
- }
60
- };
61
-
62
-
63
- exports.BaseModelClass = BaseModelClass;
64
- //# sourceMappingURL=base-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/database/drivers/kysely/base-model.ts"],"names":[],"mappings":";;;;;;;;;;;;;AASA,OAAO,gBAAgB;AAIhB,IAAM,iBAAN,cAA6B,uBAAiC;AAAA,EACnE,MAAM,OAAmC;AACvC,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAwB;AAAA,EACrC;AAAA,EAEU,WACR,UACA,OACc;AACd,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,cAAM,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,UAAI,KAAK,SAAS,SAAS;AACzB,iBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACtE,WAAW,KAAK,SAAS,SAAS;AAChC,iBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACrE;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBACd,IACiB;AACjB,UAAM,SAAS,MAAM,GAClB,YAAY,EACZ,OAAO,CAAC,OAAO,GAAG,GAAG,MAAM,IAAW,EAAE,GAAG,OAAO,CAAC,EACnD,wBAAwB;AAC3B,WAAO,OAAO,OAAO,KAAK;AAAA,EAC5B;AAAA,EAEA,aACE,SAIA;AACA,UAAM,CAAC,SAAS,KAAK,IAAI,QAAQ,MAAM,GAAG;AAE1C,UAAM,CAAC,OAAO,MAAM,IAAI,QAAQ,SAAS,GAAG,IACxC,QAAQ,MAAM,GAAG,IACjB,CAAC,WAAW,SAAS,KAAK,SAAS,GAAG,OAAO;AAEjD,QAAI,UAAU,SAAS,UAAU,QAAQ;AACvC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM,SAAS,cAAc,IAAI,WAAW,SAAS,KAAK,CAAC;AAC3D,QAAI,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG;AAChD,YAAM,IAAI,MAAM,4HAAuC;AAAA,IACzD;AAEA,WAAO;AAAA,MACL,GAAG,KAAK,IAAI,MAAM;AAAA,MAKlB;AAAA,IACF;AAAA,EACF;AACF","sourcesContent":["import { Kysely, SelectQueryBuilder } from \"kysely\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { DBPreset, Database } from \"../../types\";\nimport { KyselyClient } from \"./client\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\nimport { UndirectedOrderByExpression } from \"kysely/dist/cjs/parser/order-by-parser\";\nimport { EntityManager } from \"../../../entity/entity-manager\";\nimport inflection from \"inflection\";\n\ntype TB = keyof Database;\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"kysely\"> {\n getDB(which: DBPreset): Kysely<Database> {\n return DB.getDB(which) as Kysely<Database>;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"kysely\">();\n }\n\n protected applyJoins(\n clonedQb: KyselyClient,\n joins: SubsetQuery[\"joins\"]\n ): KyselyClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n throw new Error(\"Custom join clause is not supported in Kysely\");\n }\n\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n\n return clonedQb;\n }\n\n protected async executeCountQuery(\n qb: SelectQueryBuilder<Database, TB, any>\n ): Promise<number> {\n const result = await qb\n .clearSelect()\n .select((eb) => eb.fn.count(\"id\" as any).as(\"total\"))\n .executeTakeFirstOrThrow();\n return Number(result.total);\n }\n\n parseOrderBy(\n orderBy: string\n ): [\n UndirectedOrderByExpression<Database, keyof Database, {}>,\n \"asc\" | \"desc\",\n ] {\n const [_column, order] = orderBy.split(\"-\");\n // FIXME: 조인 2개 이상일 때 처리\n const [table, column] = _column.includes(\".\")\n ? _column.split(\".\")\n : [inflection.tableize(this.modelName), _column];\n\n if (order !== \"asc\" && order !== \"desc\") {\n throw new Error(\"parseOrderBy: Invalid order\");\n }\n if (!column) {\n throw new Error(\"parseOrderBy: Invalid column\");\n }\n\n const entity = EntityManager.get(inflection.classify(table));\n if (!entity.props.find((p) => p.name === column)) {\n throw new Error(\"parseOrderBy: 현재 엔티티에 존재하지 않는 컬럼입니다: \");\n }\n\n return [\n `${table}.${column}` as unknown as UndirectedOrderByExpression<\n Database,\n keyof Database,\n {}\n >,\n order as \"asc\" | \"desc\",\n ];\n }\n}\n"]}
@@ -1,65 +0,0 @@
1
- import {
2
- BaseModelClassAbstract
3
- } from "../../../chunk-HGIBJYOU.mjs";
4
- import {
5
- UpsertBuilder
6
- } from "../../../chunk-JKSOJRQA.mjs";
7
- import {
8
- DB,
9
- EntityManager,
10
- isCustomJoinClause
11
- } from "../../../chunk-FCERKIIF.mjs";
12
- import "../../../chunk-PTFDTOJU.mjs";
13
-
14
- // src/database/drivers/kysely/base-model.ts
15
- import inflection from "inflection";
16
- var BaseModelClass = class extends BaseModelClassAbstract {
17
- getDB(which) {
18
- return DB.getDB(which);
19
- }
20
- async destroy() {
21
- return DB.destroy();
22
- }
23
- getUpsertBuilder() {
24
- return new UpsertBuilder();
25
- }
26
- applyJoins(clonedQb, joins) {
27
- for (const join of joins) {
28
- if (isCustomJoinClause(join)) {
29
- throw new Error("Custom join clause is not supported in Kysely");
30
- }
31
- if (join.join === "inner") {
32
- clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
33
- } else if (join.join === "outer") {
34
- clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
35
- }
36
- }
37
- return clonedQb;
38
- }
39
- async executeCountQuery(qb) {
40
- const result = await qb.clearSelect().select((eb) => eb.fn.count("id").as("total")).executeTakeFirstOrThrow();
41
- return Number(result.total);
42
- }
43
- parseOrderBy(orderBy) {
44
- const [_column, order] = orderBy.split("-");
45
- const [table, column] = _column.includes(".") ? _column.split(".") : [inflection.tableize(this.modelName), _column];
46
- if (order !== "asc" && order !== "desc") {
47
- throw new Error("parseOrderBy: Invalid order");
48
- }
49
- if (!column) {
50
- throw new Error("parseOrderBy: Invalid column");
51
- }
52
- const entity = EntityManager.get(inflection.classify(table));
53
- if (!entity.props.find((p) => p.name === column)) {
54
- throw new Error("parseOrderBy: \uD604\uC7AC \uC5D4\uD2F0\uD2F0\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uCEEC\uB7FC\uC785\uB2C8\uB2E4: ");
55
- }
56
- return [
57
- `${table}.${column}`,
58
- order
59
- ];
60
- }
61
- };
62
- export {
63
- BaseModelClass
64
- };
65
- //# sourceMappingURL=base-model.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/database/drivers/kysely/base-model.ts"],"sourcesContent":["import { Kysely, SelectQueryBuilder } from \"kysely\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { DBPreset, Database } from \"../../types\";\nimport { KyselyClient } from \"./client\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\nimport { UndirectedOrderByExpression } from \"kysely/dist/cjs/parser/order-by-parser\";\nimport { EntityManager } from \"../../../entity/entity-manager\";\nimport inflection from \"inflection\";\n\ntype TB = keyof Database;\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"kysely\"> {\n getDB(which: DBPreset): Kysely<Database> {\n return DB.getDB(which) as Kysely<Database>;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"kysely\">();\n }\n\n protected applyJoins(\n clonedQb: KyselyClient,\n joins: SubsetQuery[\"joins\"]\n ): KyselyClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n throw new Error(\"Custom join clause is not supported in Kysely\");\n }\n\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n\n return clonedQb;\n }\n\n protected async executeCountQuery(\n qb: SelectQueryBuilder<Database, TB, any>\n ): Promise<number> {\n const result = await qb\n .clearSelect()\n .select((eb) => eb.fn.count(\"id\" as any).as(\"total\"))\n .executeTakeFirstOrThrow();\n return Number(result.total);\n }\n\n parseOrderBy(\n orderBy: string\n ): [\n UndirectedOrderByExpression<Database, keyof Database, {}>,\n \"asc\" | \"desc\",\n ] {\n const [_column, order] = orderBy.split(\"-\");\n // FIXME: 조인 2개 이상일 때 처리\n const [table, column] = _column.includes(\".\")\n ? _column.split(\".\")\n : [inflection.tableize(this.modelName), _column];\n\n if (order !== \"asc\" && order !== \"desc\") {\n throw new Error(\"parseOrderBy: Invalid order\");\n }\n if (!column) {\n throw new Error(\"parseOrderBy: Invalid column\");\n }\n\n const entity = EntityManager.get(inflection.classify(table));\n if (!entity.props.find((p) => p.name === column)) {\n throw new Error(\"parseOrderBy: 현재 엔티티에 존재하지 않는 컬럼입니다: \");\n }\n\n return [\n `${table}.${column}` as unknown as UndirectedOrderByExpression<\n Database,\n keyof Database,\n {}\n >,\n order as \"asc\" | \"desc\",\n ];\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AASA,OAAO,gBAAgB;AAIhB,IAAM,iBAAN,cAA6B,uBAAiC;AAAA,EACnE,MAAM,OAAmC;AACvC,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAwB;AAAA,EACrC;AAAA,EAEU,WACR,UACA,OACc;AACd,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,cAAM,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,UAAI,KAAK,SAAS,SAAS;AACzB,iBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACtE,WAAW,KAAK,SAAS,SAAS;AAChC,iBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACrE;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBACd,IACiB;AACjB,UAAM,SAAS,MAAM,GAClB,YAAY,EACZ,OAAO,CAAC,OAAO,GAAG,GAAG,MAAM,IAAW,EAAE,GAAG,OAAO,CAAC,EACnD,wBAAwB;AAC3B,WAAO,OAAO,OAAO,KAAK;AAAA,EAC5B;AAAA,EAEA,aACE,SAIA;AACA,UAAM,CAAC,SAAS,KAAK,IAAI,QAAQ,MAAM,GAAG;AAE1C,UAAM,CAAC,OAAO,MAAM,IAAI,QAAQ,SAAS,GAAG,IACxC,QAAQ,MAAM,GAAG,IACjB,CAAC,WAAW,SAAS,KAAK,SAAS,GAAG,OAAO;AAEjD,QAAI,UAAU,SAAS,UAAU,QAAQ;AACvC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM,SAAS,cAAc,IAAI,WAAW,SAAS,KAAK,CAAC;AAC3D,QAAI,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG;AAChD,YAAM,IAAI,MAAM,4HAAuC;AAAA,IACzD;AAEA,WAAO;AAAA,MACL,GAAG,KAAK,IAAI,MAAM;AAAA,MAKlB;AAAA,IACF;AAAA,EACF;AACF;","names":[]}