semola 0.5.2 → 0.5.3

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 (262) hide show
  1. package/README.md +88 -13
  2. package/dist/cron/builder/index.cjs +166 -0
  3. package/dist/cron/builder/index.d.cts +28 -0
  4. package/dist/cron/builder/index.d.cts.map +1 -0
  5. package/dist/cron/builder/index.d.mts +28 -0
  6. package/dist/cron/builder/index.d.mts.map +1 -0
  7. package/dist/cron/builder/index.mjs +163 -0
  8. package/dist/cron/builder/index.mjs.map +1 -0
  9. package/dist/cron/builder/types.cjs +27 -0
  10. package/dist/cron/builder/types.d.cts +79 -0
  11. package/dist/cron/builder/types.d.cts.map +1 -0
  12. package/dist/cron/builder/types.d.mts +79 -0
  13. package/dist/cron/builder/types.d.mts.map +1 -0
  14. package/dist/cron/builder/types.mjs +28 -0
  15. package/dist/cron/builder/types.mjs.map +1 -0
  16. package/dist/cron/core/index.cjs +308 -0
  17. package/dist/cron/core/index.d.cts +39 -0
  18. package/dist/cron/core/index.d.cts.map +1 -0
  19. package/dist/cron/core/index.d.mts +39 -0
  20. package/dist/cron/core/index.d.mts.map +1 -0
  21. package/dist/cron/core/index.mjs +310 -0
  22. package/dist/cron/core/index.mjs.map +1 -0
  23. package/dist/cron/{scanner.cjs → core/scanner.cjs} +2 -2
  24. package/dist/cron/{scanner.mjs → core/scanner.mjs} +2 -2
  25. package/dist/cron/core/scanner.mjs.map +1 -0
  26. package/dist/cron/{types.d.cts → core/types.d.cts} +1 -1
  27. package/dist/cron/core/types.d.cts.map +1 -0
  28. package/dist/cron/{types.d.mts → core/types.d.mts} +1 -1
  29. package/dist/cron/core/types.d.mts.map +1 -0
  30. package/dist/errors/types.d.cts +1 -1
  31. package/dist/errors/types.d.mts +1 -1
  32. package/dist/lib/cache/index.d.cts +3 -3
  33. package/dist/lib/cache/index.d.mts +3 -3
  34. package/dist/lib/cron/index.cjs +12 -275
  35. package/dist/lib/cron/index.d.cts +4 -39
  36. package/dist/lib/cron/index.d.mts +4 -39
  37. package/dist/lib/cron/index.mjs +4 -277
  38. package/dist/lib/errors/index.d.cts +2 -2
  39. package/dist/lib/errors/index.d.cts.map +1 -1
  40. package/dist/lib/errors/index.d.mts +2 -2
  41. package/dist/lib/errors/index.d.mts.map +1 -1
  42. package/dist/lib/errors/index.mjs.map +1 -1
  43. package/dist/lib/i18n/index.cjs +6 -1
  44. package/dist/lib/i18n/index.d.cts.map +1 -1
  45. package/dist/lib/i18n/index.d.mts.map +1 -1
  46. package/dist/lib/i18n/index.mjs +6 -1
  47. package/dist/lib/i18n/index.mjs.map +1 -1
  48. package/dist/lib/logging/index.cjs +18 -0
  49. package/dist/lib/logging/index.d.cts +7 -0
  50. package/dist/lib/logging/index.d.mts +7 -0
  51. package/dist/lib/logging/index.mjs +5 -0
  52. package/dist/lib/orm/index.cjs +20 -0
  53. package/dist/lib/orm/index.d.cts +7 -0
  54. package/dist/lib/orm/index.d.mts +7 -0
  55. package/dist/lib/orm/index.mjs +6 -0
  56. package/dist/lib/prompts/index.d.cts +8 -8
  57. package/dist/lib/prompts/index.d.mts +8 -8
  58. package/dist/lib/pubsub/index.cjs +82 -13
  59. package/dist/lib/pubsub/index.d.cts +14 -5
  60. package/dist/lib/pubsub/index.d.cts.map +1 -1
  61. package/dist/lib/pubsub/index.d.mts +14 -5
  62. package/dist/lib/pubsub/index.d.mts.map +1 -1
  63. package/dist/lib/pubsub/index.mjs +82 -13
  64. package/dist/lib/pubsub/index.mjs.map +1 -1
  65. package/dist/lib/queue/index.d.cts +2 -2
  66. package/dist/lib/queue/index.d.mts +2 -2
  67. package/dist/lib/workflow/index.cjs +534 -0
  68. package/dist/lib/workflow/index.d.cts +7 -0
  69. package/dist/lib/workflow/index.d.cts.map +1 -0
  70. package/dist/lib/workflow/index.d.mts +7 -0
  71. package/dist/lib/workflow/index.d.mts.map +1 -0
  72. package/dist/lib/workflow/index.mjs +535 -0
  73. package/dist/lib/workflow/index.mjs.map +1 -0
  74. package/dist/logging/core/index.cjs +99 -0
  75. package/dist/logging/core/index.d.cts +26 -0
  76. package/dist/logging/core/index.d.cts.map +1 -0
  77. package/dist/logging/core/index.d.mts +26 -0
  78. package/dist/logging/core/index.d.mts.map +1 -0
  79. package/dist/logging/core/index.mjs +99 -0
  80. package/dist/logging/core/index.mjs.map +1 -0
  81. package/dist/logging/core/types.cjs +10 -0
  82. package/dist/logging/core/types.d.cts +22 -0
  83. package/dist/logging/core/types.d.cts.map +1 -0
  84. package/dist/logging/core/types.d.mts +22 -0
  85. package/dist/logging/core/types.d.mts.map +1 -0
  86. package/dist/logging/core/types.mjs +12 -0
  87. package/dist/logging/core/types.mjs.map +1 -0
  88. package/dist/logging/formatter/index.cjs +119 -0
  89. package/dist/logging/formatter/index.d.cts +27 -0
  90. package/dist/logging/formatter/index.d.cts.map +1 -0
  91. package/dist/logging/formatter/index.d.mts +27 -0
  92. package/dist/logging/formatter/index.d.mts.map +1 -0
  93. package/dist/logging/formatter/index.mjs +115 -0
  94. package/dist/logging/formatter/index.mjs.map +1 -0
  95. package/dist/logging/formatter/types.d.cts +5 -0
  96. package/dist/logging/formatter/types.d.cts.map +1 -0
  97. package/dist/logging/formatter/types.d.mts +5 -0
  98. package/dist/logging/formatter/types.d.mts.map +1 -0
  99. package/dist/logging/provider/index.cjs +165 -0
  100. package/dist/logging/provider/index.d.cts +28 -0
  101. package/dist/logging/provider/index.d.cts.map +1 -0
  102. package/dist/logging/provider/index.d.mts +28 -0
  103. package/dist/logging/provider/index.d.mts.map +1 -0
  104. package/dist/logging/provider/index.mjs +165 -0
  105. package/dist/logging/provider/index.mjs.map +1 -0
  106. package/dist/logging/provider/types.d.cts +23 -0
  107. package/dist/logging/provider/types.d.cts.map +1 -0
  108. package/dist/logging/provider/types.d.mts +23 -0
  109. package/dist/logging/provider/types.d.mts.map +1 -0
  110. package/dist/orm/column.cjs +137 -0
  111. package/dist/orm/column.d.cts +121 -0
  112. package/dist/orm/column.d.cts.map +1 -0
  113. package/dist/orm/column.d.mts +121 -0
  114. package/dist/orm/column.d.mts.map +1 -0
  115. package/dist/orm/column.mjs +132 -0
  116. package/dist/orm/column.mjs.map +1 -0
  117. package/dist/orm/dialect/index.cjs +14 -0
  118. package/dist/orm/dialect/index.mjs +16 -0
  119. package/dist/orm/dialect/index.mjs.map +1 -0
  120. package/dist/orm/dialect/mysql.cjs +31 -0
  121. package/dist/orm/dialect/mysql.mjs +33 -0
  122. package/dist/orm/dialect/mysql.mjs.map +1 -0
  123. package/dist/orm/dialect/postgres.cjs +23 -0
  124. package/dist/orm/dialect/postgres.mjs +25 -0
  125. package/dist/orm/dialect/postgres.mjs.map +1 -0
  126. package/dist/orm/dialect/sqlite.cjs +31 -0
  127. package/dist/orm/dialect/sqlite.mjs +33 -0
  128. package/dist/orm/dialect/sqlite.mjs.map +1 -0
  129. package/dist/orm/dialect/utils.cjs +8 -0
  130. package/dist/orm/dialect/utils.mjs +10 -0
  131. package/dist/orm/dialect/utils.mjs.map +1 -0
  132. package/dist/orm/internal/table-columns.cjs +31 -0
  133. package/dist/orm/internal/table-columns.mjs +32 -0
  134. package/dist/orm/internal/table-columns.mjs.map +1 -0
  135. package/dist/orm/internal/table-lookup.cjs +35 -0
  136. package/dist/orm/internal/table-lookup.mjs +35 -0
  137. package/dist/orm/internal/table-lookup.mjs.map +1 -0
  138. package/dist/orm/internal/table-relations.cjs +28 -0
  139. package/dist/orm/internal/table-relations.mjs +29 -0
  140. package/dist/orm/internal/table-relations.mjs.map +1 -0
  141. package/dist/orm/migration/config.cjs +7 -0
  142. package/dist/orm/migration/config.d.cts +7 -0
  143. package/dist/orm/migration/config.d.cts.map +1 -0
  144. package/dist/orm/migration/config.d.mts +7 -0
  145. package/dist/orm/migration/config.d.mts.map +1 -0
  146. package/dist/orm/migration/config.mjs +8 -0
  147. package/dist/orm/migration/config.mjs.map +1 -0
  148. package/dist/orm/migration/types.d.cts +20 -0
  149. package/dist/orm/migration/types.d.cts.map +1 -0
  150. package/dist/orm/migration/types.d.mts +20 -0
  151. package/dist/orm/migration/types.d.mts.map +1 -0
  152. package/dist/orm/orm.cjs +41 -0
  153. package/dist/orm/orm.d.cts +18 -0
  154. package/dist/orm/orm.d.cts.map +1 -0
  155. package/dist/orm/orm.d.mts +18 -0
  156. package/dist/orm/orm.d.mts.map +1 -0
  157. package/dist/orm/orm.mjs +43 -0
  158. package/dist/orm/orm.mjs.map +1 -0
  159. package/dist/orm/relation.cjs +18 -0
  160. package/dist/orm/relation.d.cts +8 -0
  161. package/dist/orm/relation.d.cts.map +1 -0
  162. package/dist/orm/relation.d.mts +8 -0
  163. package/dist/orm/relation.d.mts.map +1 -0
  164. package/dist/orm/relation.mjs +19 -0
  165. package/dist/orm/relation.mjs.map +1 -0
  166. package/dist/orm/runtime/builders/mutations.cjs +29 -0
  167. package/dist/orm/runtime/builders/mutations.mjs +28 -0
  168. package/dist/orm/runtime/builders/mutations.mjs.map +1 -0
  169. package/dist/orm/runtime/builders/select.cjs +18 -0
  170. package/dist/orm/runtime/builders/select.mjs +19 -0
  171. package/dist/orm/runtime/builders/select.mjs.map +1 -0
  172. package/dist/orm/runtime/client.cjs +90 -0
  173. package/dist/orm/runtime/client.mjs +92 -0
  174. package/dist/orm/runtime/client.mjs.map +1 -0
  175. package/dist/orm/runtime/context.cjs +49 -0
  176. package/dist/orm/runtime/context.mjs +51 -0
  177. package/dist/orm/runtime/context.mjs.map +1 -0
  178. package/dist/orm/runtime/dialect/index.cjs +11 -0
  179. package/dist/orm/runtime/dialect/index.mjs +13 -0
  180. package/dist/orm/runtime/dialect/index.mjs.map +1 -0
  181. package/dist/orm/runtime/dialect/mysql.cjs +95 -0
  182. package/dist/orm/runtime/dialect/mysql.mjs +97 -0
  183. package/dist/orm/runtime/dialect/mysql.mjs.map +1 -0
  184. package/dist/orm/runtime/dialect/postgres.cjs +51 -0
  185. package/dist/orm/runtime/dialect/postgres.mjs +53 -0
  186. package/dist/orm/runtime/dialect/postgres.mjs.map +1 -0
  187. package/dist/orm/runtime/dialect/sqlite.cjs +4 -0
  188. package/dist/orm/runtime/dialect/sqlite.mjs +7 -0
  189. package/dist/orm/runtime/dialect/sqlite.mjs.map +1 -0
  190. package/dist/orm/runtime/errors.cjs +19 -0
  191. package/dist/orm/runtime/errors.mjs +21 -0
  192. package/dist/orm/runtime/errors.mjs.map +1 -0
  193. package/dist/orm/runtime/hydrate/many.cjs +46 -0
  194. package/dist/orm/runtime/hydrate/many.mjs +48 -0
  195. package/dist/orm/runtime/hydrate/many.mjs.map +1 -0
  196. package/dist/orm/runtime/hydrate/one.cjs +38 -0
  197. package/dist/orm/runtime/hydrate/one.mjs +40 -0
  198. package/dist/orm/runtime/hydrate/one.mjs.map +1 -0
  199. package/dist/orm/runtime/hydrate.cjs +49 -0
  200. package/dist/orm/runtime/hydrate.mjs +51 -0
  201. package/dist/orm/runtime/hydrate.mjs.map +1 -0
  202. package/dist/orm/runtime/rows.cjs +30 -0
  203. package/dist/orm/runtime/rows.mjs +31 -0
  204. package/dist/orm/runtime/rows.mjs.map +1 -0
  205. package/dist/orm/runtime/utils.cjs +27 -0
  206. package/dist/orm/runtime/utils.mjs +27 -0
  207. package/dist/orm/runtime/utils.mjs.map +1 -0
  208. package/dist/orm/sql/parse-array.cjs +64 -0
  209. package/dist/orm/sql/parse-array.mjs +66 -0
  210. package/dist/orm/sql/parse-array.mjs.map +1 -0
  211. package/dist/orm/sql/plan/select.cjs +36 -0
  212. package/dist/orm/sql/plan/select.mjs +38 -0
  213. package/dist/orm/sql/plan/select.mjs.map +1 -0
  214. package/dist/orm/sql/plan/where/operators.cjs +95 -0
  215. package/dist/orm/sql/plan/where/operators.mjs +97 -0
  216. package/dist/orm/sql/plan/where/operators.mjs.map +1 -0
  217. package/dist/orm/sql/plan/where.cjs +59 -0
  218. package/dist/orm/sql/plan/where.mjs +61 -0
  219. package/dist/orm/sql/plan/where.mjs.map +1 -0
  220. package/dist/orm/sql/serialize/clauses.cjs +36 -0
  221. package/dist/orm/sql/serialize/clauses.mjs +37 -0
  222. package/dist/orm/sql/serialize/clauses.mjs.map +1 -0
  223. package/dist/orm/sql/serialize/joins.cjs +31 -0
  224. package/dist/orm/sql/serialize/joins.mjs +33 -0
  225. package/dist/orm/sql/serialize/joins.mjs.map +1 -0
  226. package/dist/orm/sql/serialize/values.cjs +30 -0
  227. package/dist/orm/sql/serialize/values.mjs +32 -0
  228. package/dist/orm/sql/serialize/values.mjs.map +1 -0
  229. package/dist/orm/sql/serialize/where/predicate.cjs +73 -0
  230. package/dist/orm/sql/serialize/where/predicate.mjs +75 -0
  231. package/dist/orm/sql/serialize/where/predicate.mjs.map +1 -0
  232. package/dist/orm/sql/serialize/where/tree.cjs +26 -0
  233. package/dist/orm/sql/serialize/where/tree.mjs +28 -0
  234. package/dist/orm/sql/serialize/where/tree.mjs.map +1 -0
  235. package/dist/orm/sql/serialize/where.cjs +10 -0
  236. package/dist/orm/sql/serialize/where.mjs +12 -0
  237. package/dist/orm/sql/serialize/where.mjs.map +1 -0
  238. package/dist/orm/sql/serialize.cjs +24 -0
  239. package/dist/orm/sql/serialize.mjs +25 -0
  240. package/dist/orm/sql/serialize.mjs.map +1 -0
  241. package/dist/orm/table.cjs +12 -0
  242. package/dist/orm/table.d.cts +12 -0
  243. package/dist/orm/table.d.cts.map +1 -0
  244. package/dist/orm/table.d.mts +12 -0
  245. package/dist/orm/table.d.mts.map +1 -0
  246. package/dist/orm/table.mjs +14 -0
  247. package/dist/orm/table.mjs.map +1 -0
  248. package/dist/orm/types.d.cts +183 -0
  249. package/dist/orm/types.d.cts.map +1 -0
  250. package/dist/orm/types.d.mts +183 -0
  251. package/dist/orm/types.d.mts.map +1 -0
  252. package/dist/workflow/types.d.cts +83 -0
  253. package/dist/workflow/types.d.cts.map +1 -0
  254. package/dist/workflow/types.d.mts +83 -0
  255. package/dist/workflow/types.d.mts.map +1 -0
  256. package/package.json +29 -3
  257. package/dist/cron/scanner.mjs.map +0 -1
  258. package/dist/cron/types.d.cts.map +0 -1
  259. package/dist/cron/types.d.mts.map +0 -1
  260. package/dist/lib/cron/index.d.cts.map +0 -1
  261. package/dist/lib/cron/index.d.mts.map +0 -1
  262. package/dist/lib/cron/index.mjs.map +0 -1
@@ -0,0 +1,19 @@
1
+ import { serializeSelectInput } from "../../sql/serialize.mjs";
2
+ //#region src/lib/orm/runtime/builders/select.ts
3
+ function mapFindInputToSelect(input) {
4
+ if (!input) return {};
5
+ return {
6
+ where: input.where,
7
+ include: input.include,
8
+ orderBy: input.orderBy,
9
+ limit: input.take,
10
+ offset: input.skip
11
+ };
12
+ }
13
+ function createSelectQuery(sql, table, relations, input, dialectAdapter) {
14
+ return serializeSelectInput(sql, table, relations, input, dialectAdapter);
15
+ }
16
+ //#endregion
17
+ export { createSelectQuery, mapFindInputToSelect };
18
+
19
+ //# sourceMappingURL=select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/builders/select.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport { serializeSelectInput } from \"../../sql/serialize.js\";\nimport type { Table } from \"../../table.js\";\nimport type {\n ColDefs,\n DialectAdapter,\n FindManyInput,\n RelationDefs,\n SelectInput,\n} from \"../../types.js\";\n\nexport function mapFindInputToSelect<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(input?: FindManyInput<T, TRels>) {\n if (!input) {\n return {};\n }\n\n return {\n where: input.where,\n include: input.include,\n orderBy: input.orderBy,\n limit: input.take,\n offset: input.skip,\n };\n}\n\nexport function createSelectQuery<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n relations: TRels,\n input: SelectInput<T, TRels>,\n dialectAdapter: DialectAdapter,\n) {\n return serializeSelectInput(sql, table, relations, input, dialectAdapter);\n}\n"],"mappings":";;AAWA,SAAgB,qBAGd,OAAiC;AACjC,KAAI,CAAC,MACH,QAAO,EAAE;AAGX,QAAO;EACL,OAAO,MAAM;EACb,SAAS,MAAM;EACf,SAAS,MAAM;EACf,OAAO,MAAM;EACb,QAAQ,MAAM;EACf;;AAGH,SAAgB,kBAId,KACA,OACA,WACA,OACA,gBACA;AACA,QAAO,qBAAqB,KAAK,OAAO,WAAW,OAAO,eAAe"}
@@ -0,0 +1,90 @@
1
+ const require_select = require("./builders/select.cjs");
2
+ const require_context = require("./context.cjs");
3
+ const require_utils = require("./utils.cjs");
4
+ const require_index = require("./dialect/index.cjs");
5
+ const require_errors = require("./errors.cjs");
6
+ const require_hydrate = require("./hydrate.cjs");
7
+ const require_rows = require("./rows.cjs");
8
+ //#region src/lib/orm/runtime/client.ts
9
+ function createTableClient(sql, table, relations, dialectAdapter, allTables, allRelations) {
10
+ const supportsReturning = dialectAdapter.dialect !== "mysql";
11
+ const normalizeCurrentRows = (rows) => require_rows.normalizeRows(dialectAdapter.dialect, table, rows);
12
+ const normalizeTargetRows = (targetTable, rows) => require_rows.normalizeRowsForTable(dialectAdapter.dialect, targetTable, rows);
13
+ const context = require_context.createRuntimeDialectContext({
14
+ runner: sql,
15
+ table,
16
+ relations,
17
+ dialectAdapter,
18
+ supportsReturning,
19
+ normalizeCurrentRows,
20
+ executeOrThrow: require_errors.executeOrThrow
21
+ });
22
+ function insertQuery(input) {
23
+ if (input.returning === true) return context.insertReturning({
24
+ ...input,
25
+ returning: true
26
+ });
27
+ return context.insert(input);
28
+ }
29
+ function updateQuery(input) {
30
+ if (input.returning === true) return context.updateReturning({
31
+ ...input,
32
+ returning: true
33
+ });
34
+ return context.update(input);
35
+ }
36
+ function deleteQuery(input) {
37
+ if (input.returning === true) return context.deleteReturning({
38
+ ...input,
39
+ returning: true
40
+ });
41
+ return context.deleteByWhere(input);
42
+ }
43
+ const hydrateIncludedRelations = require_hydrate.createRelationHydrator({
44
+ sql,
45
+ table,
46
+ relations,
47
+ allTables,
48
+ allRelations,
49
+ normalizeRowsForTable: normalizeTargetRows,
50
+ executeOrThrow: require_errors.executeOrThrow
51
+ });
52
+ const runtimeDialect = require_index.getRuntimeDialect(dialectAdapter.dialect);
53
+ return {
54
+ select: context.select,
55
+ async findMany(input) {
56
+ return hydrateIncludedRelations(await context.selectRows(require_select.mapFindInputToSelect(input)), input?.include);
57
+ },
58
+ async findFirst(input) {
59
+ const rows = await context.selectRows({
60
+ ...require_select.mapFindInputToSelect(input),
61
+ limit: 1
62
+ });
63
+ if (input?.include) await hydrateIncludedRelations(rows, input.include);
64
+ return rows[0] ?? null;
65
+ },
66
+ async findUnique(input) {
67
+ return (await context.selectRows({
68
+ where: require_utils.toWhereInput(input.where),
69
+ limit: 1
70
+ }))[0] ?? null;
71
+ },
72
+ insert: insertQuery,
73
+ async create(input) {
74
+ return runtimeDialect.create(context, input);
75
+ },
76
+ async createMany(input) {
77
+ return runtimeDialect.createMany(context, input);
78
+ },
79
+ update: updateQuery,
80
+ async updateMany(input) {
81
+ return runtimeDialect.updateMany(context, input);
82
+ },
83
+ delete: deleteQuery,
84
+ async deleteMany(input) {
85
+ return runtimeDialect.deleteMany(context, input);
86
+ }
87
+ };
88
+ }
89
+ //#endregion
90
+ exports.createTableClient = createTableClient;
@@ -0,0 +1,92 @@
1
+ import { mapFindInputToSelect } from "./builders/select.mjs";
2
+ import { createRuntimeDialectContext } from "./context.mjs";
3
+ import { toWhereInput } from "./utils.mjs";
4
+ import { getRuntimeDialect } from "./dialect/index.mjs";
5
+ import { executeOrThrow } from "./errors.mjs";
6
+ import { createRelationHydrator } from "./hydrate.mjs";
7
+ import { normalizeRows, normalizeRowsForTable } from "./rows.mjs";
8
+ //#region src/lib/orm/runtime/client.ts
9
+ function createTableClient(sql, table, relations, dialectAdapter, allTables, allRelations) {
10
+ const supportsReturning = dialectAdapter.dialect !== "mysql";
11
+ const normalizeCurrentRows = (rows) => normalizeRows(dialectAdapter.dialect, table, rows);
12
+ const normalizeTargetRows = (targetTable, rows) => normalizeRowsForTable(dialectAdapter.dialect, targetTable, rows);
13
+ const context = createRuntimeDialectContext({
14
+ runner: sql,
15
+ table,
16
+ relations,
17
+ dialectAdapter,
18
+ supportsReturning,
19
+ normalizeCurrentRows,
20
+ executeOrThrow
21
+ });
22
+ function insertQuery(input) {
23
+ if (input.returning === true) return context.insertReturning({
24
+ ...input,
25
+ returning: true
26
+ });
27
+ return context.insert(input);
28
+ }
29
+ function updateQuery(input) {
30
+ if (input.returning === true) return context.updateReturning({
31
+ ...input,
32
+ returning: true
33
+ });
34
+ return context.update(input);
35
+ }
36
+ function deleteQuery(input) {
37
+ if (input.returning === true) return context.deleteReturning({
38
+ ...input,
39
+ returning: true
40
+ });
41
+ return context.deleteByWhere(input);
42
+ }
43
+ const hydrateIncludedRelations = createRelationHydrator({
44
+ sql,
45
+ table,
46
+ relations,
47
+ allTables,
48
+ allRelations,
49
+ normalizeRowsForTable: normalizeTargetRows,
50
+ executeOrThrow
51
+ });
52
+ const runtimeDialect = getRuntimeDialect(dialectAdapter.dialect);
53
+ return {
54
+ select: context.select,
55
+ async findMany(input) {
56
+ return hydrateIncludedRelations(await context.selectRows(mapFindInputToSelect(input)), input?.include);
57
+ },
58
+ async findFirst(input) {
59
+ const rows = await context.selectRows({
60
+ ...mapFindInputToSelect(input),
61
+ limit: 1
62
+ });
63
+ if (input?.include) await hydrateIncludedRelations(rows, input.include);
64
+ return rows[0] ?? null;
65
+ },
66
+ async findUnique(input) {
67
+ return (await context.selectRows({
68
+ where: toWhereInput(input.where),
69
+ limit: 1
70
+ }))[0] ?? null;
71
+ },
72
+ insert: insertQuery,
73
+ async create(input) {
74
+ return runtimeDialect.create(context, input);
75
+ },
76
+ async createMany(input) {
77
+ return runtimeDialect.createMany(context, input);
78
+ },
79
+ update: updateQuery,
80
+ async updateMany(input) {
81
+ return runtimeDialect.updateMany(context, input);
82
+ },
83
+ delete: deleteQuery,
84
+ async deleteMany(input) {
85
+ return runtimeDialect.deleteMany(context, input);
86
+ }
87
+ };
88
+ }
89
+ //#endregion
90
+ export { createTableClient };
91
+
92
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.mjs","names":[],"sources":["../../../src/lib/orm/runtime/client.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport type { Table } from \"../table.js\";\nimport type {\n ColDefs,\n CreateInput,\n CreateManyInput,\n DeleteBuilderInput,\n DeleteManyInput,\n DialectAdapter,\n FindFirstInput,\n FindManyInput,\n FindUniqueInput,\n InsertInput,\n RelationDefs,\n TableRow,\n TinyTableClient,\n UpdateBuilderInput,\n UpdateManyInput,\n} from \"../types.js\";\nimport { mapFindInputToSelect } from \"./builders.js\";\nimport { createRuntimeDialectContext } from \"./context.js\";\nimport { getRuntimeDialect } from \"./dialect/index.js\";\nimport { executeOrThrow } from \"./errors.js\";\nimport { createRelationHydrator } from \"./hydrate.js\";\nimport { normalizeRows, normalizeRowsForTable } from \"./rows.js\";\nimport { toWhereInput } from \"./utils.js\";\n\nexport function createTableClient<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(\n sql: SQL | TransactionSQL,\n table: Table<T>,\n relations: TRels,\n dialectAdapter: DialectAdapter,\n allTables: Record<string, Table<ColDefs>>,\n allRelations: Partial<Record<string, RelationDefs>>,\n): TinyTableClient<T, TRels> {\n const supportsReturning = dialectAdapter.dialect !== \"mysql\";\n\n const normalizeCurrentRows = (rows: TableRow<T>[]) =>\n normalizeRows(dialectAdapter.dialect, table, rows);\n\n const normalizeTargetRows = (\n targetTable: Table<ColDefs>,\n rows: Record<string, unknown>[],\n ) => normalizeRowsForTable(dialectAdapter.dialect, targetTable, rows);\n\n const context = createRuntimeDialectContext({\n runner: sql,\n table,\n relations,\n dialectAdapter,\n supportsReturning,\n normalizeCurrentRows,\n executeOrThrow,\n });\n\n function insertQuery(\n input: InsertInput<T> & { returning: true },\n ): SQL.Query<TableRow<T>[]>;\n function insertQuery(input: InsertInput<T>): SQL.Query<unknown>;\n function insertQuery(input: InsertInput<T>) {\n if (input.returning === true) {\n return context.insertReturning({ ...input, returning: true });\n }\n\n return context.insert(input);\n }\n\n function updateQuery(\n input: UpdateBuilderInput<T> & { returning: true },\n ): SQL.Query<TableRow<T>[]>;\n function updateQuery(input: UpdateBuilderInput<T>): SQL.Query<unknown>;\n function updateQuery(input: UpdateBuilderInput<T>) {\n if (input.returning === true) {\n return context.updateReturning({ ...input, returning: true });\n }\n\n return context.update(input);\n }\n\n function deleteQuery(\n input: DeleteBuilderInput<T> & { returning: true },\n ): SQL.Query<TableRow<T>[]>;\n function deleteQuery(input: DeleteBuilderInput<T>): SQL.Query<unknown>;\n function deleteQuery(input: DeleteBuilderInput<T>) {\n if (input.returning === true) {\n return context.deleteReturning({ ...input, returning: true });\n }\n\n return context.deleteByWhere(input);\n }\n\n const hydrateIncludedRelations = createRelationHydrator({\n sql,\n table,\n relations,\n allTables,\n allRelations,\n normalizeRowsForTable: normalizeTargetRows,\n executeOrThrow,\n });\n\n const runtimeDialect = getRuntimeDialect<T, TRels>(dialectAdapter.dialect);\n\n return {\n select: context.select,\n\n async findMany(input?: FindManyInput<T, TRels>) {\n const rows = await context.selectRows(mapFindInputToSelect(input));\n return hydrateIncludedRelations(rows, input?.include);\n },\n\n async findFirst(input?: FindFirstInput<T, TRels>) {\n const rows = await context.selectRows({\n ...mapFindInputToSelect(input),\n limit: 1,\n });\n\n if (input?.include) {\n await hydrateIncludedRelations(rows, input.include);\n }\n\n return rows[0] ?? null;\n },\n\n async findUnique(input: FindUniqueInput<T>) {\n const rows = await context.selectRows({\n where: toWhereInput<T>(input.where) as FindManyInput<\n T,\n Record<never, never>\n >[\"where\"],\n limit: 1,\n });\n return rows[0] ?? null;\n },\n\n insert: insertQuery,\n\n async create(input: CreateInput<T>) {\n return runtimeDialect.create(context, input);\n },\n\n async createMany(input: CreateManyInput<T>) {\n return runtimeDialect.createMany(context, input);\n },\n\n update: updateQuery,\n\n async updateMany(input: UpdateManyInput<T>) {\n return runtimeDialect.updateMany(context, input);\n },\n\n delete: deleteQuery,\n\n async deleteMany(input: DeleteManyInput<T>) {\n return runtimeDialect.deleteMany(context, input);\n },\n };\n}\n"],"mappings":";;;;;;;;AA2BA,SAAgB,kBAId,KACA,OACA,WACA,gBACA,WACA,cAC2B;CAC3B,MAAM,oBAAoB,eAAe,YAAY;CAErD,MAAM,wBAAwB,SAC5B,cAAc,eAAe,SAAS,OAAO,KAAK;CAEpD,MAAM,uBACJ,aACA,SACG,sBAAsB,eAAe,SAAS,aAAa,KAAK;CAErE,MAAM,UAAU,4BAA4B;EAC1C,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAMF,SAAS,YAAY,OAAuB;AAC1C,MAAI,MAAM,cAAc,KACtB,QAAO,QAAQ,gBAAgB;GAAE,GAAG;GAAO,WAAW;GAAM,CAAC;AAG/D,SAAO,QAAQ,OAAO,MAAM;;CAO9B,SAAS,YAAY,OAA8B;AACjD,MAAI,MAAM,cAAc,KACtB,QAAO,QAAQ,gBAAgB;GAAE,GAAG;GAAO,WAAW;GAAM,CAAC;AAG/D,SAAO,QAAQ,OAAO,MAAM;;CAO9B,SAAS,YAAY,OAA8B;AACjD,MAAI,MAAM,cAAc,KACtB,QAAO,QAAQ,gBAAgB;GAAE,GAAG;GAAO,WAAW;GAAM,CAAC;AAG/D,SAAO,QAAQ,cAAc,MAAM;;CAGrC,MAAM,2BAA2B,uBAAuB;EACtD;EACA;EACA;EACA;EACA;EACA,uBAAuB;EACvB;EACD,CAAC;CAEF,MAAM,iBAAiB,kBAA4B,eAAe,QAAQ;AAE1E,QAAO;EACL,QAAQ,QAAQ;EAEhB,MAAM,SAAS,OAAiC;AAE9C,UAAO,yBADM,MAAM,QAAQ,WAAW,qBAAqB,MAAM,CAAC,EAC5B,OAAO,QAAQ;;EAGvD,MAAM,UAAU,OAAkC;GAChD,MAAM,OAAO,MAAM,QAAQ,WAAW;IACpC,GAAG,qBAAqB,MAAM;IAC9B,OAAO;IACR,CAAC;AAEF,OAAI,OAAO,QACT,OAAM,yBAAyB,MAAM,MAAM,QAAQ;AAGrD,UAAO,KAAK,MAAM;;EAGpB,MAAM,WAAW,OAA2B;AAQ1C,WAPa,MAAM,QAAQ,WAAW;IACpC,OAAO,aAAgB,MAAM,MAAM;IAInC,OAAO;IACR,CAAC,EACU,MAAM;;EAGpB,QAAQ;EAER,MAAM,OAAO,OAAuB;AAClC,UAAO,eAAe,OAAO,SAAS,MAAM;;EAG9C,MAAM,WAAW,OAA2B;AAC1C,UAAO,eAAe,WAAW,SAAS,MAAM;;EAGlD,QAAQ;EAER,MAAM,WAAW,OAA2B;AAC1C,UAAO,eAAe,WAAW,SAAS,MAAM;;EAGlD,QAAQ;EAER,MAAM,WAAW,OAA2B;AAC1C,UAAO,eAAe,WAAW,SAAS,MAAM;;EAEnD"}
@@ -0,0 +1,49 @@
1
+ const require_values = require("../sql/serialize/values.cjs");
2
+ const require_mutations = require("./builders/mutations.cjs");
3
+ const require_select = require("./builders/select.cjs");
4
+ //#region src/lib/orm/runtime/context.ts
5
+ function createRuntimeDialectContext(options) {
6
+ const { runner, table, relations, dialectAdapter, supportsReturning, normalizeCurrentRows, executeOrThrow } = options;
7
+ const withRunner = (nextRunner) => createRuntimeDialectContext({
8
+ runner: nextRunner,
9
+ table,
10
+ relations,
11
+ dialectAdapter,
12
+ supportsReturning,
13
+ normalizeCurrentRows,
14
+ executeOrThrow
15
+ });
16
+ const select = (input = {}) => require_select.createSelectQuery(runner, table, relations, input, dialectAdapter);
17
+ const insert = (input) => require_mutations.createInsertQuery(runner, table, input, dialectAdapter, supportsReturning);
18
+ const insertReturning = (input) => require_mutations.createInsertQuery(runner, table, input, dialectAdapter, supportsReturning);
19
+ const insertMany = (rows, returning) => require_mutations.createInsertManyQuery(runner, table, rows, supportsReturning && returning);
20
+ const insertManyReturning = (rows) => require_mutations.createInsertManyQuery(runner, table, rows, true);
21
+ const update = (input) => require_mutations.createUpdateQuery(runner, table, input, dialectAdapter, supportsReturning);
22
+ const updateReturning = (input) => require_mutations.createUpdateQuery(runner, table, input, dialectAdapter, supportsReturning);
23
+ const deleteByWhere = (input) => require_mutations.createDeleteQuery(runner, table, input, dialectAdapter, supportsReturning);
24
+ const deleteReturning = (input) => require_mutations.createDeleteQuery(runner, table, input, dialectAdapter, supportsReturning);
25
+ const selectRows = async (input = {}) => {
26
+ return normalizeCurrentRows(await executeOrThrow(select(input)));
27
+ };
28
+ return {
29
+ runner,
30
+ table,
31
+ relations,
32
+ select,
33
+ selectRows,
34
+ insert,
35
+ insertReturning,
36
+ insertMany,
37
+ insertManyReturning,
38
+ update,
39
+ updateReturning,
40
+ deleteByWhere,
41
+ deleteReturning,
42
+ mapSqlRow: (data) => require_values.mapDataToSqlRow(table, data, dialectAdapter),
43
+ normalizeResultRows: normalizeCurrentRows,
44
+ executeOrThrow,
45
+ withRunner
46
+ };
47
+ }
48
+ //#endregion
49
+ exports.createRuntimeDialectContext = createRuntimeDialectContext;
@@ -0,0 +1,51 @@
1
+ import { mapDataToSqlRow } from "../sql/serialize/values.mjs";
2
+ import { createDeleteQuery, createInsertManyQuery, createInsertQuery, createUpdateQuery } from "./builders/mutations.mjs";
3
+ import { createSelectQuery } from "./builders/select.mjs";
4
+ //#region src/lib/orm/runtime/context.ts
5
+ function createRuntimeDialectContext(options) {
6
+ const { runner, table, relations, dialectAdapter, supportsReturning, normalizeCurrentRows, executeOrThrow } = options;
7
+ const withRunner = (nextRunner) => createRuntimeDialectContext({
8
+ runner: nextRunner,
9
+ table,
10
+ relations,
11
+ dialectAdapter,
12
+ supportsReturning,
13
+ normalizeCurrentRows,
14
+ executeOrThrow
15
+ });
16
+ const select = (input = {}) => createSelectQuery(runner, table, relations, input, dialectAdapter);
17
+ const insert = (input) => createInsertQuery(runner, table, input, dialectAdapter, supportsReturning);
18
+ const insertReturning = (input) => createInsertQuery(runner, table, input, dialectAdapter, supportsReturning);
19
+ const insertMany = (rows, returning) => createInsertManyQuery(runner, table, rows, supportsReturning && returning);
20
+ const insertManyReturning = (rows) => createInsertManyQuery(runner, table, rows, true);
21
+ const update = (input) => createUpdateQuery(runner, table, input, dialectAdapter, supportsReturning);
22
+ const updateReturning = (input) => createUpdateQuery(runner, table, input, dialectAdapter, supportsReturning);
23
+ const deleteByWhere = (input) => createDeleteQuery(runner, table, input, dialectAdapter, supportsReturning);
24
+ const deleteReturning = (input) => createDeleteQuery(runner, table, input, dialectAdapter, supportsReturning);
25
+ const selectRows = async (input = {}) => {
26
+ return normalizeCurrentRows(await executeOrThrow(select(input)));
27
+ };
28
+ return {
29
+ runner,
30
+ table,
31
+ relations,
32
+ select,
33
+ selectRows,
34
+ insert,
35
+ insertReturning,
36
+ insertMany,
37
+ insertManyReturning,
38
+ update,
39
+ updateReturning,
40
+ deleteByWhere,
41
+ deleteReturning,
42
+ mapSqlRow: (data) => mapDataToSqlRow(table, data, dialectAdapter),
43
+ normalizeResultRows: normalizeCurrentRows,
44
+ executeOrThrow,
45
+ withRunner
46
+ };
47
+ }
48
+ //#endregion
49
+ export { createRuntimeDialectContext };
50
+
51
+ //# sourceMappingURL=context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.mjs","names":[],"sources":["../../../src/lib/orm/runtime/context.ts"],"sourcesContent":["import type { SQL, TransactionSQL } from \"bun\";\nimport { mapDataToSqlRow } from \"../sql/serialize.js\";\nimport type { Table } from \"../table.js\";\nimport type {\n ColDefs,\n DeleteBuilderInput,\n DialectAdapter,\n InsertInput,\n RelationDefs,\n TableRow,\n UpdateBuilderInput,\n} from \"../types.js\";\nimport {\n createDeleteQuery,\n createInsertManyQuery,\n createInsertQuery,\n createSelectQuery,\n createUpdateQuery,\n} from \"./builders.js\";\nimport type { RuntimeDialectContext } from \"./dialect/types.js\";\n\nexport function createRuntimeDialectContext<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(options: {\n runner: SQL | TransactionSQL;\n table: Table<T>;\n relations: TRels;\n dialectAdapter: DialectAdapter;\n supportsReturning: boolean;\n normalizeCurrentRows: (rows: TableRow<T>[]) => TableRow<T>[];\n executeOrThrow: <TValue>(promise: Promise<TValue>) => Promise<TValue>;\n}) {\n const {\n runner,\n table,\n relations,\n dialectAdapter,\n supportsReturning,\n normalizeCurrentRows,\n executeOrThrow,\n } = options;\n\n const withRunner = (nextRunner: SQL | TransactionSQL) =>\n createRuntimeDialectContext({\n runner: nextRunner,\n table,\n relations,\n dialectAdapter,\n supportsReturning,\n normalizeCurrentRows,\n executeOrThrow,\n });\n\n const select = (input = {}) =>\n createSelectQuery(runner, table, relations, input, dialectAdapter);\n\n const insert = (input: InsertInput<T>) =>\n createInsertQuery(runner, table, input, dialectAdapter, supportsReturning);\n\n const insertReturning = (input: InsertInput<T> & { returning: true }) =>\n createInsertQuery(runner, table, input, dialectAdapter, supportsReturning);\n\n const insertMany = (\n rows: Array<Record<string, unknown>>,\n returning: boolean,\n ) =>\n createInsertManyQuery(runner, table, rows, supportsReturning && returning);\n\n const insertManyReturning = (rows: Array<Record<string, unknown>>) =>\n createInsertManyQuery(runner, table, rows, true);\n\n const update = (input: UpdateBuilderInput<T>) =>\n createUpdateQuery(runner, table, input, dialectAdapter, supportsReturning);\n\n const updateReturning = (\n input: UpdateBuilderInput<T> & { returning: true },\n ) =>\n createUpdateQuery(runner, table, input, dialectAdapter, supportsReturning);\n\n const deleteByWhere = (input: DeleteBuilderInput<T>) =>\n createDeleteQuery(runner, table, input, dialectAdapter, supportsReturning);\n\n const deleteReturning = (\n input: DeleteBuilderInput<T> & { returning: true },\n ) =>\n createDeleteQuery(runner, table, input, dialectAdapter, supportsReturning);\n\n const selectRows = async (input = {}) => {\n const rows = await executeOrThrow(select(input));\n return normalizeCurrentRows(rows);\n };\n\n const context: RuntimeDialectContext<T, TRels> = {\n runner,\n table,\n relations,\n select,\n selectRows,\n insert,\n insertReturning,\n insertMany,\n insertManyReturning,\n update,\n updateReturning,\n deleteByWhere,\n deleteReturning,\n mapSqlRow: (data) => mapDataToSqlRow(table, data, dialectAdapter),\n normalizeResultRows: normalizeCurrentRows,\n executeOrThrow,\n withRunner,\n };\n\n return context;\n}\n"],"mappings":";;;;AAqBA,SAAgB,4BAGd,SAQC;CACD,MAAM,EACJ,QACA,OACA,WACA,gBACA,mBACA,sBACA,mBACE;CAEJ,MAAM,cAAc,eAClB,4BAA4B;EAC1B,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEJ,MAAM,UAAU,QAAQ,EAAE,KACxB,kBAAkB,QAAQ,OAAO,WAAW,OAAO,eAAe;CAEpE,MAAM,UAAU,UACd,kBAAkB,QAAQ,OAAO,OAAO,gBAAgB,kBAAkB;CAE5E,MAAM,mBAAmB,UACvB,kBAAkB,QAAQ,OAAO,OAAO,gBAAgB,kBAAkB;CAE5E,MAAM,cACJ,MACA,cAEA,sBAAsB,QAAQ,OAAO,MAAM,qBAAqB,UAAU;CAE5E,MAAM,uBAAuB,SAC3B,sBAAsB,QAAQ,OAAO,MAAM,KAAK;CAElD,MAAM,UAAU,UACd,kBAAkB,QAAQ,OAAO,OAAO,gBAAgB,kBAAkB;CAE5E,MAAM,mBACJ,UAEA,kBAAkB,QAAQ,OAAO,OAAO,gBAAgB,kBAAkB;CAE5E,MAAM,iBAAiB,UACrB,kBAAkB,QAAQ,OAAO,OAAO,gBAAgB,kBAAkB;CAE5E,MAAM,mBACJ,UAEA,kBAAkB,QAAQ,OAAO,OAAO,gBAAgB,kBAAkB;CAE5E,MAAM,aAAa,OAAO,QAAQ,EAAE,KAAK;AAEvC,SAAO,qBADM,MAAM,eAAe,OAAO,MAAM,CAAC,CACf;;AAuBnC,QApBiD;EAC/C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY,SAAS,gBAAgB,OAAO,MAAM,eAAe;EACjE,qBAAqB;EACrB;EACA;EACD"}
@@ -0,0 +1,11 @@
1
+ const require_mysql = require("./mysql.cjs");
2
+ const require_postgres = require("./postgres.cjs");
3
+ const require_sqlite = require("./sqlite.cjs");
4
+ //#region src/lib/orm/runtime/dialect/index.ts
5
+ function getRuntimeDialect(dialect) {
6
+ if (dialect === "postgres") return require_postgres.createPostgresRuntimeDialect();
7
+ if (dialect === "mysql") return require_mysql.createMysqlRuntimeDialect();
8
+ return require_sqlite.createSqliteRuntimeDialect();
9
+ }
10
+ //#endregion
11
+ exports.getRuntimeDialect = getRuntimeDialect;
@@ -0,0 +1,13 @@
1
+ import { createMysqlRuntimeDialect } from "./mysql.mjs";
2
+ import { createPostgresRuntimeDialect } from "./postgres.mjs";
3
+ import { createSqliteRuntimeDialect } from "./sqlite.mjs";
4
+ //#region src/lib/orm/runtime/dialect/index.ts
5
+ function getRuntimeDialect(dialect) {
6
+ if (dialect === "postgres") return createPostgresRuntimeDialect();
7
+ if (dialect === "mysql") return createMysqlRuntimeDialect();
8
+ return createSqliteRuntimeDialect();
9
+ }
10
+ //#endregion
11
+ export { getRuntimeDialect };
12
+
13
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/dialect/index.ts"],"sourcesContent":["import type { ColDefs, Dialect, RelationDefs } from \"../../types.js\";\nimport { createMysqlRuntimeDialect } from \"./mysql.js\";\nimport { createPostgresRuntimeDialect } from \"./postgres.js\";\nimport { createSqliteRuntimeDialect } from \"./sqlite.js\";\n\nexport function getRuntimeDialect<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(dialect: Dialect) {\n if (dialect === \"postgres\") {\n return createPostgresRuntimeDialect<T, TRels>();\n }\n\n if (dialect === \"mysql\") {\n return createMysqlRuntimeDialect<T, TRels>();\n }\n\n return createSqliteRuntimeDialect<T, TRels>();\n}\n"],"mappings":";;;;AAKA,SAAgB,kBAGd,SAAkB;AAClB,KAAI,YAAY,WACd,QAAO,8BAAwC;AAGjD,KAAI,YAAY,QACd,QAAO,2BAAqC;AAG9C,QAAO,4BAAsC"}
@@ -0,0 +1,95 @@
1
+ const require_table_lookup = require("../../internal/table-lookup.cjs");
2
+ const require_utils = require("../utils.cjs");
3
+ let bun = require("bun");
4
+ //#region src/lib/orm/runtime/dialect/mysql.ts
5
+ function createMysqlRuntimeDialect() {
6
+ return {
7
+ async create(context, input) {
8
+ const primaryKey = require_table_lookup.getPrimaryKeyColumn(context.table);
9
+ const selectCreatedRow = async (whereData) => {
10
+ return require_utils.expectSingleRow(await context.selectRows({
11
+ where: require_utils.toWhereInput(whereData),
12
+ limit: 1
13
+ }), "Insert returned no rows");
14
+ };
15
+ const selectLastInsertId = async () => {
16
+ const rows = await context.executeOrThrow(context.runner`SELECT LAST_INSERT_ID() AS insertId`);
17
+ if (!Array.isArray(rows)) return;
18
+ const firstRow = rows[0];
19
+ if (typeof firstRow !== "object") return;
20
+ if (firstRow === null) return;
21
+ return Reflect.get(firstRow, "insertId");
22
+ };
23
+ const insertResult = await context.executeOrThrow(context.insert({ data: input.data }));
24
+ if (!primaryKey) return selectCreatedRow(input.data);
25
+ const selectCreatedRowByPrimaryKey = async (value) => {
26
+ const whereByPk = {};
27
+ Reflect.set(whereByPk, primaryKey.jsKey, value);
28
+ return selectCreatedRow(whereByPk);
29
+ };
30
+ const providedPkValue = Reflect.get(input.data, primaryKey.jsKey);
31
+ if (providedPkValue !== null && providedPkValue !== void 0) return selectCreatedRowByPrimaryKey(providedPkValue);
32
+ let insertedPkValue;
33
+ if (typeof insertResult === "object") {
34
+ if (insertResult !== null) insertedPkValue = Reflect.get(insertResult, "insertId");
35
+ }
36
+ if (insertedPkValue === null || insertedPkValue === void 0) insertedPkValue = await selectLastInsertId();
37
+ if (insertedPkValue === null || insertedPkValue === void 0) throw new Error("Insert returned no primary key");
38
+ return selectCreatedRowByPrimaryKey(insertedPkValue);
39
+ },
40
+ async createMany(context, input) {
41
+ if (input.data.length === 0) return {
42
+ count: 0,
43
+ rows: []
44
+ };
45
+ const rows = input.data.map((item) => context.mapSqlRow(item));
46
+ await context.executeOrThrow(context.insertMany(rows, false));
47
+ return {
48
+ count: rows.length,
49
+ rows: []
50
+ };
51
+ },
52
+ async updateMany(context, input) {
53
+ if (context.runner instanceof bun.SQL) return context.executeOrThrow(context.runner.begin(async (tx) => {
54
+ const txContext = context.withRunner(tx);
55
+ const beforeRows = await txContext.selectRows({ where: input.where });
56
+ await txContext.executeOrThrow(txContext.update({
57
+ where: input.where,
58
+ data: input.data
59
+ }));
60
+ return {
61
+ count: beforeRows.length,
62
+ rows: require_utils.mergeRows(beforeRows, input.data)
63
+ };
64
+ }));
65
+ const beforeRows = await context.selectRows({ where: input.where });
66
+ await context.executeOrThrow(context.update({
67
+ where: input.where,
68
+ data: input.data
69
+ }));
70
+ return {
71
+ count: beforeRows.length,
72
+ rows: require_utils.mergeRows(beforeRows, input.data)
73
+ };
74
+ },
75
+ async deleteMany(context, input) {
76
+ if (context.runner instanceof bun.SQL) return context.executeOrThrow(context.runner.begin(async (tx) => {
77
+ const txContext = context.withRunner(tx);
78
+ const beforeRows = await txContext.selectRows({ where: input.where });
79
+ await txContext.executeOrThrow(txContext.deleteByWhere({ where: input.where }));
80
+ return {
81
+ count: beforeRows.length,
82
+ rows: beforeRows
83
+ };
84
+ }));
85
+ const rows = await context.selectRows({ where: input.where });
86
+ await context.executeOrThrow(context.deleteByWhere({ where: input.where }));
87
+ return {
88
+ count: rows.length,
89
+ rows
90
+ };
91
+ }
92
+ };
93
+ }
94
+ //#endregion
95
+ exports.createMysqlRuntimeDialect = createMysqlRuntimeDialect;
@@ -0,0 +1,97 @@
1
+ import { getPrimaryKeyColumn } from "../../internal/table-lookup.mjs";
2
+ import { expectSingleRow, mergeRows, toWhereInput } from "../utils.mjs";
3
+ import { SQL } from "bun";
4
+ //#region src/lib/orm/runtime/dialect/mysql.ts
5
+ function createMysqlRuntimeDialect() {
6
+ return {
7
+ async create(context, input) {
8
+ const primaryKey = getPrimaryKeyColumn(context.table);
9
+ const selectCreatedRow = async (whereData) => {
10
+ return expectSingleRow(await context.selectRows({
11
+ where: toWhereInput(whereData),
12
+ limit: 1
13
+ }), "Insert returned no rows");
14
+ };
15
+ const selectLastInsertId = async () => {
16
+ const rows = await context.executeOrThrow(context.runner`SELECT LAST_INSERT_ID() AS insertId`);
17
+ if (!Array.isArray(rows)) return;
18
+ const firstRow = rows[0];
19
+ if (typeof firstRow !== "object") return;
20
+ if (firstRow === null) return;
21
+ return Reflect.get(firstRow, "insertId");
22
+ };
23
+ const insertResult = await context.executeOrThrow(context.insert({ data: input.data }));
24
+ if (!primaryKey) return selectCreatedRow(input.data);
25
+ const selectCreatedRowByPrimaryKey = async (value) => {
26
+ const whereByPk = {};
27
+ Reflect.set(whereByPk, primaryKey.jsKey, value);
28
+ return selectCreatedRow(whereByPk);
29
+ };
30
+ const providedPkValue = Reflect.get(input.data, primaryKey.jsKey);
31
+ if (providedPkValue !== null && providedPkValue !== void 0) return selectCreatedRowByPrimaryKey(providedPkValue);
32
+ let insertedPkValue;
33
+ if (typeof insertResult === "object") {
34
+ if (insertResult !== null) insertedPkValue = Reflect.get(insertResult, "insertId");
35
+ }
36
+ if (insertedPkValue === null || insertedPkValue === void 0) insertedPkValue = await selectLastInsertId();
37
+ if (insertedPkValue === null || insertedPkValue === void 0) throw new Error("Insert returned no primary key");
38
+ return selectCreatedRowByPrimaryKey(insertedPkValue);
39
+ },
40
+ async createMany(context, input) {
41
+ if (input.data.length === 0) return {
42
+ count: 0,
43
+ rows: []
44
+ };
45
+ const rows = input.data.map((item) => context.mapSqlRow(item));
46
+ await context.executeOrThrow(context.insertMany(rows, false));
47
+ return {
48
+ count: rows.length,
49
+ rows: []
50
+ };
51
+ },
52
+ async updateMany(context, input) {
53
+ if (context.runner instanceof SQL) return context.executeOrThrow(context.runner.begin(async (tx) => {
54
+ const txContext = context.withRunner(tx);
55
+ const beforeRows = await txContext.selectRows({ where: input.where });
56
+ await txContext.executeOrThrow(txContext.update({
57
+ where: input.where,
58
+ data: input.data
59
+ }));
60
+ return {
61
+ count: beforeRows.length,
62
+ rows: mergeRows(beforeRows, input.data)
63
+ };
64
+ }));
65
+ const beforeRows = await context.selectRows({ where: input.where });
66
+ await context.executeOrThrow(context.update({
67
+ where: input.where,
68
+ data: input.data
69
+ }));
70
+ return {
71
+ count: beforeRows.length,
72
+ rows: mergeRows(beforeRows, input.data)
73
+ };
74
+ },
75
+ async deleteMany(context, input) {
76
+ if (context.runner instanceof SQL) return context.executeOrThrow(context.runner.begin(async (tx) => {
77
+ const txContext = context.withRunner(tx);
78
+ const beforeRows = await txContext.selectRows({ where: input.where });
79
+ await txContext.executeOrThrow(txContext.deleteByWhere({ where: input.where }));
80
+ return {
81
+ count: beforeRows.length,
82
+ rows: beforeRows
83
+ };
84
+ }));
85
+ const rows = await context.selectRows({ where: input.where });
86
+ await context.executeOrThrow(context.deleteByWhere({ where: input.where }));
87
+ return {
88
+ count: rows.length,
89
+ rows
90
+ };
91
+ }
92
+ };
93
+ }
94
+ //#endregion
95
+ export { createMysqlRuntimeDialect };
96
+
97
+ //# sourceMappingURL=mysql.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/dialect/mysql.ts"],"sourcesContent":["import { SQL } from \"bun\";\nimport { getPrimaryKeyColumn } from \"../../internal/table.js\";\nimport type { ColDefs, RelationDefs } from \"../../types.js\";\nimport type { RuntimeDialect } from \"./types.js\";\nimport { expectSingleRow, mergeRows, toWhereInput } from \"./utils.js\";\n\nexport function createMysqlRuntimeDialect<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(): RuntimeDialect<T, TRels> {\n return {\n async create(context, input) {\n const primaryKey = getPrimaryKeyColumn(context.table);\n\n const selectCreatedRow = async (whereData: Record<string, unknown>) => {\n const rows = await context.selectRows({\n where: toWhereInput<T>(whereData),\n limit: 1,\n });\n\n return expectSingleRow(rows, \"Insert returned no rows\");\n };\n\n const selectLastInsertId = async () => {\n const rows = await context.executeOrThrow(\n context.runner`SELECT LAST_INSERT_ID() AS insertId`,\n );\n\n if (!Array.isArray(rows)) {\n return undefined;\n }\n\n const firstRow = rows[0];\n\n if (typeof firstRow !== \"object\") {\n return undefined;\n }\n\n if (firstRow === null) {\n return undefined;\n }\n\n return Reflect.get(firstRow, \"insertId\");\n };\n\n const insertResult = await context.executeOrThrow(\n context.insert({ data: input.data }),\n );\n\n if (!primaryKey) {\n return selectCreatedRow(input.data);\n }\n\n const selectCreatedRowByPrimaryKey = async (value: unknown) => {\n const whereByPk: Record<string, unknown> = {};\n Reflect.set(whereByPk, primaryKey.jsKey, value);\n\n return selectCreatedRow(whereByPk);\n };\n\n const providedPkValue = Reflect.get(input.data, primaryKey.jsKey);\n\n if (providedPkValue !== null && providedPkValue !== undefined) {\n return selectCreatedRowByPrimaryKey(providedPkValue);\n }\n\n let insertedPkValue: unknown;\n\n if (typeof insertResult === \"object\") {\n if (insertResult !== null) {\n insertedPkValue = Reflect.get(insertResult, \"insertId\");\n }\n }\n\n if (insertedPkValue === null || insertedPkValue === undefined) {\n insertedPkValue = await selectLastInsertId();\n }\n\n if (insertedPkValue === null || insertedPkValue === undefined) {\n throw new Error(\"Insert returned no primary key\");\n }\n\n return selectCreatedRowByPrimaryKey(insertedPkValue);\n },\n\n async createMany(context, input) {\n if (input.data.length === 0) {\n return { count: 0, rows: [] };\n }\n\n const rows = input.data.map((item) =>\n context.mapSqlRow(item as Record<string, unknown>),\n );\n\n await context.executeOrThrow(context.insertMany(rows, false));\n\n return {\n count: rows.length,\n rows: [],\n };\n },\n\n async updateMany(context, input) {\n if (context.runner instanceof SQL) {\n return context.executeOrThrow(\n context.runner.begin(async (tx) => {\n const txContext = context.withRunner(tx);\n const beforeRows = await txContext.selectRows({\n where: input.where,\n });\n\n await txContext.executeOrThrow(\n txContext.update({ where: input.where, data: input.data }),\n );\n\n return {\n count: beforeRows.length,\n rows: mergeRows(\n beforeRows,\n input.data as Partial<Record<string, unknown>>,\n ),\n };\n }),\n );\n }\n\n const beforeRows = await context.selectRows({ where: input.where });\n\n await context.executeOrThrow(\n context.update({ where: input.where, data: input.data }),\n );\n\n return {\n count: beforeRows.length,\n rows: mergeRows(\n beforeRows,\n input.data as Partial<Record<string, unknown>>,\n ),\n };\n },\n\n async deleteMany(context, input) {\n if (context.runner instanceof SQL) {\n return context.executeOrThrow(\n context.runner.begin(async (tx) => {\n const txContext = context.withRunner(tx);\n const beforeRows = await txContext.selectRows({\n where: input.where,\n });\n\n await txContext.executeOrThrow(\n txContext.deleteByWhere({ where: input.where }),\n );\n\n return {\n count: beforeRows.length,\n rows: beforeRows,\n };\n }),\n );\n }\n\n const rows = await context.selectRows({ where: input.where });\n\n await context.executeOrThrow(\n context.deleteByWhere({ where: input.where }),\n );\n\n return {\n count: rows.length,\n rows,\n };\n },\n };\n}\n"],"mappings":";;;;AAMA,SAAgB,4BAGc;AAC5B,QAAO;EACL,MAAM,OAAO,SAAS,OAAO;GAC3B,MAAM,aAAa,oBAAoB,QAAQ,MAAM;GAErD,MAAM,mBAAmB,OAAO,cAAuC;AAMrE,WAAO,gBALM,MAAM,QAAQ,WAAW;KACpC,OAAO,aAAgB,UAAU;KACjC,OAAO;KACR,CAAC,EAE2B,0BAA0B;;GAGzD,MAAM,qBAAqB,YAAY;IACrC,MAAM,OAAO,MAAM,QAAQ,eACzB,QAAQ,MAAM,sCACf;AAED,QAAI,CAAC,MAAM,QAAQ,KAAK,CACtB;IAGF,MAAM,WAAW,KAAK;AAEtB,QAAI,OAAO,aAAa,SACtB;AAGF,QAAI,aAAa,KACf;AAGF,WAAO,QAAQ,IAAI,UAAU,WAAW;;GAG1C,MAAM,eAAe,MAAM,QAAQ,eACjC,QAAQ,OAAO,EAAE,MAAM,MAAM,MAAM,CAAC,CACrC;AAED,OAAI,CAAC,WACH,QAAO,iBAAiB,MAAM,KAAK;GAGrC,MAAM,+BAA+B,OAAO,UAAmB;IAC7D,MAAM,YAAqC,EAAE;AAC7C,YAAQ,IAAI,WAAW,WAAW,OAAO,MAAM;AAE/C,WAAO,iBAAiB,UAAU;;GAGpC,MAAM,kBAAkB,QAAQ,IAAI,MAAM,MAAM,WAAW,MAAM;AAEjE,OAAI,oBAAoB,QAAQ,oBAAoB,KAAA,EAClD,QAAO,6BAA6B,gBAAgB;GAGtD,IAAI;AAEJ,OAAI,OAAO,iBAAiB;QACtB,iBAAiB,KACnB,mBAAkB,QAAQ,IAAI,cAAc,WAAW;;AAI3D,OAAI,oBAAoB,QAAQ,oBAAoB,KAAA,EAClD,mBAAkB,MAAM,oBAAoB;AAG9C,OAAI,oBAAoB,QAAQ,oBAAoB,KAAA,EAClD,OAAM,IAAI,MAAM,iCAAiC;AAGnD,UAAO,6BAA6B,gBAAgB;;EAGtD,MAAM,WAAW,SAAS,OAAO;AAC/B,OAAI,MAAM,KAAK,WAAW,EACxB,QAAO;IAAE,OAAO;IAAG,MAAM,EAAE;IAAE;GAG/B,MAAM,OAAO,MAAM,KAAK,KAAK,SAC3B,QAAQ,UAAU,KAAgC,CACnD;AAED,SAAM,QAAQ,eAAe,QAAQ,WAAW,MAAM,MAAM,CAAC;AAE7D,UAAO;IACL,OAAO,KAAK;IACZ,MAAM,EAAE;IACT;;EAGH,MAAM,WAAW,SAAS,OAAO;AAC/B,OAAI,QAAQ,kBAAkB,IAC5B,QAAO,QAAQ,eACb,QAAQ,OAAO,MAAM,OAAO,OAAO;IACjC,MAAM,YAAY,QAAQ,WAAW,GAAG;IACxC,MAAM,aAAa,MAAM,UAAU,WAAW,EAC5C,OAAO,MAAM,OACd,CAAC;AAEF,UAAM,UAAU,eACd,UAAU,OAAO;KAAE,OAAO,MAAM;KAAO,MAAM,MAAM;KAAM,CAAC,CAC3D;AAED,WAAO;KACL,OAAO,WAAW;KAClB,MAAM,UACJ,YACA,MAAM,KACP;KACF;KACD,CACH;GAGH,MAAM,aAAa,MAAM,QAAQ,WAAW,EAAE,OAAO,MAAM,OAAO,CAAC;AAEnE,SAAM,QAAQ,eACZ,QAAQ,OAAO;IAAE,OAAO,MAAM;IAAO,MAAM,MAAM;IAAM,CAAC,CACzD;AAED,UAAO;IACL,OAAO,WAAW;IAClB,MAAM,UACJ,YACA,MAAM,KACP;IACF;;EAGH,MAAM,WAAW,SAAS,OAAO;AAC/B,OAAI,QAAQ,kBAAkB,IAC5B,QAAO,QAAQ,eACb,QAAQ,OAAO,MAAM,OAAO,OAAO;IACjC,MAAM,YAAY,QAAQ,WAAW,GAAG;IACxC,MAAM,aAAa,MAAM,UAAU,WAAW,EAC5C,OAAO,MAAM,OACd,CAAC;AAEF,UAAM,UAAU,eACd,UAAU,cAAc,EAAE,OAAO,MAAM,OAAO,CAAC,CAChD;AAED,WAAO;KACL,OAAO,WAAW;KAClB,MAAM;KACP;KACD,CACH;GAGH,MAAM,OAAO,MAAM,QAAQ,WAAW,EAAE,OAAO,MAAM,OAAO,CAAC;AAE7D,SAAM,QAAQ,eACZ,QAAQ,cAAc,EAAE,OAAO,MAAM,OAAO,CAAC,CAC9C;AAED,UAAO;IACL,OAAO,KAAK;IACZ;IACD;;EAEJ"}
@@ -0,0 +1,51 @@
1
+ const require_utils = require("../utils.cjs");
2
+ //#region src/lib/orm/runtime/dialect/postgres.ts
3
+ function createPostgresRuntimeDialect() {
4
+ return {
5
+ async create(context, input) {
6
+ const rows = await context.executeOrThrow(context.insertReturning({
7
+ data: input.data,
8
+ returning: true
9
+ }));
10
+ return require_utils.expectSingleRow(context.normalizeResultRows(rows), "Insert returned no rows");
11
+ },
12
+ async createMany(context, input) {
13
+ if (input.data.length === 0) return {
14
+ count: 0,
15
+ rows: []
16
+ };
17
+ const rows = input.data.map((item) => context.mapSqlRow(item));
18
+ const createdRows = await context.executeOrThrow(context.insertManyReturning(rows));
19
+ const normalizedRows = context.normalizeResultRows(createdRows);
20
+ return {
21
+ count: normalizedRows.length,
22
+ rows: normalizedRows
23
+ };
24
+ },
25
+ async updateMany(context, input) {
26
+ const rows = await context.executeOrThrow(context.updateReturning({
27
+ where: input.where,
28
+ data: input.data,
29
+ returning: true
30
+ }));
31
+ const normalizedRows = context.normalizeResultRows(rows);
32
+ return {
33
+ count: normalizedRows.length,
34
+ rows: normalizedRows
35
+ };
36
+ },
37
+ async deleteMany(context, input) {
38
+ const rows = await context.executeOrThrow(context.deleteReturning({
39
+ where: input.where,
40
+ returning: true
41
+ }));
42
+ const normalizedRows = context.normalizeResultRows(rows);
43
+ return {
44
+ count: normalizedRows.length,
45
+ rows: normalizedRows
46
+ };
47
+ }
48
+ };
49
+ }
50
+ //#endregion
51
+ exports.createPostgresRuntimeDialect = createPostgresRuntimeDialect;