@casekit/orm2 0.0.0-20250331202540 → 0.0.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 (94) hide show
  1. package/build/builders/buildCount.d.ts +2 -1
  2. package/build/builders/buildCount.js +5 -8
  3. package/build/builders/buildCount.test.js +5 -5
  4. package/build/builders/buildCreate.d.ts +2 -1
  5. package/build/builders/buildCreate.js +6 -3
  6. package/build/builders/buildCreate.test.js +4 -4
  7. package/build/builders/buildDelete.d.ts +2 -1
  8. package/build/builders/buildDelete.js +2 -2
  9. package/build/builders/buildDelete.test.js +8 -8
  10. package/build/builders/buildFind.d.ts +2 -1
  11. package/build/builders/buildFind.js +5 -8
  12. package/build/builders/buildFind.test.js +4 -4
  13. package/build/builders/buildUpdate.d.ts +2 -1
  14. package/build/builders/buildUpdate.js +6 -3
  15. package/build/builders/buildUpdate.test.js +8 -8
  16. package/build/builders/buildWhere.d.ts +2 -1
  17. package/build/builders/buildWhere.js +30 -8
  18. package/build/builders/buildWhere.test.js +39 -24
  19. package/build/connection.d.ts +2 -2
  20. package/build/index.d.ts +1 -1
  21. package/build/index.js +1 -1
  22. package/build/orm.count.d.ts +2 -10
  23. package/build/orm.count.js +2 -11
  24. package/build/orm.createMany.d.ts +2 -1
  25. package/build/orm.createMany.js +2 -2
  26. package/build/orm.createOne.d.ts +2 -1
  27. package/build/orm.createOne.js +2 -2
  28. package/build/orm.d.ts +3 -3
  29. package/build/orm.deleteMany.d.ts +2 -1
  30. package/build/orm.deleteMany.js +2 -2
  31. package/build/orm.deleteOne.d.ts +2 -1
  32. package/build/orm.deleteOne.js +2 -2
  33. package/build/orm.findMany.d.ts +2 -1
  34. package/build/orm.findMany.js +3 -3
  35. package/build/orm.findOne.d.ts +2 -1
  36. package/build/orm.findOne.js +11 -19
  37. package/build/orm.js +13 -13
  38. package/build/orm.restrict.d.ts +2 -1
  39. package/build/orm.restrict.js +2 -2
  40. package/build/orm.updateMany.d.ts +2 -1
  41. package/build/orm.updateMany.js +3 -3
  42. package/build/orm.updateOne.d.ts +2 -1
  43. package/build/orm.updateOne.js +2 -2
  44. package/build/tests/orm.findMany.includeManyToOne.test.js +21 -5
  45. package/build/tests/orm.findOne.includeManyToMany.test.js +270 -0
  46. package/build/tests/orm.findOne.includeManyToOne.test.js +280 -0
  47. package/build/tests/orm.findOne.includeOneToMany.test.js +454 -0
  48. package/build/tests/orm.findOne.select.test.js +205 -0
  49. package/build/tests/orm.findOne.where.test.js +471 -0
  50. package/build/tests/orm.middleware.findOne.test.d.ts +1 -0
  51. package/build/tests/orm.middleware.set.test.d.ts +1 -0
  52. package/build/tests/orm.middleware.set.test.js +100 -0
  53. package/build/tests/orm.middleware.updateMany.test.d.ts +1 -0
  54. package/build/tests/orm.middleware.updateOne.test.d.ts +1 -0
  55. package/build/tests/orm.middleware.values.test.d.ts +1 -0
  56. package/build/tests/orm.middleware.values.test.js +126 -0
  57. package/build/tests/orm.middleware.where.test.d.ts +1 -0
  58. package/build/tests/orm.middleware.where.test.js +1054 -0
  59. package/build/tests/util/db.d.ts +53 -71
  60. package/build/types/CreateOneResult.d.ts +6 -2
  61. package/build/types/CreateOneResult.test-d.js +3 -0
  62. package/build/types/Middleware.d.ts +14 -0
  63. package/build/types/Middleware.js +37 -1
  64. package/build/types/WhereClause.d.ts +8 -8
  65. package/build/util/applySetMiddleware.d.ts +5 -0
  66. package/build/util/applySetMiddleware.js +7 -0
  67. package/build/util/applyValuesMiddleware.d.ts +5 -0
  68. package/build/util/applyValuesMiddleware.js +7 -0
  69. package/build/util/applyWhereMiddleware.d.ts +5 -0
  70. package/build/util/applyWhereMiddleware.js +7 -0
  71. package/build/util/applyWhereMiddleware.test.d.ts +1 -0
  72. package/build/util/applyWhereMiddleware.test.js +88 -0
  73. package/build/util/resultSchema.d.ts +6 -6
  74. package/package.json +23 -24
  75. /package/build/tests/{orm.count.middleware.test.d.ts → orm.findOne.includeManyToMany.test.d.ts} +0 -0
  76. /package/build/tests/{orm.createMany.middleware.test.d.ts → orm.findOne.includeManyToOne.test.d.ts} +0 -0
  77. /package/build/tests/{orm.createOne.middleware.test.d.ts → orm.findOne.includeOneToMany.test.d.ts} +0 -0
  78. /package/build/tests/{orm.deleteMany.middleware.test.d.ts → orm.findOne.select.test.d.ts} +0 -0
  79. /package/build/tests/{orm.deleteOne.middleware.test.d.ts → orm.findOne.where.test.d.ts} +0 -0
  80. /package/build/tests/{orm.findMany.middleware.test.d.ts → orm.middleware.count.test.d.ts} +0 -0
  81. /package/build/tests/{orm.count.middleware.test.js → orm.middleware.count.test.js} +0 -0
  82. /package/build/tests/{orm.findOne.middleware.test.d.ts → orm.middleware.createMany.test.d.ts} +0 -0
  83. /package/build/tests/{orm.createMany.middleware.test.js → orm.middleware.createMany.test.js} +0 -0
  84. /package/build/tests/{orm.updateMany.middleware.test.d.ts → orm.middleware.createOne.test.d.ts} +0 -0
  85. /package/build/tests/{orm.createOne.middleware.test.js → orm.middleware.createOne.test.js} +0 -0
  86. /package/build/tests/{orm.updateOne.middleware.test.d.ts → orm.middleware.deleteMany.test.d.ts} +0 -0
  87. /package/build/tests/{orm.deleteMany.middleware.test.js → orm.middleware.deleteMany.test.js} +0 -0
  88. /package/build/{types/BaseFindParams.d.ts → tests/orm.middleware.deleteOne.test.d.ts} +0 -0
  89. /package/build/tests/{orm.deleteOne.middleware.test.js → orm.middleware.deleteOne.test.js} +0 -0
  90. /package/build/{types/BaseFindParams.js → tests/orm.middleware.findMany.test.d.ts} +0 -0
  91. /package/build/tests/{orm.findMany.middleware.test.js → orm.middleware.findMany.test.js} +0 -0
  92. /package/build/tests/{orm.findOne.middleware.test.js → orm.middleware.findOne.test.js} +0 -0
  93. /package/build/tests/{orm.updateMany.middleware.test.js → orm.middleware.updateMany.test.js} +0 -0
  94. /package/build/tests/{orm.updateOne.middleware.test.js → orm.middleware.updateOne.test.js} +0 -0
@@ -0,0 +1,126 @@
1
+ import { afterAll, beforeAll, beforeEach, describe, expect, test, } from "vitest";
2
+ import { config } from "@casekit/orm2-fixtures";
3
+ import { orm } from "../orm.js";
4
+ import { mockLogger } from "./util/logger.js";
5
+ const uppercaseName = () => ({
6
+ values: (_config, _modelName, values) => {
7
+ if ("name" in values && typeof values["name"] === "string") {
8
+ return { ...values, name: values["name"].toUpperCase() };
9
+ }
10
+ else {
11
+ return values;
12
+ }
13
+ },
14
+ });
15
+ const addPrefixToName = () => ({
16
+ values: (_config, _modelName, values) => {
17
+ if ("name" in values && typeof values["name"] === "string") {
18
+ return { ...values, name: `prefix_${values["name"]}` };
19
+ }
20
+ else {
21
+ return values;
22
+ }
23
+ },
24
+ });
25
+ describe("values middleware", () => {
26
+ const logger = mockLogger();
27
+ let db;
28
+ beforeEach(() => {
29
+ logger.clear();
30
+ });
31
+ beforeAll(async () => {
32
+ db = orm({ ...config, logger }).middleware([
33
+ uppercaseName(),
34
+ addPrefixToName(),
35
+ ]);
36
+ await db.connect();
37
+ });
38
+ afterAll(async () => {
39
+ await db.close();
40
+ });
41
+ test("values in createOne", async () => {
42
+ await db.transact(async (db) => {
43
+ const user = await db.createOne("user", {
44
+ values: {
45
+ id: 1,
46
+ name: "russell",
47
+ email: "russell@example.com",
48
+ role: "user",
49
+ },
50
+ returning: ["id", "name", "email"],
51
+ });
52
+ expect(user).toEqual({
53
+ id: 1,
54
+ name: "prefix_RUSSELL",
55
+ email: "russell@example.com",
56
+ });
57
+ }, { rollback: true });
58
+ });
59
+ test("values in createMany", async () => {
60
+ await db.transact(async (db) => {
61
+ const users = await db.createMany("user", {
62
+ values: [
63
+ {
64
+ id: 1,
65
+ name: "alice",
66
+ email: "alice@example.com",
67
+ role: "user",
68
+ },
69
+ {
70
+ id: 2,
71
+ name: "bob",
72
+ email: "bob@example.com",
73
+ role: "admin",
74
+ },
75
+ ],
76
+ returning: ["id", "name", "email", "role"],
77
+ });
78
+ expect(users).toEqual([
79
+ {
80
+ id: 1,
81
+ name: "prefix_ALICE",
82
+ email: "alice@example.com",
83
+ role: "user",
84
+ },
85
+ {
86
+ id: 2,
87
+ name: "prefix_BOB",
88
+ email: "bob@example.com",
89
+ role: "admin",
90
+ },
91
+ ]);
92
+ }, { rollback: true });
93
+ });
94
+ test("values middleware with multiple values in createMany", async () => {
95
+ await db.transact(async (db) => {
96
+ const users = await db.createMany("user", {
97
+ values: [
98
+ {
99
+ id: 1,
100
+ name: "charlie",
101
+ email: "charlie@example.com",
102
+ role: "user",
103
+ },
104
+ {
105
+ id: 2,
106
+ name: "diana",
107
+ email: "diana@example.com",
108
+ role: "user",
109
+ },
110
+ {
111
+ id: 3,
112
+ name: "eve",
113
+ email: "eve@example.com",
114
+ role: "admin",
115
+ },
116
+ ],
117
+ returning: ["id", "name"],
118
+ });
119
+ expect(users.map((u) => u.name)).toEqual([
120
+ "prefix_CHARLIE",
121
+ "prefix_DIANA",
122
+ "prefix_EVE",
123
+ ]);
124
+ }, { rollback: true });
125
+ });
126
+ });
@@ -0,0 +1 @@
1
+ export {};