semola 0.5.3 → 0.6.0

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 (367) hide show
  1. package/README.md +18 -45
  2. package/dist/chunk-CKQMccvm.cjs +28 -0
  3. package/dist/lib/api/index.cjs +536 -4
  4. package/dist/lib/api/index.d.cts +270 -4
  5. package/dist/lib/api/index.d.mts +270 -4
  6. package/dist/lib/api/index.mjs +534 -2
  7. package/dist/lib/cache/index.cjs +47 -22
  8. package/dist/lib/cache/index.d.cts +14 -23
  9. package/dist/lib/cache/index.d.mts +14 -23
  10. package/dist/lib/cache/index.mjs +48 -25
  11. package/dist/lib/cron/index.cjs +734 -12
  12. package/dist/lib/cron/index.d.cts +145 -3
  13. package/dist/lib/cron/index.d.mts +145 -3
  14. package/dist/lib/cron/index.mjs +725 -3
  15. package/dist/lib/errors/index.d.cts +4 -4
  16. package/dist/lib/errors/index.d.mts +4 -4
  17. package/dist/lib/errors/index.mjs +0 -2
  18. package/dist/lib/i18n/index.d.cts +12 -4
  19. package/dist/lib/i18n/index.d.mts +12 -4
  20. package/dist/lib/i18n/index.mjs +0 -2
  21. package/dist/lib/logging/index.cjs +387 -17
  22. package/dist/lib/logging/index.d.cts +107 -6
  23. package/dist/lib/logging/index.d.mts +107 -6
  24. package/dist/lib/logging/index.mjs +373 -4
  25. package/dist/lib/orm/index.cjs +1641 -19
  26. package/dist/lib/orm/index.d.cts +402 -7
  27. package/dist/lib/orm/index.d.mts +402 -7
  28. package/dist/lib/orm/index.mjs +1630 -6
  29. package/dist/lib/policy/index.cjs +206 -20
  30. package/dist/lib/policy/index.d.cts +61 -5
  31. package/dist/lib/policy/index.d.mts +61 -5
  32. package/dist/lib/policy/index.mjs +187 -3
  33. package/dist/lib/prompts/index.cjs +374 -14
  34. package/dist/lib/prompts/index.d.cts +73 -29
  35. package/dist/lib/prompts/index.d.mts +73 -29
  36. package/dist/lib/prompts/index.mjs +361 -4
  37. package/dist/lib/pubsub/index.cjs +43 -19
  38. package/dist/lib/pubsub/index.d.cts +12 -22
  39. package/dist/lib/pubsub/index.d.mts +12 -22
  40. package/dist/lib/pubsub/index.mjs +44 -22
  41. package/dist/lib/queue/index.cjs +40 -10
  42. package/dist/lib/queue/index.d.cts +57 -8
  43. package/dist/lib/queue/index.d.mts +57 -8
  44. package/dist/lib/queue/index.mjs +39 -13
  45. package/dist/lib/workflow/index.cjs +285 -282
  46. package/dist/lib/workflow/index.d.cts +147 -4
  47. package/dist/lib/workflow/index.d.mts +147 -4
  48. package/dist/lib/workflow/index.mjs +278 -286
  49. package/package.json +11 -1
  50. package/dist/api/core/index.cjs +0 -206
  51. package/dist/api/core/index.d.cts +0 -21
  52. package/dist/api/core/index.d.cts.map +0 -1
  53. package/dist/api/core/index.d.mts +0 -21
  54. package/dist/api/core/index.d.mts.map +0 -1
  55. package/dist/api/core/index.mjs +0 -208
  56. package/dist/api/core/index.mjs.map +0 -1
  57. package/dist/api/core/types.d.cts +0 -107
  58. package/dist/api/core/types.d.cts.map +0 -1
  59. package/dist/api/core/types.d.mts +0 -107
  60. package/dist/api/core/types.d.mts.map +0 -1
  61. package/dist/api/middleware/index.cjs +0 -8
  62. package/dist/api/middleware/index.d.cts +0 -11
  63. package/dist/api/middleware/index.d.cts.map +0 -1
  64. package/dist/api/middleware/index.d.mts +0 -11
  65. package/dist/api/middleware/index.d.mts.map +0 -1
  66. package/dist/api/middleware/index.mjs +0 -10
  67. package/dist/api/middleware/index.mjs.map +0 -1
  68. package/dist/api/middleware/types.d.cts +0 -16
  69. package/dist/api/middleware/types.d.cts.map +0 -1
  70. package/dist/api/middleware/types.d.mts +0 -16
  71. package/dist/api/middleware/types.d.mts.map +0 -1
  72. package/dist/api/openapi/index.cjs +0 -254
  73. package/dist/api/openapi/index.mjs +0 -256
  74. package/dist/api/openapi/index.mjs.map +0 -1
  75. package/dist/api/openapi/types.d.cts +0 -60
  76. package/dist/api/openapi/types.d.cts.map +0 -1
  77. package/dist/api/openapi/types.d.mts +0 -60
  78. package/dist/api/openapi/types.d.mts.map +0 -1
  79. package/dist/api/validation/index.cjs +0 -64
  80. package/dist/api/validation/index.mjs +0 -61
  81. package/dist/api/validation/index.mjs.map +0 -1
  82. package/dist/cache/types.d.cts +0 -17
  83. package/dist/cache/types.d.cts.map +0 -1
  84. package/dist/cache/types.d.mts +0 -17
  85. package/dist/cache/types.d.mts.map +0 -1
  86. package/dist/cron/builder/index.cjs +0 -166
  87. package/dist/cron/builder/index.d.cts +0 -28
  88. package/dist/cron/builder/index.d.cts.map +0 -1
  89. package/dist/cron/builder/index.d.mts +0 -28
  90. package/dist/cron/builder/index.d.mts.map +0 -1
  91. package/dist/cron/builder/index.mjs +0 -163
  92. package/dist/cron/builder/index.mjs.map +0 -1
  93. package/dist/cron/builder/types.cjs +0 -27
  94. package/dist/cron/builder/types.d.cts +0 -79
  95. package/dist/cron/builder/types.d.cts.map +0 -1
  96. package/dist/cron/builder/types.d.mts +0 -79
  97. package/dist/cron/builder/types.d.mts.map +0 -1
  98. package/dist/cron/builder/types.mjs +0 -28
  99. package/dist/cron/builder/types.mjs.map +0 -1
  100. package/dist/cron/core/index.cjs +0 -308
  101. package/dist/cron/core/index.d.cts +0 -39
  102. package/dist/cron/core/index.d.cts.map +0 -1
  103. package/dist/cron/core/index.d.mts +0 -39
  104. package/dist/cron/core/index.d.mts.map +0 -1
  105. package/dist/cron/core/index.mjs +0 -310
  106. package/dist/cron/core/index.mjs.map +0 -1
  107. package/dist/cron/core/scanner.cjs +0 -237
  108. package/dist/cron/core/scanner.mjs +0 -238
  109. package/dist/cron/core/scanner.mjs.map +0 -1
  110. package/dist/cron/core/types.d.cts +0 -11
  111. package/dist/cron/core/types.d.cts.map +0 -1
  112. package/dist/cron/core/types.d.mts +0 -11
  113. package/dist/cron/core/types.d.mts.map +0 -1
  114. package/dist/errors/types.d.cts +0 -5
  115. package/dist/errors/types.d.cts.map +0 -1
  116. package/dist/errors/types.d.mts +0 -5
  117. package/dist/errors/types.d.mts.map +0 -1
  118. package/dist/i18n/types.d.cts +0 -13
  119. package/dist/i18n/types.d.cts.map +0 -1
  120. package/dist/i18n/types.d.mts +0 -13
  121. package/dist/i18n/types.d.mts.map +0 -1
  122. package/dist/lib/cache/index.d.cts.map +0 -1
  123. package/dist/lib/cache/index.d.mts.map +0 -1
  124. package/dist/lib/cache/index.mjs.map +0 -1
  125. package/dist/lib/errors/index.d.cts.map +0 -1
  126. package/dist/lib/errors/index.d.mts.map +0 -1
  127. package/dist/lib/errors/index.mjs.map +0 -1
  128. package/dist/lib/i18n/index.d.cts.map +0 -1
  129. package/dist/lib/i18n/index.d.mts.map +0 -1
  130. package/dist/lib/i18n/index.mjs.map +0 -1
  131. package/dist/lib/policy/index.d.cts.map +0 -1
  132. package/dist/lib/policy/index.d.mts.map +0 -1
  133. package/dist/lib/policy/index.mjs.map +0 -1
  134. package/dist/lib/prompts/index.d.cts.map +0 -1
  135. package/dist/lib/prompts/index.d.mts.map +0 -1
  136. package/dist/lib/prompts/index.mjs.map +0 -1
  137. package/dist/lib/pubsub/index.d.cts.map +0 -1
  138. package/dist/lib/pubsub/index.d.mts.map +0 -1
  139. package/dist/lib/pubsub/index.mjs.map +0 -1
  140. package/dist/lib/queue/index.d.cts.map +0 -1
  141. package/dist/lib/queue/index.d.mts.map +0 -1
  142. package/dist/lib/queue/index.mjs.map +0 -1
  143. package/dist/lib/workflow/index.d.cts.map +0 -1
  144. package/dist/lib/workflow/index.d.mts.map +0 -1
  145. package/dist/lib/workflow/index.mjs.map +0 -1
  146. package/dist/logging/core/index.cjs +0 -99
  147. package/dist/logging/core/index.d.cts +0 -26
  148. package/dist/logging/core/index.d.cts.map +0 -1
  149. package/dist/logging/core/index.d.mts +0 -26
  150. package/dist/logging/core/index.d.mts.map +0 -1
  151. package/dist/logging/core/index.mjs +0 -99
  152. package/dist/logging/core/index.mjs.map +0 -1
  153. package/dist/logging/core/types.cjs +0 -10
  154. package/dist/logging/core/types.d.cts +0 -22
  155. package/dist/logging/core/types.d.cts.map +0 -1
  156. package/dist/logging/core/types.d.mts +0 -22
  157. package/dist/logging/core/types.d.mts.map +0 -1
  158. package/dist/logging/core/types.mjs +0 -12
  159. package/dist/logging/core/types.mjs.map +0 -1
  160. package/dist/logging/formatter/index.cjs +0 -119
  161. package/dist/logging/formatter/index.d.cts +0 -27
  162. package/dist/logging/formatter/index.d.cts.map +0 -1
  163. package/dist/logging/formatter/index.d.mts +0 -27
  164. package/dist/logging/formatter/index.d.mts.map +0 -1
  165. package/dist/logging/formatter/index.mjs +0 -115
  166. package/dist/logging/formatter/index.mjs.map +0 -1
  167. package/dist/logging/formatter/types.d.cts +0 -5
  168. package/dist/logging/formatter/types.d.cts.map +0 -1
  169. package/dist/logging/formatter/types.d.mts +0 -5
  170. package/dist/logging/formatter/types.d.mts.map +0 -1
  171. package/dist/logging/provider/index.cjs +0 -165
  172. package/dist/logging/provider/index.d.cts +0 -28
  173. package/dist/logging/provider/index.d.cts.map +0 -1
  174. package/dist/logging/provider/index.d.mts +0 -28
  175. package/dist/logging/provider/index.d.mts.map +0 -1
  176. package/dist/logging/provider/index.mjs +0 -165
  177. package/dist/logging/provider/index.mjs.map +0 -1
  178. package/dist/logging/provider/types.d.cts +0 -23
  179. package/dist/logging/provider/types.d.cts.map +0 -1
  180. package/dist/logging/provider/types.d.mts +0 -23
  181. package/dist/logging/provider/types.d.mts.map +0 -1
  182. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts +0 -80
  183. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts.map +0 -1
  184. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts +0 -80
  185. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts.map +0 -1
  186. package/dist/orm/column.cjs +0 -137
  187. package/dist/orm/column.d.cts +0 -121
  188. package/dist/orm/column.d.cts.map +0 -1
  189. package/dist/orm/column.d.mts +0 -121
  190. package/dist/orm/column.d.mts.map +0 -1
  191. package/dist/orm/column.mjs +0 -132
  192. package/dist/orm/column.mjs.map +0 -1
  193. package/dist/orm/dialect/index.cjs +0 -14
  194. package/dist/orm/dialect/index.mjs +0 -16
  195. package/dist/orm/dialect/index.mjs.map +0 -1
  196. package/dist/orm/dialect/mysql.cjs +0 -31
  197. package/dist/orm/dialect/mysql.mjs +0 -33
  198. package/dist/orm/dialect/mysql.mjs.map +0 -1
  199. package/dist/orm/dialect/postgres.cjs +0 -23
  200. package/dist/orm/dialect/postgres.mjs +0 -25
  201. package/dist/orm/dialect/postgres.mjs.map +0 -1
  202. package/dist/orm/dialect/sqlite.cjs +0 -31
  203. package/dist/orm/dialect/sqlite.mjs +0 -33
  204. package/dist/orm/dialect/sqlite.mjs.map +0 -1
  205. package/dist/orm/dialect/utils.cjs +0 -8
  206. package/dist/orm/dialect/utils.mjs +0 -10
  207. package/dist/orm/dialect/utils.mjs.map +0 -1
  208. package/dist/orm/internal/table-columns.cjs +0 -31
  209. package/dist/orm/internal/table-columns.mjs +0 -32
  210. package/dist/orm/internal/table-columns.mjs.map +0 -1
  211. package/dist/orm/internal/table-lookup.cjs +0 -35
  212. package/dist/orm/internal/table-lookup.mjs +0 -35
  213. package/dist/orm/internal/table-lookup.mjs.map +0 -1
  214. package/dist/orm/internal/table-relations.cjs +0 -28
  215. package/dist/orm/internal/table-relations.mjs +0 -29
  216. package/dist/orm/internal/table-relations.mjs.map +0 -1
  217. package/dist/orm/migration/config.cjs +0 -7
  218. package/dist/orm/migration/config.d.cts +0 -7
  219. package/dist/orm/migration/config.d.cts.map +0 -1
  220. package/dist/orm/migration/config.d.mts +0 -7
  221. package/dist/orm/migration/config.d.mts.map +0 -1
  222. package/dist/orm/migration/config.mjs +0 -8
  223. package/dist/orm/migration/config.mjs.map +0 -1
  224. package/dist/orm/migration/types.d.cts +0 -20
  225. package/dist/orm/migration/types.d.cts.map +0 -1
  226. package/dist/orm/migration/types.d.mts +0 -20
  227. package/dist/orm/migration/types.d.mts.map +0 -1
  228. package/dist/orm/orm.cjs +0 -41
  229. package/dist/orm/orm.d.cts +0 -18
  230. package/dist/orm/orm.d.cts.map +0 -1
  231. package/dist/orm/orm.d.mts +0 -18
  232. package/dist/orm/orm.d.mts.map +0 -1
  233. package/dist/orm/orm.mjs +0 -43
  234. package/dist/orm/orm.mjs.map +0 -1
  235. package/dist/orm/relation.cjs +0 -18
  236. package/dist/orm/relation.d.cts +0 -8
  237. package/dist/orm/relation.d.cts.map +0 -1
  238. package/dist/orm/relation.d.mts +0 -8
  239. package/dist/orm/relation.d.mts.map +0 -1
  240. package/dist/orm/relation.mjs +0 -19
  241. package/dist/orm/relation.mjs.map +0 -1
  242. package/dist/orm/runtime/builders/mutations.cjs +0 -29
  243. package/dist/orm/runtime/builders/mutations.mjs +0 -28
  244. package/dist/orm/runtime/builders/mutations.mjs.map +0 -1
  245. package/dist/orm/runtime/builders/select.cjs +0 -18
  246. package/dist/orm/runtime/builders/select.mjs +0 -19
  247. package/dist/orm/runtime/builders/select.mjs.map +0 -1
  248. package/dist/orm/runtime/client.cjs +0 -90
  249. package/dist/orm/runtime/client.mjs +0 -92
  250. package/dist/orm/runtime/client.mjs.map +0 -1
  251. package/dist/orm/runtime/context.cjs +0 -49
  252. package/dist/orm/runtime/context.mjs +0 -51
  253. package/dist/orm/runtime/context.mjs.map +0 -1
  254. package/dist/orm/runtime/dialect/index.cjs +0 -11
  255. package/dist/orm/runtime/dialect/index.mjs +0 -13
  256. package/dist/orm/runtime/dialect/index.mjs.map +0 -1
  257. package/dist/orm/runtime/dialect/mysql.cjs +0 -95
  258. package/dist/orm/runtime/dialect/mysql.mjs +0 -97
  259. package/dist/orm/runtime/dialect/mysql.mjs.map +0 -1
  260. package/dist/orm/runtime/dialect/postgres.cjs +0 -51
  261. package/dist/orm/runtime/dialect/postgres.mjs +0 -53
  262. package/dist/orm/runtime/dialect/postgres.mjs.map +0 -1
  263. package/dist/orm/runtime/dialect/sqlite.cjs +0 -4
  264. package/dist/orm/runtime/dialect/sqlite.mjs +0 -7
  265. package/dist/orm/runtime/dialect/sqlite.mjs.map +0 -1
  266. package/dist/orm/runtime/errors.cjs +0 -19
  267. package/dist/orm/runtime/errors.mjs +0 -21
  268. package/dist/orm/runtime/errors.mjs.map +0 -1
  269. package/dist/orm/runtime/hydrate/many.cjs +0 -46
  270. package/dist/orm/runtime/hydrate/many.mjs +0 -48
  271. package/dist/orm/runtime/hydrate/many.mjs.map +0 -1
  272. package/dist/orm/runtime/hydrate/one.cjs +0 -38
  273. package/dist/orm/runtime/hydrate/one.mjs +0 -40
  274. package/dist/orm/runtime/hydrate/one.mjs.map +0 -1
  275. package/dist/orm/runtime/hydrate.cjs +0 -49
  276. package/dist/orm/runtime/hydrate.mjs +0 -51
  277. package/dist/orm/runtime/hydrate.mjs.map +0 -1
  278. package/dist/orm/runtime/rows.cjs +0 -30
  279. package/dist/orm/runtime/rows.mjs +0 -31
  280. package/dist/orm/runtime/rows.mjs.map +0 -1
  281. package/dist/orm/runtime/utils.cjs +0 -27
  282. package/dist/orm/runtime/utils.mjs +0 -27
  283. package/dist/orm/runtime/utils.mjs.map +0 -1
  284. package/dist/orm/sql/parse-array.cjs +0 -64
  285. package/dist/orm/sql/parse-array.mjs +0 -66
  286. package/dist/orm/sql/parse-array.mjs.map +0 -1
  287. package/dist/orm/sql/plan/select.cjs +0 -36
  288. package/dist/orm/sql/plan/select.mjs +0 -38
  289. package/dist/orm/sql/plan/select.mjs.map +0 -1
  290. package/dist/orm/sql/plan/where/operators.cjs +0 -95
  291. package/dist/orm/sql/plan/where/operators.mjs +0 -97
  292. package/dist/orm/sql/plan/where/operators.mjs.map +0 -1
  293. package/dist/orm/sql/plan/where.cjs +0 -59
  294. package/dist/orm/sql/plan/where.mjs +0 -61
  295. package/dist/orm/sql/plan/where.mjs.map +0 -1
  296. package/dist/orm/sql/serialize/clauses.cjs +0 -36
  297. package/dist/orm/sql/serialize/clauses.mjs +0 -37
  298. package/dist/orm/sql/serialize/clauses.mjs.map +0 -1
  299. package/dist/orm/sql/serialize/joins.cjs +0 -31
  300. package/dist/orm/sql/serialize/joins.mjs +0 -33
  301. package/dist/orm/sql/serialize/joins.mjs.map +0 -1
  302. package/dist/orm/sql/serialize/values.cjs +0 -30
  303. package/dist/orm/sql/serialize/values.mjs +0 -32
  304. package/dist/orm/sql/serialize/values.mjs.map +0 -1
  305. package/dist/orm/sql/serialize/where/predicate.cjs +0 -73
  306. package/dist/orm/sql/serialize/where/predicate.mjs +0 -75
  307. package/dist/orm/sql/serialize/where/predicate.mjs.map +0 -1
  308. package/dist/orm/sql/serialize/where/tree.cjs +0 -26
  309. package/dist/orm/sql/serialize/where/tree.mjs +0 -28
  310. package/dist/orm/sql/serialize/where/tree.mjs.map +0 -1
  311. package/dist/orm/sql/serialize/where.cjs +0 -10
  312. package/dist/orm/sql/serialize/where.mjs +0 -12
  313. package/dist/orm/sql/serialize/where.mjs.map +0 -1
  314. package/dist/orm/sql/serialize.cjs +0 -24
  315. package/dist/orm/sql/serialize.mjs +0 -25
  316. package/dist/orm/sql/serialize.mjs.map +0 -1
  317. package/dist/orm/table.cjs +0 -12
  318. package/dist/orm/table.d.cts +0 -12
  319. package/dist/orm/table.d.cts.map +0 -1
  320. package/dist/orm/table.d.mts +0 -12
  321. package/dist/orm/table.d.mts.map +0 -1
  322. package/dist/orm/table.mjs +0 -14
  323. package/dist/orm/table.mjs.map +0 -1
  324. package/dist/orm/types.d.cts +0 -183
  325. package/dist/orm/types.d.cts.map +0 -1
  326. package/dist/orm/types.d.mts +0 -183
  327. package/dist/orm/types.d.mts.map +0 -1
  328. package/dist/policy/helpers.cjs +0 -206
  329. package/dist/policy/helpers.d.cts +0 -50
  330. package/dist/policy/helpers.d.cts.map +0 -1
  331. package/dist/policy/helpers.d.mts +0 -50
  332. package/dist/policy/helpers.d.mts.map +0 -1
  333. package/dist/policy/helpers.mjs +0 -190
  334. package/dist/policy/helpers.mjs.map +0 -1
  335. package/dist/policy/types.d.cts +0 -16
  336. package/dist/policy/types.d.cts.map +0 -1
  337. package/dist/policy/types.d.mts +0 -16
  338. package/dist/policy/types.d.mts.map +0 -1
  339. package/dist/prompts/core/keys.cjs +0 -165
  340. package/dist/prompts/core/keys.mjs +0 -167
  341. package/dist/prompts/core/keys.mjs.map +0 -1
  342. package/dist/prompts/core/runtime.cjs +0 -104
  343. package/dist/prompts/core/runtime.mjs +0 -106
  344. package/dist/prompts/core/runtime.mjs.map +0 -1
  345. package/dist/prompts/core/session.cjs +0 -98
  346. package/dist/prompts/core/session.mjs +0 -100
  347. package/dist/prompts/core/session.mjs.map +0 -1
  348. package/dist/prompts/core/types.d.cts +0 -21
  349. package/dist/prompts/core/types.d.cts.map +0 -1
  350. package/dist/prompts/core/types.d.mts +0 -21
  351. package/dist/prompts/core/types.d.mts.map +0 -1
  352. package/dist/prompts/types.d.cts +0 -52
  353. package/dist/prompts/types.d.cts.map +0 -1
  354. package/dist/prompts/types.d.mts +0 -52
  355. package/dist/prompts/types.d.mts.map +0 -1
  356. package/dist/pubsub/types.d.cts +0 -10
  357. package/dist/pubsub/types.d.cts.map +0 -1
  358. package/dist/pubsub/types.d.mts +0 -10
  359. package/dist/pubsub/types.d.mts.map +0 -1
  360. package/dist/queue/types.d.cts +0 -47
  361. package/dist/queue/types.d.cts.map +0 -1
  362. package/dist/queue/types.d.mts +0 -47
  363. package/dist/queue/types.d.mts.map +0 -1
  364. package/dist/workflow/types.d.cts +0 -83
  365. package/dist/workflow/types.d.cts.map +0 -1
  366. package/dist/workflow/types.d.mts +0 -83
  367. package/dist/workflow/types.d.mts.map +0 -1
@@ -1,97 +0,0 @@
1
- //#region src/lib/orm/sql/plan/where/operators.ts
2
- function toOperatorPredicates(key, condition) {
3
- const predicates = [];
4
- if ("startsWith" in condition) predicates.push({
5
- kind: "predicate",
6
- key,
7
- op: "like",
8
- value: {
9
- mode: "startsWith",
10
- value: String(Reflect.get(condition, "startsWith"))
11
- }
12
- });
13
- if ("endsWith" in condition) predicates.push({
14
- kind: "predicate",
15
- key,
16
- op: "like",
17
- value: {
18
- mode: "endsWith",
19
- value: String(Reflect.get(condition, "endsWith"))
20
- }
21
- });
22
- if ("contains" in condition) predicates.push({
23
- kind: "predicate",
24
- key,
25
- op: "like",
26
- value: {
27
- mode: "contains",
28
- value: String(Reflect.get(condition, "contains"))
29
- }
30
- });
31
- if ("gt" in condition) predicates.push({
32
- kind: "predicate",
33
- key,
34
- op: "gt",
35
- value: Reflect.get(condition, "gt")
36
- });
37
- if ("gte" in condition) predicates.push({
38
- kind: "predicate",
39
- key,
40
- op: "gte",
41
- value: Reflect.get(condition, "gte")
42
- });
43
- if ("lt" in condition) predicates.push({
44
- kind: "predicate",
45
- key,
46
- op: "lt",
47
- value: Reflect.get(condition, "lt")
48
- });
49
- if ("lte" in condition) predicates.push({
50
- kind: "predicate",
51
- key,
52
- op: "lte",
53
- value: Reflect.get(condition, "lte")
54
- });
55
- if ("in" in condition) predicates.push({
56
- kind: "predicate",
57
- key,
58
- op: "in",
59
- value: Reflect.get(condition, "in")
60
- });
61
- if ("notIn" in condition) predicates.push({
62
- kind: "predicate",
63
- key,
64
- op: "not_in",
65
- value: Reflect.get(condition, "notIn")
66
- });
67
- if ("equals" in condition) predicates.push({
68
- kind: "predicate",
69
- key,
70
- op: "eq",
71
- value: Reflect.get(condition, "equals")
72
- });
73
- if ("not" in condition) predicates.push({
74
- kind: "predicate",
75
- key,
76
- op: "neq",
77
- value: Reflect.get(condition, "not")
78
- });
79
- if ("isNull" in condition) {
80
- const isNull = Reflect.get(condition, "isNull");
81
- if (isNull === true) predicates.push({
82
- kind: "predicate",
83
- key,
84
- op: "is_null"
85
- });
86
- if (isNull === false) predicates.push({
87
- kind: "predicate",
88
- key,
89
- op: "is_not_null"
90
- });
91
- }
92
- return predicates;
93
- }
94
- //#endregion
95
- export { toOperatorPredicates };
96
-
97
- //# sourceMappingURL=operators.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operators.mjs","names":[],"sources":["../../../../../src/lib/orm/sql/plan/where/operators.ts"],"sourcesContent":["import type { ColDefs, WhereNode } from \"../../../types.js\";\n\nexport function toOperatorPredicates<T extends ColDefs>(\n key: keyof T & string,\n condition: object,\n) {\n const predicates: Array<WhereNode<T>> = [];\n\n if (\"startsWith\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"like\",\n value: {\n mode: \"startsWith\",\n value: String(Reflect.get(condition, \"startsWith\")),\n },\n });\n }\n\n if (\"endsWith\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"like\",\n value: {\n mode: \"endsWith\",\n value: String(Reflect.get(condition, \"endsWith\")),\n },\n });\n }\n\n if (\"contains\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"like\",\n value: {\n mode: \"contains\",\n value: String(Reflect.get(condition, \"contains\")),\n },\n });\n }\n\n if (\"gt\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"gt\",\n value: Reflect.get(condition, \"gt\"),\n });\n }\n\n if (\"gte\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"gte\",\n value: Reflect.get(condition, \"gte\"),\n });\n }\n\n if (\"lt\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"lt\",\n value: Reflect.get(condition, \"lt\"),\n });\n }\n\n if (\"lte\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"lte\",\n value: Reflect.get(condition, \"lte\"),\n });\n }\n\n if (\"in\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"in\",\n value: Reflect.get(condition, \"in\"),\n });\n }\n\n if (\"notIn\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"not_in\",\n value: Reflect.get(condition, \"notIn\"),\n });\n }\n\n if (\"equals\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"eq\",\n value: Reflect.get(condition, \"equals\"),\n });\n }\n\n if (\"not\" in condition) {\n predicates.push({\n kind: \"predicate\",\n key,\n op: \"neq\",\n value: Reflect.get(condition, \"not\"),\n });\n }\n\n if (\"isNull\" in condition) {\n const isNull = Reflect.get(condition, \"isNull\");\n\n if (isNull === true) {\n predicates.push({ kind: \"predicate\", key, op: \"is_null\" });\n }\n\n if (isNull === false) {\n predicates.push({ kind: \"predicate\", key, op: \"is_not_null\" });\n }\n }\n\n return predicates;\n}\n"],"mappings":";AAEA,SAAgB,qBACd,KACA,WACA;CACA,MAAM,aAAkC,EAAE;AAE1C,KAAI,gBAAgB,UAClB,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO;GACL,MAAM;GACN,OAAO,OAAO,QAAQ,IAAI,WAAW,aAAa,CAAC;GACpD;EACF,CAAC;AAGJ,KAAI,cAAc,UAChB,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO;GACL,MAAM;GACN,OAAO,OAAO,QAAQ,IAAI,WAAW,WAAW,CAAC;GAClD;EACF,CAAC;AAGJ,KAAI,cAAc,UAChB,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO;GACL,MAAM;GACN,OAAO,OAAO,QAAQ,IAAI,WAAW,WAAW,CAAC;GAClD;EACF,CAAC;AAGJ,KAAI,QAAQ,UACV,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,KAAK;EACpC,CAAC;AAGJ,KAAI,SAAS,UACX,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,MAAM;EACrC,CAAC;AAGJ,KAAI,QAAQ,UACV,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,KAAK;EACpC,CAAC;AAGJ,KAAI,SAAS,UACX,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,MAAM;EACrC,CAAC;AAGJ,KAAI,QAAQ,UACV,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,KAAK;EACpC,CAAC;AAGJ,KAAI,WAAW,UACb,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,QAAQ;EACvC,CAAC;AAGJ,KAAI,YAAY,UACd,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,SAAS;EACxC,CAAC;AAGJ,KAAI,SAAS,UACX,YAAW,KAAK;EACd,MAAM;EACN;EACA,IAAI;EACJ,OAAO,QAAQ,IAAI,WAAW,MAAM;EACrC,CAAC;AAGJ,KAAI,YAAY,WAAW;EACzB,MAAM,SAAS,QAAQ,IAAI,WAAW,SAAS;AAE/C,MAAI,WAAW,KACb,YAAW,KAAK;GAAE,MAAM;GAAa;GAAK,IAAI;GAAW,CAAC;AAG5D,MAAI,WAAW,MACb,YAAW,KAAK;GAAE,MAAM;GAAa;GAAK,IAAI;GAAe,CAAC;;AAIlE,QAAO"}
@@ -1,59 +0,0 @@
1
- const require_operators = require("./where/operators.cjs");
2
- //#region src/lib/orm/sql/plan/where.ts
3
- function combineWhereNodes(kind, nodes) {
4
- if (nodes.length === 0) return;
5
- if (nodes.length === 1) return nodes[0];
6
- return {
7
- kind,
8
- nodes
9
- };
10
- }
11
- function buildWhereNode(where) {
12
- if (!where) return;
13
- const nodes = [];
14
- const andInputs = where.and;
15
- if (andInputs) for (const entry of andInputs) {
16
- const node = buildWhereNode(entry);
17
- if (!node) continue;
18
- nodes.push(node);
19
- }
20
- const orInputs = where.or;
21
- if (orInputs) {
22
- const orNodes = [];
23
- for (const entry of orInputs) {
24
- const node = buildWhereNode(entry);
25
- if (!node) continue;
26
- orNodes.push(node);
27
- }
28
- const orNode = combineWhereNodes("or", orNodes);
29
- if (orNode) nodes.push(orNode);
30
- }
31
- for (const [key, condition] of Object.entries(where)) {
32
- if (key === "and") continue;
33
- if (key === "or") continue;
34
- const typedKey = key;
35
- if (typeof condition !== "object" || condition === null) {
36
- nodes.push({
37
- kind: "predicate",
38
- key: typedKey,
39
- op: "eq",
40
- value: condition
41
- });
42
- continue;
43
- }
44
- const predicates = require_operators.toOperatorPredicates(typedKey, condition);
45
- if (predicates.length === 0) {
46
- nodes.push({
47
- kind: "predicate",
48
- key: typedKey,
49
- op: "eq",
50
- value: condition
51
- });
52
- continue;
53
- }
54
- for (const predicate of predicates) nodes.push(predicate);
55
- }
56
- return combineWhereNodes("and", nodes);
57
- }
58
- //#endregion
59
- exports.buildWhereNode = buildWhereNode;
@@ -1,61 +0,0 @@
1
- import { toOperatorPredicates } from "./where/operators.mjs";
2
- //#region src/lib/orm/sql/plan/where.ts
3
- function combineWhereNodes(kind, nodes) {
4
- if (nodes.length === 0) return;
5
- if (nodes.length === 1) return nodes[0];
6
- return {
7
- kind,
8
- nodes
9
- };
10
- }
11
- function buildWhereNode(where) {
12
- if (!where) return;
13
- const nodes = [];
14
- const andInputs = where.and;
15
- if (andInputs) for (const entry of andInputs) {
16
- const node = buildWhereNode(entry);
17
- if (!node) continue;
18
- nodes.push(node);
19
- }
20
- const orInputs = where.or;
21
- if (orInputs) {
22
- const orNodes = [];
23
- for (const entry of orInputs) {
24
- const node = buildWhereNode(entry);
25
- if (!node) continue;
26
- orNodes.push(node);
27
- }
28
- const orNode = combineWhereNodes("or", orNodes);
29
- if (orNode) nodes.push(orNode);
30
- }
31
- for (const [key, condition] of Object.entries(where)) {
32
- if (key === "and") continue;
33
- if (key === "or") continue;
34
- const typedKey = key;
35
- if (typeof condition !== "object" || condition === null) {
36
- nodes.push({
37
- kind: "predicate",
38
- key: typedKey,
39
- op: "eq",
40
- value: condition
41
- });
42
- continue;
43
- }
44
- const predicates = toOperatorPredicates(typedKey, condition);
45
- if (predicates.length === 0) {
46
- nodes.push({
47
- kind: "predicate",
48
- key: typedKey,
49
- op: "eq",
50
- value: condition
51
- });
52
- continue;
53
- }
54
- for (const predicate of predicates) nodes.push(predicate);
55
- }
56
- return combineWhereNodes("and", nodes);
57
- }
58
- //#endregion
59
- export { buildWhereNode };
60
-
61
- //# sourceMappingURL=where.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"where.mjs","names":[],"sources":["../../../../src/lib/orm/sql/plan/where.ts"],"sourcesContent":["import type { ColDefs, WhereInput, WhereNode } from \"../../types.js\";\nimport {\n isLikePredicateValue,\n isValueOperator,\n type LikeMode,\n type LikePredicateValue,\n} from \"./where/guards.js\";\nimport { toOperatorPredicates } from \"./where/operators.js\";\n\nfunction combineWhereNodes<T extends ColDefs>(\n kind: \"and\" | \"or\",\n nodes: Array<WhereNode<T>>,\n) {\n if (nodes.length === 0) {\n return undefined;\n }\n\n if (nodes.length === 1) {\n return nodes[0];\n }\n\n return { kind, nodes };\n}\n\nexport function buildWhereNode<T extends ColDefs>(where?: WhereInput<T>) {\n if (!where) {\n return undefined;\n }\n\n const nodes: Array<WhereNode<T>> = [];\n\n const andInputs = where.and;\n\n if (andInputs) {\n for (const entry of andInputs) {\n const node = buildWhereNode(entry);\n\n if (!node) {\n continue;\n }\n\n nodes.push(node);\n }\n }\n\n const orInputs = where.or;\n\n if (orInputs) {\n const orNodes: Array<WhereNode<T>> = [];\n\n for (const entry of orInputs) {\n const node = buildWhereNode(entry);\n\n if (!node) {\n continue;\n }\n\n orNodes.push(node);\n }\n\n const orNode = combineWhereNodes(\"or\", orNodes);\n\n if (orNode) {\n nodes.push(orNode);\n }\n }\n\n for (const [key, condition] of Object.entries(where)) {\n if (key === \"and\") {\n continue;\n }\n\n if (key === \"or\") {\n continue;\n }\n\n const typedKey = key as keyof T & string;\n\n if (typeof condition !== \"object\" || condition === null) {\n nodes.push({\n kind: \"predicate\",\n key: typedKey,\n op: \"eq\",\n value: condition,\n });\n\n continue;\n }\n\n const predicates = toOperatorPredicates(typedKey, condition);\n\n if (predicates.length === 0) {\n nodes.push({\n kind: \"predicate\",\n key: typedKey,\n op: \"eq\",\n value: condition,\n });\n continue;\n }\n\n for (const predicate of predicates) {\n nodes.push(predicate);\n }\n }\n\n return combineWhereNodes(\"and\", nodes);\n}\n\nexport { isLikePredicateValue, isValueOperator };\nexport type { LikeMode, LikePredicateValue };\n"],"mappings":";;AASA,SAAS,kBACP,MACA,OACA;AACA,KAAI,MAAM,WAAW,EACnB;AAGF,KAAI,MAAM,WAAW,EACnB,QAAO,MAAM;AAGf,QAAO;EAAE;EAAM;EAAO;;AAGxB,SAAgB,eAAkC,OAAuB;AACvE,KAAI,CAAC,MACH;CAGF,MAAM,QAA6B,EAAE;CAErC,MAAM,YAAY,MAAM;AAExB,KAAI,UACF,MAAK,MAAM,SAAS,WAAW;EAC7B,MAAM,OAAO,eAAe,MAAM;AAElC,MAAI,CAAC,KACH;AAGF,QAAM,KAAK,KAAK;;CAIpB,MAAM,WAAW,MAAM;AAEvB,KAAI,UAAU;EACZ,MAAM,UAA+B,EAAE;AAEvC,OAAK,MAAM,SAAS,UAAU;GAC5B,MAAM,OAAO,eAAe,MAAM;AAElC,OAAI,CAAC,KACH;AAGF,WAAQ,KAAK,KAAK;;EAGpB,MAAM,SAAS,kBAAkB,MAAM,QAAQ;AAE/C,MAAI,OACF,OAAM,KAAK,OAAO;;AAItB,MAAK,MAAM,CAAC,KAAK,cAAc,OAAO,QAAQ,MAAM,EAAE;AACpD,MAAI,QAAQ,MACV;AAGF,MAAI,QAAQ,KACV;EAGF,MAAM,WAAW;AAEjB,MAAI,OAAO,cAAc,YAAY,cAAc,MAAM;AACvD,SAAM,KAAK;IACT,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IACR,CAAC;AAEF;;EAGF,MAAM,aAAa,qBAAqB,UAAU,UAAU;AAE5D,MAAI,WAAW,WAAW,GAAG;AAC3B,SAAM,KAAK;IACT,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IACR,CAAC;AACF;;AAGF,OAAK,MAAM,aAAa,WACtB,OAAM,KAAK,UAAU;;AAIzB,QAAO,kBAAkB,OAAO,MAAM"}
@@ -1,36 +0,0 @@
1
- //#region src/lib/orm/sql/serialize/clauses.ts
2
- function buildLimitClause(sql, limit, offset, dialect) {
3
- if (limit != null && offset != null) return sql`LIMIT ${limit} OFFSET ${offset}`;
4
- if (limit != null) return sql`LIMIT ${limit}`;
5
- if (offset != null) {
6
- if (dialect === "mysql") return sql`LIMIT 18446744073709551615 OFFSET ${offset}`;
7
- if (dialect === "sqlite") return sql`LIMIT -1 OFFSET ${offset}`;
8
- return sql`OFFSET ${offset}`;
9
- }
10
- return sql``;
11
- }
12
- function buildOrderByClause(sql, table, plan) {
13
- if (plan.orderBy.length === 0) return sql``;
14
- const fragments = [];
15
- for (const { key, direction } of plan.orderBy) {
16
- const col = table.columns[key];
17
- if (!col) continue;
18
- if (direction === "desc") {
19
- fragments.push(sql`${sql(col.meta.sqlName)} DESC`);
20
- continue;
21
- }
22
- fragments.push(sql`${sql(col.meta.sqlName)} ASC`);
23
- }
24
- const firstOrderBy = fragments[0];
25
- if (!firstOrderBy) return sql``;
26
- let joined = firstOrderBy;
27
- for (let index = 1; index < fragments.length; index++) {
28
- const fragment = fragments[index];
29
- if (!fragment) continue;
30
- joined = sql`${joined}, ${fragment}`;
31
- }
32
- return sql`ORDER BY ${joined}`;
33
- }
34
- //#endregion
35
- exports.buildLimitClause = buildLimitClause;
36
- exports.buildOrderByClause = buildOrderByClause;
@@ -1,37 +0,0 @@
1
- //#region src/lib/orm/sql/serialize/clauses.ts
2
- function buildLimitClause(sql, limit, offset, dialect) {
3
- if (limit != null && offset != null) return sql`LIMIT ${limit} OFFSET ${offset}`;
4
- if (limit != null) return sql`LIMIT ${limit}`;
5
- if (offset != null) {
6
- if (dialect === "mysql") return sql`LIMIT 18446744073709551615 OFFSET ${offset}`;
7
- if (dialect === "sqlite") return sql`LIMIT -1 OFFSET ${offset}`;
8
- return sql`OFFSET ${offset}`;
9
- }
10
- return sql``;
11
- }
12
- function buildOrderByClause(sql, table, plan) {
13
- if (plan.orderBy.length === 0) return sql``;
14
- const fragments = [];
15
- for (const { key, direction } of plan.orderBy) {
16
- const col = table.columns[key];
17
- if (!col) continue;
18
- if (direction === "desc") {
19
- fragments.push(sql`${sql(col.meta.sqlName)} DESC`);
20
- continue;
21
- }
22
- fragments.push(sql`${sql(col.meta.sqlName)} ASC`);
23
- }
24
- const firstOrderBy = fragments[0];
25
- if (!firstOrderBy) return sql``;
26
- let joined = firstOrderBy;
27
- for (let index = 1; index < fragments.length; index++) {
28
- const fragment = fragments[index];
29
- if (!fragment) continue;
30
- joined = sql`${joined}, ${fragment}`;
31
- }
32
- return sql`ORDER BY ${joined}`;
33
- }
34
- //#endregion
35
- export { buildLimitClause, buildOrderByClause };
36
-
37
- //# sourceMappingURL=clauses.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clauses.mjs","names":[],"sources":["../../../../src/lib/orm/sql/serialize/clauses.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport type { Table } from \"../../table.js\";\nimport type { ColDefs, Dialect, SelectPlan } from \"../../types.js\";\n\nexport function buildLimitClause(\n sql: SQL | TransactionSQL,\n limit?: number,\n offset?: number,\n dialect?: Dialect,\n) {\n if (limit != null && offset != null) {\n return sql`LIMIT ${limit} OFFSET ${offset}`;\n }\n\n if (limit != null) {\n return sql`LIMIT ${limit}`;\n }\n\n if (offset != null) {\n if (dialect === \"mysql\") {\n return sql`LIMIT 18446744073709551615 OFFSET ${offset}`;\n }\n\n if (dialect === \"sqlite\") {\n return sql`LIMIT -1 OFFSET ${offset}`;\n }\n\n return sql`OFFSET ${offset}`;\n }\n\n return sql``;\n}\n\nexport function buildOrderByClause<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n plan: SelectPlan<T>,\n) {\n if (plan.orderBy.length === 0) {\n return sql``;\n }\n\n const fragments: SQL.Query<unknown>[] = [];\n\n for (const { key, direction } of plan.orderBy) {\n const col = table.columns[key];\n\n if (!col) {\n continue;\n }\n\n if (direction === \"desc\") {\n fragments.push(sql`${sql(col.meta.sqlName)} DESC`);\n continue;\n }\n\n fragments.push(sql`${sql(col.meta.sqlName)} ASC`);\n }\n\n const firstOrderBy = fragments[0];\n\n if (!firstOrderBy) {\n return sql``;\n }\n\n let joined = firstOrderBy;\n\n for (let index = 1; index < fragments.length; index++) {\n const fragment = fragments[index];\n\n if (!fragment) {\n continue;\n }\n\n joined = sql`${joined}, ${fragment}`;\n }\n\n return sql`ORDER BY ${joined}`;\n}\n"],"mappings":";AAIA,SAAgB,iBACd,KACA,OACA,QACA,SACA;AACA,KAAI,SAAS,QAAQ,UAAU,KAC7B,QAAO,GAAG,SAAS,MAAM,UAAU;AAGrC,KAAI,SAAS,KACX,QAAO,GAAG,SAAS;AAGrB,KAAI,UAAU,MAAM;AAClB,MAAI,YAAY,QACd,QAAO,GAAG,qCAAqC;AAGjD,MAAI,YAAY,SACd,QAAO,GAAG,mBAAmB;AAG/B,SAAO,GAAG,UAAU;;AAGtB,QAAO,GAAG;;AAGZ,SAAgB,mBACd,KACA,OACA,MACA;AACA,KAAI,KAAK,QAAQ,WAAW,EAC1B,QAAO,GAAG;CAGZ,MAAM,YAAkC,EAAE;AAE1C,MAAK,MAAM,EAAE,KAAK,eAAe,KAAK,SAAS;EAC7C,MAAM,MAAM,MAAM,QAAQ;AAE1B,MAAI,CAAC,IACH;AAGF,MAAI,cAAc,QAAQ;AACxB,aAAU,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO;AAClD;;AAGF,YAAU,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,MAAM;;CAGnD,MAAM,eAAe,UAAU;AAE/B,KAAI,CAAC,aACH,QAAO,GAAG;CAGZ,IAAI,SAAS;AAEb,MAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,QAAQ,SAAS;EACrD,MAAM,WAAW,UAAU;AAE3B,MAAI,CAAC,SACH;AAGF,WAAS,GAAG,GAAG,OAAO,IAAI;;AAG5B,QAAO,GAAG,YAAY"}
@@ -1,31 +0,0 @@
1
- const require_table_lookup = require("../../internal/table-lookup.cjs");
2
- const require_table_relations = require("../../internal/table-relations.cjs");
3
- //#region src/lib/orm/sql/serialize/joins.ts
4
- function buildJoinClauses(sql, table, relations, plan) {
5
- if (plan.joins.length === 0) return sql``;
6
- let joinClause = sql``;
7
- const basePk = require_table_lookup.getPrimaryKeyColumn(table);
8
- if (!basePk) return joinClause;
9
- for (const [joinIndex, join] of plan.joins.entries()) {
10
- const rel = relations[join.relationKey];
11
- if (!rel) continue;
12
- const target = rel.table();
13
- const targetPk = require_table_lookup.getPrimaryKeyColumn(target);
14
- if (!targetPk) continue;
15
- const targetAlias = `${join.relationKey}_${joinIndex}`;
16
- if (rel.kind === "one") {
17
- joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(table.tableName)}.${sql(rel.foreignKey)} = ${sql(targetAlias)}.${sql(targetPk.col.meta.sqlName)}`;
18
- continue;
19
- }
20
- let foreignSqlName = rel.foreignKey;
21
- if (!foreignSqlName) {
22
- const inferredForeignSqlName = require_table_relations.findManyForeignKeyByReference(target, basePk.col);
23
- if (inferredForeignSqlName) foreignSqlName = inferredForeignSqlName;
24
- }
25
- if (!foreignSqlName) continue;
26
- joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(targetAlias)}.${sql(foreignSqlName)} = ${sql(table.tableName)}.${sql(basePk.col.meta.sqlName)}`;
27
- }
28
- return joinClause;
29
- }
30
- //#endregion
31
- exports.buildJoinClauses = buildJoinClauses;
@@ -1,33 +0,0 @@
1
- import { getPrimaryKeyColumn } from "../../internal/table-lookup.mjs";
2
- import { findManyForeignKeyByReference } from "../../internal/table-relations.mjs";
3
- //#region src/lib/orm/sql/serialize/joins.ts
4
- function buildJoinClauses(sql, table, relations, plan) {
5
- if (plan.joins.length === 0) return sql``;
6
- let joinClause = sql``;
7
- const basePk = getPrimaryKeyColumn(table);
8
- if (!basePk) return joinClause;
9
- for (const [joinIndex, join] of plan.joins.entries()) {
10
- const rel = relations[join.relationKey];
11
- if (!rel) continue;
12
- const target = rel.table();
13
- const targetPk = getPrimaryKeyColumn(target);
14
- if (!targetPk) continue;
15
- const targetAlias = `${join.relationKey}_${joinIndex}`;
16
- if (rel.kind === "one") {
17
- joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(table.tableName)}.${sql(rel.foreignKey)} = ${sql(targetAlias)}.${sql(targetPk.col.meta.sqlName)}`;
18
- continue;
19
- }
20
- let foreignSqlName = rel.foreignKey;
21
- if (!foreignSqlName) {
22
- const inferredForeignSqlName = findManyForeignKeyByReference(target, basePk.col);
23
- if (inferredForeignSqlName) foreignSqlName = inferredForeignSqlName;
24
- }
25
- if (!foreignSqlName) continue;
26
- joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(targetAlias)}.${sql(foreignSqlName)} = ${sql(table.tableName)}.${sql(basePk.col.meta.sqlName)}`;
27
- }
28
- return joinClause;
29
- }
30
- //#endregion
31
- export { buildJoinClauses };
32
-
33
- //# sourceMappingURL=joins.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"joins.mjs","names":[],"sources":["../../../../src/lib/orm/sql/serialize/joins.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport {\n findManyForeignKeyByReference,\n getPrimaryKeyColumn,\n} from \"../../internal/table.js\";\nimport type { Table } from \"../../table.js\";\nimport type { ColDefs, RelationDefs, SelectPlan } from \"../../types.js\";\n\nexport function buildJoinClauses<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n relations: RelationDefs,\n plan: SelectPlan<T>,\n) {\n if (plan.joins.length === 0) {\n return sql``;\n }\n\n let joinClause = sql``;\n const basePk = getPrimaryKeyColumn(table);\n\n if (!basePk) {\n return joinClause;\n }\n\n for (const [joinIndex, join] of plan.joins.entries()) {\n const rel = relations[join.relationKey];\n\n if (!rel) {\n continue;\n }\n\n const target = rel.table();\n const targetPk = getPrimaryKeyColumn(target);\n\n if (!targetPk) {\n continue;\n }\n\n const targetAlias = `${join.relationKey}_${joinIndex}`;\n\n if (rel.kind === \"one\") {\n joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(table.tableName)}.${sql(rel.foreignKey)} = ${sql(targetAlias)}.${sql(targetPk.col.meta.sqlName)}`;\n continue;\n }\n\n let foreignSqlName = rel.foreignKey;\n\n if (!foreignSqlName) {\n const inferredForeignSqlName = findManyForeignKeyByReference(\n target,\n basePk.col,\n );\n\n if (inferredForeignSqlName) {\n foreignSqlName = inferredForeignSqlName;\n }\n }\n\n if (!foreignSqlName) {\n continue;\n }\n\n joinClause = sql`${joinClause} LEFT JOIN ${sql(target.tableName)} AS ${sql(targetAlias)} ON ${sql(targetAlias)}.${sql(foreignSqlName)} = ${sql(table.tableName)}.${sql(basePk.col.meta.sqlName)}`;\n }\n\n return joinClause;\n}\n"],"mappings":";;;AAQA,SAAgB,iBACd,KACA,OACA,WACA,MACA;AACA,KAAI,KAAK,MAAM,WAAW,EACxB,QAAO,GAAG;CAGZ,IAAI,aAAa,GAAG;CACpB,MAAM,SAAS,oBAAoB,MAAM;AAEzC,KAAI,CAAC,OACH,QAAO;AAGT,MAAK,MAAM,CAAC,WAAW,SAAS,KAAK,MAAM,SAAS,EAAE;EACpD,MAAM,MAAM,UAAU,KAAK;AAE3B,MAAI,CAAC,IACH;EAGF,MAAM,SAAS,IAAI,OAAO;EAC1B,MAAM,WAAW,oBAAoB,OAAO;AAE5C,MAAI,CAAC,SACH;EAGF,MAAM,cAAc,GAAG,KAAK,YAAY,GAAG;AAE3C,MAAI,IAAI,SAAS,OAAO;AACtB,gBAAa,GAAG,GAAG,WAAW,aAAa,IAAI,OAAO,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,UAAU,CAAC,GAAG,IAAI,IAAI,WAAW,CAAC,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI,SAAS,IAAI,KAAK,QAAQ;AACjM;;EAGF,IAAI,iBAAiB,IAAI;AAEzB,MAAI,CAAC,gBAAgB;GACnB,MAAM,yBAAyB,8BAC7B,QACA,OAAO,IACR;AAED,OAAI,uBACF,kBAAiB;;AAIrB,MAAI,CAAC,eACH;AAGF,eAAa,GAAG,GAAG,WAAW,aAAa,IAAI,OAAO,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,eAAe,CAAC,KAAK,IAAI,MAAM,UAAU,CAAC,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ;;AAGjM,QAAO"}
@@ -1,30 +0,0 @@
1
- //#region src/lib/orm/sql/serialize/values.ts
2
- function escapePostgresArrayString(value) {
3
- return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
4
- }
5
- function toPostgresArrayLiteral(value) {
6
- if (value.length === 0) return "{}";
7
- return `{${value.map((item) => {
8
- if (item === null || item === void 0) return "NULL";
9
- if (typeof item === "number") return String(item);
10
- if (typeof item === "boolean") return item ? "TRUE" : "FALSE";
11
- if (item instanceof Date) return `"${escapePostgresArrayString(item.toISOString())}"`;
12
- return `"${escapePostgresArrayString(String(item))}"`;
13
- }).join(",")}}`;
14
- }
15
- function mapDataToSqlRow(table, data, dialectAdapter) {
16
- const row = {};
17
- for (const jsKey in data) {
18
- const value = data[jsKey];
19
- const col = table.columns[jsKey];
20
- if (!col) continue;
21
- if (dialectAdapter.dialect === "postgres" && col.meta.isSqlArray && Array.isArray(value)) {
22
- row[col.meta.sqlName] = toPostgresArrayLiteral(value);
23
- continue;
24
- }
25
- row[col.meta.sqlName] = dialectAdapter.serializeValue(col.kind, value);
26
- }
27
- return row;
28
- }
29
- //#endregion
30
- exports.mapDataToSqlRow = mapDataToSqlRow;
@@ -1,32 +0,0 @@
1
- //#region src/lib/orm/sql/serialize/values.ts
2
- function escapePostgresArrayString(value) {
3
- return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
4
- }
5
- function toPostgresArrayLiteral(value) {
6
- if (value.length === 0) return "{}";
7
- return `{${value.map((item) => {
8
- if (item === null || item === void 0) return "NULL";
9
- if (typeof item === "number") return String(item);
10
- if (typeof item === "boolean") return item ? "TRUE" : "FALSE";
11
- if (item instanceof Date) return `"${escapePostgresArrayString(item.toISOString())}"`;
12
- return `"${escapePostgresArrayString(String(item))}"`;
13
- }).join(",")}}`;
14
- }
15
- function mapDataToSqlRow(table, data, dialectAdapter) {
16
- const row = {};
17
- for (const jsKey in data) {
18
- const value = data[jsKey];
19
- const col = table.columns[jsKey];
20
- if (!col) continue;
21
- if (dialectAdapter.dialect === "postgres" && col.meta.isSqlArray && Array.isArray(value)) {
22
- row[col.meta.sqlName] = toPostgresArrayLiteral(value);
23
- continue;
24
- }
25
- row[col.meta.sqlName] = dialectAdapter.serializeValue(col.kind, value);
26
- }
27
- return row;
28
- }
29
- //#endregion
30
- export { mapDataToSqlRow };
31
-
32
- //# sourceMappingURL=values.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"values.mjs","names":[],"sources":["../../../../src/lib/orm/sql/serialize/values.ts"],"sourcesContent":["import type { Table } from \"../../table.js\";\nimport type { ColDefs, DialectAdapter } from \"../../types.js\";\n\nfunction escapePostgresArrayString(value: string) {\n return value.replaceAll(\"\\\\\", \"\\\\\\\\\").replaceAll('\"', '\\\\\"');\n}\n\nfunction toPostgresArrayLiteral(value: unknown[]) {\n if (value.length === 0) {\n return \"{}\";\n }\n\n const items = value.map((item) => {\n if (item === null || item === undefined) {\n return \"NULL\";\n }\n\n if (typeof item === \"number\") {\n return String(item);\n }\n\n if (typeof item === \"boolean\") {\n return item ? \"TRUE\" : \"FALSE\";\n }\n\n if (item instanceof Date) {\n return `\"${escapePostgresArrayString(item.toISOString())}\"`;\n }\n\n return `\"${escapePostgresArrayString(String(item))}\"`;\n });\n\n return `{${items.join(\",\")}}`;\n}\n\nexport function mapDataToSqlRow<T extends ColDefs>(\n table: Table<T>,\n data: Record<string, unknown>,\n dialectAdapter: DialectAdapter,\n) {\n const row: Record<string, unknown> = {};\n\n for (const jsKey in data) {\n const value = data[jsKey];\n\n const col = table.columns[jsKey];\n\n if (!col) {\n continue;\n }\n\n if (\n dialectAdapter.dialect === \"postgres\" &&\n col.meta.isSqlArray &&\n Array.isArray(value)\n ) {\n row[col.meta.sqlName] = toPostgresArrayLiteral(value);\n continue;\n }\n\n row[col.meta.sqlName] = dialectAdapter.serializeValue(col.kind, value);\n }\n\n return row;\n}\n"],"mappings":";AAGA,SAAS,0BAA0B,OAAe;AAChD,QAAO,MAAM,WAAW,MAAM,OAAO,CAAC,WAAW,MAAK,OAAM;;AAG9D,SAAS,uBAAuB,OAAkB;AAChD,KAAI,MAAM,WAAW,EACnB,QAAO;AAuBT,QAAO,IApBO,MAAM,KAAK,SAAS;AAChC,MAAI,SAAS,QAAQ,SAAS,KAAA,EAC5B,QAAO;AAGT,MAAI,OAAO,SAAS,SAClB,QAAO,OAAO,KAAK;AAGrB,MAAI,OAAO,SAAS,UAClB,QAAO,OAAO,SAAS;AAGzB,MAAI,gBAAgB,KAClB,QAAO,IAAI,0BAA0B,KAAK,aAAa,CAAC,CAAC;AAG3D,SAAO,IAAI,0BAA0B,OAAO,KAAK,CAAC,CAAC;GACnD,CAEe,KAAK,IAAI,CAAC;;AAG7B,SAAgB,gBACd,OACA,MACA,gBACA;CACA,MAAM,MAA+B,EAAE;AAEvC,MAAK,MAAM,SAAS,MAAM;EACxB,MAAM,QAAQ,KAAK;EAEnB,MAAM,MAAM,MAAM,QAAQ;AAE1B,MAAI,CAAC,IACH;AAGF,MACE,eAAe,YAAY,cAC3B,IAAI,KAAK,cACT,MAAM,QAAQ,MAAM,EACpB;AACA,OAAI,IAAI,KAAK,WAAW,uBAAuB,MAAM;AACrD;;AAGF,MAAI,IAAI,KAAK,WAAW,eAAe,eAAe,IAAI,MAAM,MAAM;;AAGxE,QAAO"}
@@ -1,73 +0,0 @@
1
- //#region src/lib/orm/sql/serialize/where/predicate.ts
2
- function toColumnValue(table, key, value, dialectAdapter) {
3
- const col = table.columns[key];
4
- if (!col) return {
5
- exists: false,
6
- kind: null,
7
- serialized: value,
8
- sqlName: key
9
- };
10
- return {
11
- exists: true,
12
- kind: col.kind,
13
- serialized: dialectAdapter.serializeValue(col.kind, value),
14
- sqlName: col.meta.sqlName
15
- };
16
- }
17
- function serializeWherePredicate(sql, table, predicate, dialectAdapter) {
18
- const { exists, kind, serialized, sqlName } = toColumnValue(table, predicate.key, predicate.value, dialectAdapter);
19
- if (!exists) return null;
20
- const column = sql(sqlName);
21
- switch (predicate.op) {
22
- case "eq": return sql`${column} = ${serialized}`;
23
- case "neq": return sql`${column} != ${serialized}`;
24
- case "gt": return sql`${column} > ${serialized}`;
25
- case "gte": return sql`${column} >= ${serialized}`;
26
- case "lt": return sql`${column} < ${serialized}`;
27
- case "lte": return sql`${column} <= ${serialized}`;
28
- case "like": {
29
- const likeValue = predicate.value;
30
- if (typeof likeValue !== "object" || likeValue === null) return null;
31
- const mode = Reflect.get(likeValue, "mode");
32
- const val = Reflect.get(likeValue, "value");
33
- if (mode !== "startsWith" && mode !== "endsWith" && mode !== "contains") return null;
34
- if (typeof val !== "string") return null;
35
- const pattern = dialectAdapter.renderLikePattern(mode, val);
36
- if (dialectAdapter.likeKeyword === "ILIKE") return sql`${column} ILIKE ${pattern}`;
37
- return sql`${column} LIKE ${pattern}`;
38
- }
39
- case "in": {
40
- if (!Array.isArray(predicate.value)) return null;
41
- if (predicate.value.length === 0) return null;
42
- const values = new Array(predicate.value.length);
43
- for (let index = 0; index < predicate.value.length; index++) {
44
- const item = predicate.value[index];
45
- if (!kind) {
46
- values[index] = item;
47
- continue;
48
- }
49
- values[index] = dialectAdapter.serializeValue(kind, item);
50
- }
51
- return sql`${column} IN ${sql(values)}`;
52
- }
53
- case "not_in": {
54
- if (!Array.isArray(predicate.value)) return null;
55
- if (predicate.value.length === 0) return null;
56
- const values = new Array(predicate.value.length);
57
- for (let index = 0; index < predicate.value.length; index++) {
58
- const item = predicate.value[index];
59
- if (!kind) {
60
- values[index] = item;
61
- continue;
62
- }
63
- values[index] = dialectAdapter.serializeValue(kind, item);
64
- }
65
- return sql`${column} NOT IN ${sql(values)}`;
66
- }
67
- case "is_null": return sql`${column} IS NULL`;
68
- case "is_not_null": return sql`${column} IS NOT NULL`;
69
- default: return null;
70
- }
71
- }
72
- //#endregion
73
- exports.serializeWherePredicate = serializeWherePredicate;
@@ -1,75 +0,0 @@
1
- //#region src/lib/orm/sql/serialize/where/predicate.ts
2
- function toColumnValue(table, key, value, dialectAdapter) {
3
- const col = table.columns[key];
4
- if (!col) return {
5
- exists: false,
6
- kind: null,
7
- serialized: value,
8
- sqlName: key
9
- };
10
- return {
11
- exists: true,
12
- kind: col.kind,
13
- serialized: dialectAdapter.serializeValue(col.kind, value),
14
- sqlName: col.meta.sqlName
15
- };
16
- }
17
- function serializeWherePredicate(sql, table, predicate, dialectAdapter) {
18
- const { exists, kind, serialized, sqlName } = toColumnValue(table, predicate.key, predicate.value, dialectAdapter);
19
- if (!exists) return null;
20
- const column = sql(sqlName);
21
- switch (predicate.op) {
22
- case "eq": return sql`${column} = ${serialized}`;
23
- case "neq": return sql`${column} != ${serialized}`;
24
- case "gt": return sql`${column} > ${serialized}`;
25
- case "gte": return sql`${column} >= ${serialized}`;
26
- case "lt": return sql`${column} < ${serialized}`;
27
- case "lte": return sql`${column} <= ${serialized}`;
28
- case "like": {
29
- const likeValue = predicate.value;
30
- if (typeof likeValue !== "object" || likeValue === null) return null;
31
- const mode = Reflect.get(likeValue, "mode");
32
- const val = Reflect.get(likeValue, "value");
33
- if (mode !== "startsWith" && mode !== "endsWith" && mode !== "contains") return null;
34
- if (typeof val !== "string") return null;
35
- const pattern = dialectAdapter.renderLikePattern(mode, val);
36
- if (dialectAdapter.likeKeyword === "ILIKE") return sql`${column} ILIKE ${pattern}`;
37
- return sql`${column} LIKE ${pattern}`;
38
- }
39
- case "in": {
40
- if (!Array.isArray(predicate.value)) return null;
41
- if (predicate.value.length === 0) return null;
42
- const values = new Array(predicate.value.length);
43
- for (let index = 0; index < predicate.value.length; index++) {
44
- const item = predicate.value[index];
45
- if (!kind) {
46
- values[index] = item;
47
- continue;
48
- }
49
- values[index] = dialectAdapter.serializeValue(kind, item);
50
- }
51
- return sql`${column} IN ${sql(values)}`;
52
- }
53
- case "not_in": {
54
- if (!Array.isArray(predicate.value)) return null;
55
- if (predicate.value.length === 0) return null;
56
- const values = new Array(predicate.value.length);
57
- for (let index = 0; index < predicate.value.length; index++) {
58
- const item = predicate.value[index];
59
- if (!kind) {
60
- values[index] = item;
61
- continue;
62
- }
63
- values[index] = dialectAdapter.serializeValue(kind, item);
64
- }
65
- return sql`${column} NOT IN ${sql(values)}`;
66
- }
67
- case "is_null": return sql`${column} IS NULL`;
68
- case "is_not_null": return sql`${column} IS NOT NULL`;
69
- default: return null;
70
- }
71
- }
72
- //#endregion
73
- export { serializeWherePredicate };
74
-
75
- //# sourceMappingURL=predicate.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"predicate.mjs","names":[],"sources":["../../../../../src/lib/orm/sql/serialize/where/predicate.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport type { Table } from \"../../../table.js\";\nimport type {\n ColDefs,\n DialectAdapter,\n WherePredicate,\n} from \"../../../types.js\";\n\nfunction toColumnValue(\n table: Table<ColDefs>,\n key: string,\n value: unknown,\n dialectAdapter: DialectAdapter,\n) {\n const col = table.columns[key];\n\n if (!col) {\n return {\n exists: false,\n kind: null,\n serialized: value,\n sqlName: key,\n };\n }\n\n return {\n exists: true,\n kind: col.kind,\n serialized: dialectAdapter.serializeValue(col.kind, value),\n sqlName: col.meta.sqlName,\n };\n}\n\nexport function serializeWherePredicate<T extends ColDefs>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n predicate: WherePredicate<T>,\n dialectAdapter: DialectAdapter,\n) {\n const { exists, kind, serialized, sqlName } = toColumnValue(\n table,\n predicate.key,\n predicate.value,\n dialectAdapter,\n );\n\n if (!exists) {\n return null;\n }\n\n const column = sql(sqlName);\n\n switch (predicate.op) {\n case \"eq\":\n return sql`${column} = ${serialized}`;\n\n case \"neq\":\n return sql`${column} != ${serialized}`;\n\n case \"gt\":\n return sql`${column} > ${serialized}`;\n\n case \"gte\":\n return sql`${column} >= ${serialized}`;\n\n case \"lt\":\n return sql`${column} < ${serialized}`;\n\n case \"lte\":\n return sql`${column} <= ${serialized}`;\n\n case \"like\": {\n const likeValue = predicate.value;\n\n if (typeof likeValue !== \"object\" || likeValue === null) {\n return null;\n }\n\n const mode = Reflect.get(likeValue, \"mode\");\n const val = Reflect.get(likeValue, \"value\");\n\n if (mode !== \"startsWith\" && mode !== \"endsWith\" && mode !== \"contains\") {\n return null;\n }\n\n if (typeof val !== \"string\") {\n return null;\n }\n\n const pattern = dialectAdapter.renderLikePattern(mode, val);\n\n if (dialectAdapter.likeKeyword === \"ILIKE\") {\n return sql`${column} ILIKE ${pattern}`;\n }\n\n return sql`${column} LIKE ${pattern}`;\n }\n\n case \"in\": {\n if (!Array.isArray(predicate.value)) {\n return null;\n }\n\n if (predicate.value.length === 0) {\n return null;\n }\n\n const values: unknown[] = new Array(predicate.value.length);\n\n for (let index = 0; index < predicate.value.length; index++) {\n const item = predicate.value[index];\n\n if (!kind) {\n values[index] = item;\n continue;\n }\n\n values[index] = dialectAdapter.serializeValue(kind, item);\n }\n\n return sql`${column} IN ${sql(values)}`;\n }\n\n case \"not_in\": {\n if (!Array.isArray(predicate.value)) {\n return null;\n }\n\n if (predicate.value.length === 0) {\n return null;\n }\n\n const values: unknown[] = new Array(predicate.value.length);\n\n for (let index = 0; index < predicate.value.length; index++) {\n const item = predicate.value[index];\n\n if (!kind) {\n values[index] = item;\n continue;\n }\n\n values[index] = dialectAdapter.serializeValue(kind, item);\n }\n\n return sql`${column} NOT IN ${sql(values)}`;\n }\n\n case \"is_null\":\n return sql`${column} IS NULL`;\n\n case \"is_not_null\":\n return sql`${column} IS NOT NULL`;\n\n default:\n return null;\n }\n}\n"],"mappings":";AAQA,SAAS,cACP,OACA,KACA,OACA,gBACA;CACA,MAAM,MAAM,MAAM,QAAQ;AAE1B,KAAI,CAAC,IACH,QAAO;EACL,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,SAAS;EACV;AAGH,QAAO;EACL,QAAQ;EACR,MAAM,IAAI;EACV,YAAY,eAAe,eAAe,IAAI,MAAM,MAAM;EAC1D,SAAS,IAAI,KAAK;EACnB;;AAGH,SAAgB,wBACd,KACA,OACA,WACA,gBACA;CACA,MAAM,EAAE,QAAQ,MAAM,YAAY,YAAY,cAC5C,OACA,UAAU,KACV,UAAU,OACV,eACD;AAED,KAAI,CAAC,OACH,QAAO;CAGT,MAAM,SAAS,IAAI,QAAQ;AAE3B,SAAQ,UAAU,IAAlB;EACE,KAAK,KACH,QAAO,GAAG,GAAG,OAAO,KAAK;EAE3B,KAAK,MACH,QAAO,GAAG,GAAG,OAAO,MAAM;EAE5B,KAAK,KACH,QAAO,GAAG,GAAG,OAAO,KAAK;EAE3B,KAAK,MACH,QAAO,GAAG,GAAG,OAAO,MAAM;EAE5B,KAAK,KACH,QAAO,GAAG,GAAG,OAAO,KAAK;EAE3B,KAAK,MACH,QAAO,GAAG,GAAG,OAAO,MAAM;EAE5B,KAAK,QAAQ;GACX,MAAM,YAAY,UAAU;AAE5B,OAAI,OAAO,cAAc,YAAY,cAAc,KACjD,QAAO;GAGT,MAAM,OAAO,QAAQ,IAAI,WAAW,OAAO;GAC3C,MAAM,MAAM,QAAQ,IAAI,WAAW,QAAQ;AAE3C,OAAI,SAAS,gBAAgB,SAAS,cAAc,SAAS,WAC3D,QAAO;AAGT,OAAI,OAAO,QAAQ,SACjB,QAAO;GAGT,MAAM,UAAU,eAAe,kBAAkB,MAAM,IAAI;AAE3D,OAAI,eAAe,gBAAgB,QACjC,QAAO,GAAG,GAAG,OAAO,SAAS;AAG/B,UAAO,GAAG,GAAG,OAAO,QAAQ;;EAG9B,KAAK,MAAM;AACT,OAAI,CAAC,MAAM,QAAQ,UAAU,MAAM,CACjC,QAAO;AAGT,OAAI,UAAU,MAAM,WAAW,EAC7B,QAAO;GAGT,MAAM,SAAoB,IAAI,MAAM,UAAU,MAAM,OAAO;AAE3D,QAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,MAAM,QAAQ,SAAS;IAC3D,MAAM,OAAO,UAAU,MAAM;AAE7B,QAAI,CAAC,MAAM;AACT,YAAO,SAAS;AAChB;;AAGF,WAAO,SAAS,eAAe,eAAe,MAAM,KAAK;;AAG3D,UAAO,GAAG,GAAG,OAAO,MAAM,IAAI,OAAO;;EAGvC,KAAK,UAAU;AACb,OAAI,CAAC,MAAM,QAAQ,UAAU,MAAM,CACjC,QAAO;AAGT,OAAI,UAAU,MAAM,WAAW,EAC7B,QAAO;GAGT,MAAM,SAAoB,IAAI,MAAM,UAAU,MAAM,OAAO;AAE3D,QAAK,IAAI,QAAQ,GAAG,QAAQ,UAAU,MAAM,QAAQ,SAAS;IAC3D,MAAM,OAAO,UAAU,MAAM;AAE7B,QAAI,CAAC,MAAM;AACT,YAAO,SAAS;AAChB;;AAGF,WAAO,SAAS,eAAe,eAAe,MAAM,KAAK;;AAG3D,UAAO,GAAG,GAAG,OAAO,UAAU,IAAI,OAAO;;EAG3C,KAAK,UACH,QAAO,GAAG,GAAG,OAAO;EAEtB,KAAK,cACH,QAAO,GAAG,GAAG,OAAO;EAEtB,QACE,QAAO"}
@@ -1,26 +0,0 @@
1
- const require_predicate = require("./predicate.cjs");
2
- //#region src/lib/orm/sql/serialize/where/tree.ts
3
- function serializeWhereNode(sql, table, node, dialectAdapter) {
4
- if (node.kind === "predicate") return require_predicate.serializeWherePredicate(sql, table, node, dialectAdapter);
5
- const fragments = [];
6
- for (const child of node.nodes) {
7
- const fragment = serializeWhereNode(sql, table, child, dialectAdapter);
8
- if (!fragment) continue;
9
- fragments.push(fragment);
10
- }
11
- const firstNode = fragments[0];
12
- if (!firstNode) return null;
13
- let joined = firstNode;
14
- for (let index = 1; index < fragments.length; index++) {
15
- const fragment = fragments[index];
16
- if (!fragment) continue;
17
- if (node.kind === "or") {
18
- joined = sql`${joined} OR ${fragment}`;
19
- continue;
20
- }
21
- joined = sql`${joined} AND ${fragment}`;
22
- }
23
- return sql`(${joined})`;
24
- }
25
- //#endregion
26
- exports.serializeWhereNode = serializeWhereNode;