on-zero 0.4.3 → 0.4.4

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 (249) hide show
  1. package/dist/cjs/cli.cjs +46 -41
  2. package/dist/cjs/cli.native.js +48 -43
  3. package/dist/cjs/cli.native.js.map +1 -1
  4. package/dist/cjs/constants.cjs +14 -12
  5. package/dist/cjs/constants.native.js +14 -12
  6. package/dist/cjs/constants.native.js.map +1 -1
  7. package/dist/cjs/createPermissions.cjs +66 -34
  8. package/dist/cjs/createPermissions.native.js +143 -87
  9. package/dist/cjs/createPermissions.native.js.map +1 -1
  10. package/dist/cjs/createSchemaFromDrizzle.cjs +15 -13
  11. package/dist/cjs/createSchemaFromDrizzle.native.js +15 -13
  12. package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
  13. package/dist/cjs/createUseQuery.cjs +48 -35
  14. package/dist/cjs/createUseQuery.native.js +52 -38
  15. package/dist/cjs/createUseQuery.native.js.map +1 -1
  16. package/dist/cjs/createZeroClient.cjs +177 -135
  17. package/dist/cjs/createZeroClient.native.js +246 -195
  18. package/dist/cjs/createZeroClient.native.js.map +1 -1
  19. package/dist/cjs/createZeroServer.cjs +175 -129
  20. package/dist/cjs/createZeroServer.native.js +170 -138
  21. package/dist/cjs/createZeroServer.native.js.map +1 -1
  22. package/dist/cjs/generate-helpers.cjs +122 -88
  23. package/dist/cjs/generate-helpers.native.js +209 -174
  24. package/dist/cjs/generate-helpers.native.js.map +1 -1
  25. package/dist/cjs/generate-lite.cjs +90 -58
  26. package/dist/cjs/generate-lite.native.js +200 -140
  27. package/dist/cjs/generate-lite.native.js.map +1 -1
  28. package/dist/cjs/generate-lite.test.cjs +229 -192
  29. package/dist/cjs/generate-lite.test.native.js +229 -194
  30. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  31. package/dist/cjs/generate.cjs +455 -291
  32. package/dist/cjs/generate.native.js +747 -565
  33. package/dist/cjs/generate.native.js.map +1 -1
  34. package/dist/cjs/generate.test.cjs +170 -106
  35. package/dist/cjs/generate.test.native.js +171 -107
  36. package/dist/cjs/generate.test.native.js.map +1 -1
  37. package/dist/cjs/helpers/batchQuery.cjs +29 -18
  38. package/dist/cjs/helpers/batchQuery.native.js +36 -21
  39. package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
  40. package/dist/cjs/helpers/clearZeroClientData.cjs +30 -21
  41. package/dist/cjs/helpers/clearZeroClientData.native.js +42 -33
  42. package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
  43. package/dist/cjs/helpers/createMutators.cjs +80 -42
  44. package/dist/cjs/helpers/createMutators.native.js +139 -87
  45. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  46. package/dist/cjs/helpers/didRunPermissionCheck.cjs +19 -13
  47. package/dist/cjs/helpers/didRunPermissionCheck.native.js +22 -20
  48. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
  49. package/dist/cjs/helpers/ensureLoggedIn.cjs +16 -13
  50. package/dist/cjs/helpers/ensureLoggedIn.native.js +21 -18
  51. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
  52. package/dist/cjs/helpers/getAuth.cjs +25 -15
  53. package/dist/cjs/helpers/getAuth.native.js +25 -15
  54. package/dist/cjs/helpers/getAuth.native.js.map +1 -1
  55. package/dist/cjs/helpers/mutatorContext.cjs +21 -14
  56. package/dist/cjs/helpers/mutatorContext.native.js +21 -15
  57. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
  58. package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +126 -81
  59. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +135 -92
  60. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  61. package/dist/cjs/helpers/queryContext.cjs +12 -10
  62. package/dist/cjs/helpers/queryContext.native.js +16 -13
  63. package/dist/cjs/helpers/queryContext.native.js.map +1 -1
  64. package/dist/cjs/helpers/showZeroClientError.cjs +24 -19
  65. package/dist/cjs/helpers/showZeroClientError.native.js +38 -34
  66. package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
  67. package/dist/cjs/helpers/useZeroDebug.cjs +82 -49
  68. package/dist/cjs/helpers/useZeroDebug.native.js +83 -55
  69. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
  70. package/dist/cjs/index.cjs +17 -15
  71. package/dist/cjs/index.native.js +17 -15
  72. package/dist/cjs/index.native.js.map +1 -1
  73. package/dist/cjs/modelRegistry.cjs +12 -10
  74. package/dist/cjs/modelRegistry.native.js +12 -10
  75. package/dist/cjs/modelRegistry.native.js.map +1 -1
  76. package/dist/cjs/mutations.cjs +66 -42
  77. package/dist/cjs/mutations.native.js +68 -46
  78. package/dist/cjs/mutations.native.js.map +1 -1
  79. package/dist/cjs/queryRegistry.cjs +13 -10
  80. package/dist/cjs/queryRegistry.native.js +14 -11
  81. package/dist/cjs/queryRegistry.native.js.map +1 -1
  82. package/dist/cjs/resolveQuery.cjs +22 -18
  83. package/dist/cjs/resolveQuery.native.js +32 -28
  84. package/dist/cjs/resolveQuery.native.js.map +1 -1
  85. package/dist/cjs/run.cjs +35 -28
  86. package/dist/cjs/run.native.js +35 -29
  87. package/dist/cjs/run.native.js.map +1 -1
  88. package/dist/cjs/server.cjs +7 -5
  89. package/dist/cjs/serverWhere.cjs +13 -11
  90. package/dist/cjs/serverWhere.native.js +13 -11
  91. package/dist/cjs/serverWhere.native.js.map +1 -1
  92. package/dist/cjs/serverWhere.test.cjs +83 -55
  93. package/dist/cjs/serverWhere.test.native.js +72 -50
  94. package/dist/cjs/serverWhere.test.native.js.map +1 -1
  95. package/dist/cjs/state.cjs +49 -44
  96. package/dist/cjs/state.native.js +56 -53
  97. package/dist/cjs/state.native.js.map +1 -1
  98. package/dist/cjs/types.cjs +7 -5
  99. package/dist/cjs/types.native.js +7 -5
  100. package/dist/cjs/types.native.js.map +1 -1
  101. package/dist/cjs/usePermission.test.cjs +58 -45
  102. package/dist/cjs/usePermission.test.native.js +59 -48
  103. package/dist/cjs/usePermission.test.native.js.map +1 -1
  104. package/dist/cjs/vite-plugin.cjs +41 -21
  105. package/dist/cjs/vite-plugin.native.js +61 -47
  106. package/dist/cjs/vite-plugin.native.js.map +1 -1
  107. package/dist/cjs/where.cjs +39 -24
  108. package/dist/cjs/where.native.js +44 -29
  109. package/dist/cjs/where.native.js.map +1 -1
  110. package/dist/cjs/zeroRunner.cjs +18 -12
  111. package/dist/cjs/zeroRunner.native.js +22 -16
  112. package/dist/cjs/zeroRunner.native.js.map +1 -1
  113. package/dist/cjs/zql.cjs +14 -11
  114. package/dist/cjs/zql.native.js +19 -17
  115. package/dist/cjs/zql.native.js.map +1 -1
  116. package/dist/esm/cli.mjs +43 -38
  117. package/dist/esm/cli.mjs.map +1 -1
  118. package/dist/esm/cli.native.js +44 -39
  119. package/dist/esm/cli.native.js.map +1 -1
  120. package/dist/esm/constants.mjs +2 -2
  121. package/dist/esm/constants.mjs.map +1 -1
  122. package/dist/esm/constants.native.js +2 -2
  123. package/dist/esm/constants.native.js.map +1 -1
  124. package/dist/esm/createPermissions.mjs +48 -18
  125. package/dist/esm/createPermissions.mjs.map +1 -1
  126. package/dist/esm/createPermissions.native.js +125 -71
  127. package/dist/esm/createPermissions.native.js.map +1 -1
  128. package/dist/esm/createUseQuery.mjs +32 -21
  129. package/dist/esm/createUseQuery.mjs.map +1 -1
  130. package/dist/esm/createUseQuery.native.js +36 -24
  131. package/dist/esm/createUseQuery.native.js.map +1 -1
  132. package/dist/esm/createZeroClient.mjs +148 -108
  133. package/dist/esm/createZeroClient.mjs.map +1 -1
  134. package/dist/esm/createZeroClient.native.js +217 -168
  135. package/dist/esm/createZeroClient.native.js.map +1 -1
  136. package/dist/esm/createZeroServer.mjs +148 -104
  137. package/dist/esm/createZeroServer.mjs.map +1 -1
  138. package/dist/esm/createZeroServer.native.js +143 -113
  139. package/dist/esm/createZeroServer.native.js.map +1 -1
  140. package/dist/esm/generate-helpers.mjs +110 -78
  141. package/dist/esm/generate-helpers.mjs.map +1 -1
  142. package/dist/esm/generate-helpers.native.js +197 -164
  143. package/dist/esm/generate-helpers.native.js.map +1 -1
  144. package/dist/esm/generate-lite.mjs +78 -48
  145. package/dist/esm/generate-lite.mjs.map +1 -1
  146. package/dist/esm/generate-lite.native.js +188 -130
  147. package/dist/esm/generate-lite.native.js.map +1 -1
  148. package/dist/esm/generate-lite.test.mjs +227 -190
  149. package/dist/esm/generate-lite.test.mjs.map +1 -1
  150. package/dist/esm/generate-lite.test.native.js +227 -192
  151. package/dist/esm/generate-lite.test.native.js.map +1 -1
  152. package/dist/esm/generate.mjs +427 -265
  153. package/dist/esm/generate.mjs.map +1 -1
  154. package/dist/esm/generate.native.js +718 -538
  155. package/dist/esm/generate.native.js.map +1 -1
  156. package/dist/esm/generate.test.mjs +165 -101
  157. package/dist/esm/generate.test.mjs.map +1 -1
  158. package/dist/esm/generate.test.native.js +165 -101
  159. package/dist/esm/generate.test.native.js.map +1 -1
  160. package/dist/esm/helpers/batchQuery.mjs +17 -8
  161. package/dist/esm/helpers/batchQuery.mjs.map +1 -1
  162. package/dist/esm/helpers/batchQuery.native.js +24 -11
  163. package/dist/esm/helpers/batchQuery.native.js.map +1 -1
  164. package/dist/esm/helpers/clearZeroClientData.mjs +18 -11
  165. package/dist/esm/helpers/clearZeroClientData.mjs.map +1 -1
  166. package/dist/esm/helpers/clearZeroClientData.native.js +30 -23
  167. package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
  168. package/dist/esm/helpers/createMutators.mjs +53 -17
  169. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  170. package/dist/esm/helpers/createMutators.native.js +112 -62
  171. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  172. package/dist/esm/helpers/didRunPermissionCheck.mjs +7 -3
  173. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -1
  174. package/dist/esm/helpers/didRunPermissionCheck.native.js +9 -9
  175. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -1
  176. package/dist/esm/helpers/ensureLoggedIn.mjs +2 -1
  177. package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
  178. package/dist/esm/helpers/ensureLoggedIn.native.js +2 -1
  179. package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
  180. package/dist/esm/helpers/getAuth.mjs +10 -2
  181. package/dist/esm/helpers/getAuth.mjs.map +1 -1
  182. package/dist/esm/helpers/getAuth.native.js +10 -2
  183. package/dist/esm/helpers/getAuth.native.js.map +1 -1
  184. package/dist/esm/helpers/mutatorContext.mjs +9 -4
  185. package/dist/esm/helpers/mutatorContext.mjs.map +1 -1
  186. package/dist/esm/helpers/mutatorContext.native.js +8 -4
  187. package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
  188. package/dist/esm/helpers/prettyFormatZeroQuery.mjs +114 -71
  189. package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +1 -1
  190. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +121 -80
  191. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  192. package/dist/esm/helpers/queryContext.native.js +2 -1
  193. package/dist/esm/helpers/queryContext.native.js.map +1 -1
  194. package/dist/esm/helpers/showZeroClientError.mjs +12 -9
  195. package/dist/esm/helpers/showZeroClientError.mjs.map +1 -1
  196. package/dist/esm/helpers/showZeroClientError.native.js +25 -23
  197. package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
  198. package/dist/esm/helpers/useZeroDebug.mjs +67 -36
  199. package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
  200. package/dist/esm/helpers/useZeroDebug.native.js +68 -42
  201. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
  202. package/dist/esm/mutations.mjs +51 -29
  203. package/dist/esm/mutations.mjs.map +1 -1
  204. package/dist/esm/mutations.native.js +53 -33
  205. package/dist/esm/mutations.native.js.map +1 -1
  206. package/dist/esm/queryRegistry.mjs +1 -0
  207. package/dist/esm/queryRegistry.mjs.map +1 -1
  208. package/dist/esm/queryRegistry.native.js +2 -1
  209. package/dist/esm/queryRegistry.native.js.map +1 -1
  210. package/dist/esm/resolveQuery.mjs +10 -8
  211. package/dist/esm/resolveQuery.mjs.map +1 -1
  212. package/dist/esm/resolveQuery.native.js +20 -18
  213. package/dist/esm/resolveQuery.native.js.map +1 -1
  214. package/dist/esm/run.mjs +21 -16
  215. package/dist/esm/run.mjs.map +1 -1
  216. package/dist/esm/run.native.js +20 -16
  217. package/dist/esm/run.native.js.map +1 -1
  218. package/dist/esm/serverWhere.mjs +1 -1
  219. package/dist/esm/serverWhere.mjs.map +1 -1
  220. package/dist/esm/serverWhere.native.js +1 -1
  221. package/dist/esm/serverWhere.native.js.map +1 -1
  222. package/dist/esm/serverWhere.test.mjs +79 -51
  223. package/dist/esm/serverWhere.test.mjs.map +1 -1
  224. package/dist/esm/serverWhere.test.native.js +68 -46
  225. package/dist/esm/serverWhere.test.native.js.map +1 -1
  226. package/dist/esm/state.mjs +35 -32
  227. package/dist/esm/state.mjs.map +1 -1
  228. package/dist/esm/state.native.js +41 -40
  229. package/dist/esm/state.native.js.map +1 -1
  230. package/dist/esm/usePermission.test.mjs +53 -40
  231. package/dist/esm/usePermission.test.mjs.map +1 -1
  232. package/dist/esm/usePermission.test.native.js +54 -43
  233. package/dist/esm/usePermission.test.native.js.map +1 -1
  234. package/dist/esm/vite-plugin.mjs +27 -9
  235. package/dist/esm/vite-plugin.mjs.map +1 -1
  236. package/dist/esm/vite-plugin.native.js +47 -35
  237. package/dist/esm/vite-plugin.native.js.map +1 -1
  238. package/dist/esm/where.mjs +24 -11
  239. package/dist/esm/where.mjs.map +1 -1
  240. package/dist/esm/where.native.js +29 -16
  241. package/dist/esm/where.native.js.map +1 -1
  242. package/dist/esm/zeroRunner.mjs +6 -2
  243. package/dist/esm/zeroRunner.mjs.map +1 -1
  244. package/dist/esm/zeroRunner.native.js +8 -4
  245. package/dist/esm/zeroRunner.native.js.map +1 -1
  246. package/dist/esm/zql.mjs +2 -1
  247. package/dist/esm/zql.mjs.map +1 -1
  248. package/dist/esm/zql.native.js.map +1 -1
  249. package/package.json +3 -3
@@ -3,7 +3,9 @@ import { generateLite } from "./generate-lite.native.js";
3
3
  function makeParse(table) {
4
4
  return function (_src, path) {
5
5
  var entry = table[path];
6
- if (!entry) throw new Error(`no lite ast fixture for ${path}`);
6
+ if (!entry) {
7
+ throw new Error(`no lite ast fixture for ${path}`);
8
+ }
7
9
  return entry;
8
10
  };
9
11
  }
@@ -11,221 +13,254 @@ var DIR = "/proj/src/data";
11
13
  describe("generateLite", function () {
12
14
  test("emits models.ts, syncedMutations.ts, and README.md from inline types", function () {
13
15
  var files = {
14
- [`${DIR}/models/todo.ts`]: "// fake source, parser returns fixture",
15
- [`${DIR}/models/user.ts`]: "// fake source, parser returns fixture"
16
- },
17
- fixtures = {
18
- [`${DIR}/models/todo.ts`]: {
19
- mutations: [{
20
- modelName: "todo",
21
- handlers: [{
22
- name: "toggle",
23
- paramTypeText: "{ id: string; isActive: boolean }"
24
- }, {
25
- name: "rename",
26
- paramTypeText: "{ id: string; title: string }"
27
- }],
28
- schema: null
16
+ [`${DIR}/models/todo.ts`]: "// fake source, parser returns fixture",
17
+ [`${DIR}/models/user.ts`]: "// fake source, parser returns fixture"
18
+ };
19
+ var fixtures = {
20
+ [`${DIR}/models/todo.ts`]: {
21
+ mutations: [{
22
+ modelName: "todo",
23
+ handlers: [{
24
+ name: "toggle",
25
+ paramTypeText: "{ id: string; isActive: boolean }"
26
+ }, {
27
+ name: "rename",
28
+ paramTypeText: "{ id: string; title: string }"
29
29
  }],
30
- queries: []
31
- },
32
- [`${DIR}/models/user.ts`]: {
33
- mutations: [{
34
- modelName: "user",
35
- handlers: [{
36
- name: "finishOnboarding",
37
- // null = no second param / void
38
- paramTypeText: null
39
- }],
40
- schema: null
41
- }],
42
- queries: []
43
- }
30
+ schema: null
31
+ }],
32
+ queries: []
44
33
  },
45
- result = generateLite({
46
- files,
47
- dir: DIR,
48
- parse: makeParse(fixtures)
49
- });
34
+ [`${DIR}/models/user.ts`]: {
35
+ mutations: [{
36
+ modelName: "user",
37
+ handlers: [{
38
+ name: "finishOnboarding",
39
+ // null = no second param / void
40
+ paramTypeText: null
41
+ }],
42
+ schema: null
43
+ }],
44
+ queries: []
45
+ }
46
+ };
47
+ var result = generateLite({
48
+ files,
49
+ dir: DIR,
50
+ parse: makeParse(fixtures)
51
+ });
50
52
  expect(Object.keys(result.files).sort()).toEqual(["README.md", "models.ts", "syncedMutations.ts"]);
51
53
  var models = result.files["models.ts"];
52
- expect(models).toContain("import * as todo from '../models/todo'"), expect(models).toContain("import * as userPublic from '../models/user'"), expect(models).toContain("export const models = {");
54
+ expect(models).toContain("import * as todo from '../models/todo'");
55
+ expect(models).toContain("import * as userPublic from '../models/user'");
56
+ expect(models).toContain("export const models = {");
53
57
  var syncedMutations = result.files["syncedMutations.ts"];
54
- expect(syncedMutations).toContain("toggle:"), expect(syncedMutations).toContain("v.object({"), expect(syncedMutations).toContain("id: v.string()"), expect(syncedMutations).toContain("isActive: v.boolean()"), expect(syncedMutations).toContain("rename:"), expect(syncedMutations).toContain("title: v.string()"), expect(syncedMutations).toContain("finishOnboarding: v.void_()"), expect(result.modelCount).toBe(2), expect(result.schemaCount).toBe(0), expect(result.mutationCount).toBe(3);
55
- }), test("falls back to v.unknown() for type references", function () {
58
+ expect(syncedMutations).toContain("toggle:");
59
+ expect(syncedMutations).toContain("v.object({");
60
+ expect(syncedMutations).toContain("id: v.string()");
61
+ expect(syncedMutations).toContain("isActive: v.boolean()");
62
+ expect(syncedMutations).toContain("rename:");
63
+ expect(syncedMutations).toContain("title: v.string()");
64
+ expect(syncedMutations).toContain("finishOnboarding: v.void_()");
65
+ expect(result.modelCount).toBe(2);
66
+ expect(result.schemaCount).toBe(0);
67
+ expect(result.mutationCount).toBe(3);
68
+ });
69
+ test("falls back to v.unknown() for type references", function () {
56
70
  var files = {
57
- [`${DIR}/models/post.ts`]: "// fake"
58
- },
59
- fixtures = {
60
- [`${DIR}/models/post.ts`]: {
61
- mutations: [{
62
- modelName: "post",
63
- handlers: [{
64
- name: "archive",
65
- // bare type reference — parseTypeString returns null, so
66
- // generate-lite should fall back to v.unknown() rather than
67
- // attempting cross-file type resolution.
68
- paramTypeText: "ArchiveParams"
69
- }, {
70
- name: "publish",
71
- // primitive, should resolve
72
- paramTypeText: "string"
73
- }],
74
- schema: null
71
+ [`${DIR}/models/post.ts`]: "// fake"
72
+ };
73
+ var fixtures = {
74
+ [`${DIR}/models/post.ts`]: {
75
+ mutations: [{
76
+ modelName: "post",
77
+ handlers: [{
78
+ name: "archive",
79
+ // bare type reference — parseTypeString returns null, so
80
+ // generate-lite should fall back to v.unknown() rather than
81
+ // attempting cross-file type resolution.
82
+ paramTypeText: "ArchiveParams"
83
+ }, {
84
+ name: "publish",
85
+ // primitive, should resolve
86
+ paramTypeText: "string"
75
87
  }],
76
- queries: []
77
- }
78
- },
79
- result = generateLite({
80
- files,
81
- dir: DIR,
82
- parse: makeParse(fixtures)
83
- }),
84
- synced = result.files["syncedMutations.ts"];
85
- expect(synced).toContain("archive: v.unknown()"), expect(synced).toContain("publish: v.string()");
86
- }), test("emits query files with v.unknown() fallback for references", function () {
88
+ schema: null
89
+ }],
90
+ queries: []
91
+ }
92
+ };
93
+ var result = generateLite({
94
+ files,
95
+ dir: DIR,
96
+ parse: makeParse(fixtures)
97
+ });
98
+ var synced = result.files["syncedMutations.ts"];
99
+ expect(synced).toContain("archive: v.unknown()");
100
+ expect(synced).toContain("publish: v.string()");
101
+ });
102
+ test("emits query files with v.unknown() fallback for references", function () {
87
103
  var files = {
88
- [`${DIR}/models/post.ts`]: "// fake",
89
- [`${DIR}/queries/post.ts`]: "// fake"
104
+ [`${DIR}/models/post.ts`]: "// fake",
105
+ [`${DIR}/queries/post.ts`]: "// fake"
106
+ };
107
+ var fixtures = {
108
+ [`${DIR}/models/post.ts`]: {
109
+ mutations: [],
110
+ queries: []
90
111
  },
91
- fixtures = {
92
- [`${DIR}/models/post.ts`]: {
93
- mutations: [],
94
- queries: []
112
+ [`${DIR}/queries/post.ts`]: {
113
+ mutations: [],
114
+ queries: [
115
+ // no-arg query → void
116
+ {
117
+ name: "allPosts",
118
+ paramTypeText: null
95
119
  },
96
- [`${DIR}/queries/post.ts`]: {
97
- mutations: [],
98
- queries: [
99
- // no-arg query void
100
- {
101
- name: "allPosts",
102
- paramTypeText: null
103
- },
104
- // inline object → real validator
105
- {
106
- name: "postById",
107
- paramTypeText: "{ id: string }"
108
- },
109
- // primitive
110
- {
111
- name: "byAuthorId",
112
- paramTypeText: "string"
113
- },
114
- // type reference → fallback
115
- {
116
- name: "filtered",
117
- paramTypeText: "PostFilter"
118
- },
119
- // permission should be skipped
120
- {
121
- name: "permission",
122
- paramTypeText: null
123
- }]
124
- }
125
- },
126
- result = generateLite({
127
- files,
128
- dir: DIR,
129
- parse: makeParse(fixtures)
130
- });
131
- expect(result.files["groupedQueries.ts"]).toBeDefined(), expect(result.files["syncedQueries.ts"]).toBeDefined();
120
+ // inline object → real validator
121
+ {
122
+ name: "postById",
123
+ paramTypeText: "{ id: string }"
124
+ },
125
+ // primitive
126
+ {
127
+ name: "byAuthorId",
128
+ paramTypeText: "string"
129
+ },
130
+ // type reference → fallback
131
+ {
132
+ name: "filtered",
133
+ paramTypeText: "PostFilter"
134
+ },
135
+ // permission should be skipped
136
+ {
137
+ name: "permission",
138
+ paramTypeText: null
139
+ }]
140
+ }
141
+ };
142
+ var result = generateLite({
143
+ files,
144
+ dir: DIR,
145
+ parse: makeParse(fixtures)
146
+ });
147
+ expect(result.files["groupedQueries.ts"]).toBeDefined();
148
+ expect(result.files["syncedQueries.ts"]).toBeDefined();
132
149
  var grouped = result.files["groupedQueries.ts"];
133
150
  expect(grouped).toContain("export * as post from '../queries/post'");
134
151
  var synced = result.files["syncedQueries.ts"];
135
- expect(synced).toContain("allPosts: defineQuery(() => Queries.post.allPosts())"), expect(synced).toContain("postById: defineQuery("), expect(synced).toContain("id: v.string()"), expect(synced).toContain("byAuthorId: defineQuery("), expect(synced).toMatch(/byAuthorId: defineQuery\(\s*v\.string\(\)/), expect(synced).toContain("filtered: defineQuery("), expect(synced).toMatch(/filtered: defineQuery\(\s*v\.unknown\(\)/), expect(synced).not.toContain("permission: defineQuery"), expect(result.queryCount).toBe(4);
136
- }), test("emits types.ts and tables.ts when a model declares a schema inline", function () {
152
+ expect(synced).toContain("allPosts: defineQuery(() => Queries.post.allPosts())");
153
+ expect(synced).toContain("postById: defineQuery(");
154
+ expect(synced).toContain("id: v.string()");
155
+ expect(synced).toContain("byAuthorId: defineQuery(");
156
+ expect(synced).toMatch(/byAuthorId: defineQuery\(\s*v\.string\(\)/);
157
+ expect(synced).toContain("filtered: defineQuery(");
158
+ expect(synced).toMatch(/filtered: defineQuery\(\s*v\.unknown\(\)/);
159
+ expect(synced).not.toContain("permission: defineQuery");
160
+ expect(result.queryCount).toBe(4);
161
+ });
162
+ test("emits types.ts and tables.ts when a model declares a schema inline", function () {
137
163
  var files = {
138
- [`${DIR}/models/task.ts`]: "// fake"
139
- },
140
- fixtures = {
141
- [`${DIR}/models/task.ts`]: {
142
- mutations: [{
143
- modelName: "task",
144
- handlers: [],
145
- schema: {
146
- tableName: "task",
147
- primaryKeys: ["id"],
148
- columns: [{
149
- name: "id",
150
- builderText: "string()"
151
- }, {
152
- name: "title",
153
- builderText: "string()"
154
- }, {
155
- name: "priority",
156
- builderText: "number()"
157
- }, {
158
- name: "done",
159
- builderText: "boolean()"
160
- }, {
161
- name: "note",
162
- builderText: "string().optional()"
163
- }]
164
- }
165
- }],
166
- queries: []
167
- }
168
- },
169
- result = generateLite({
170
- files,
171
- dir: DIR,
172
- parse: makeParse(fixtures)
173
- });
174
- expect(result.schemaCount).toBe(1), expect(result.files["types.ts"]).toBeDefined(), expect(result.files["tables.ts"]).toBeDefined();
164
+ [`${DIR}/models/task.ts`]: "// fake"
165
+ };
166
+ var fixtures = {
167
+ [`${DIR}/models/task.ts`]: {
168
+ mutations: [{
169
+ modelName: "task",
170
+ handlers: [],
171
+ schema: {
172
+ tableName: "task",
173
+ primaryKeys: ["id"],
174
+ columns: [{
175
+ name: "id",
176
+ builderText: "string()"
177
+ }, {
178
+ name: "title",
179
+ builderText: "string()"
180
+ }, {
181
+ name: "priority",
182
+ builderText: "number()"
183
+ }, {
184
+ name: "done",
185
+ builderText: "boolean()"
186
+ }, {
187
+ name: "note",
188
+ builderText: "string().optional()"
189
+ }]
190
+ }
191
+ }],
192
+ queries: []
193
+ }
194
+ };
195
+ var result = generateLite({
196
+ files,
197
+ dir: DIR,
198
+ parse: makeParse(fixtures)
199
+ });
200
+ expect(result.schemaCount).toBe(1);
201
+ expect(result.files["types.ts"]).toBeDefined();
202
+ expect(result.files["tables.ts"]).toBeDefined();
175
203
  var types = result.files["types.ts"];
176
204
  expect(types).toContain("export type Task = TableInsertRow<typeof schema.task>");
177
205
  var tables = result.files["tables.ts"];
178
206
  expect(tables).toContain("export { schema as task } from '../models/task'");
179
207
  var synced = result.files["syncedMutations.ts"];
180
- expect(synced).toContain("insert:"), expect(synced).toContain("update:"), expect(synced).toContain("delete:"), expect(result.mutationCount).toBe(3);
181
- }), test("ignores nested files and non-ts files inside the models directory", function () {
208
+ expect(synced).toContain("insert:");
209
+ expect(synced).toContain("update:");
210
+ expect(synced).toContain("delete:");
211
+ expect(result.mutationCount).toBe(3);
212
+ });
213
+ test("ignores nested files and non-ts files inside the models directory", function () {
182
214
  var files = {
183
- [`${DIR}/models/post.ts`]: "// fake",
184
- [`${DIR}/models/README.md`]: "not a model",
185
- [`${DIR}/models/helpers/util.ts`]: "nested should be ignored",
186
- [`${DIR}/models/post.d.ts`]: "declaration file, ignored"
187
- },
188
- fixtures = {
189
- [`${DIR}/models/post.ts`]: {
190
- mutations: [{
191
- modelName: "post",
192
- handlers: [],
193
- schema: null
194
- }],
195
- queries: []
196
- }
197
- },
198
- result = generateLite({
199
- files,
200
- dir: DIR,
201
- parse: makeParse(fixtures)
202
- });
215
+ [`${DIR}/models/post.ts`]: "// fake",
216
+ [`${DIR}/models/README.md`]: "not a model",
217
+ [`${DIR}/models/helpers/util.ts`]: "nested should be ignored",
218
+ [`${DIR}/models/post.d.ts`]: "declaration file, ignored"
219
+ };
220
+ var fixtures = {
221
+ [`${DIR}/models/post.ts`]: {
222
+ mutations: [{
223
+ modelName: "post",
224
+ handlers: [],
225
+ schema: null
226
+ }],
227
+ queries: []
228
+ }
229
+ };
230
+ var result = generateLite({
231
+ files,
232
+ dir: DIR,
233
+ parse: makeParse(fixtures)
234
+ });
203
235
  expect(result.modelCount).toBe(1);
204
236
  var models = result.files["models.ts"];
205
- expect(models).toContain("import * as post from '../models/post'"), expect(models).not.toContain("util"), expect(models).not.toContain("README");
206
- }), test("infers mutations/ directory when present", function () {
237
+ expect(models).toContain("import * as post from '../models/post'");
238
+ expect(models).not.toContain("util");
239
+ expect(models).not.toContain("README");
240
+ });
241
+ test("infers mutations/ directory when present", function () {
207
242
  var files = {
208
- [`${DIR}/mutations/post.ts`]: "// fake"
209
- },
210
- fixtures = {
211
- [`${DIR}/mutations/post.ts`]: {
212
- mutations: [{
213
- modelName: "post",
214
- handlers: [{
215
- name: "publish",
216
- paramTypeText: "{ id: string }"
217
- }],
218
- schema: null
243
+ [`${DIR}/mutations/post.ts`]: "// fake"
244
+ };
245
+ var fixtures = {
246
+ [`${DIR}/mutations/post.ts`]: {
247
+ mutations: [{
248
+ modelName: "post",
249
+ handlers: [{
250
+ name: "publish",
251
+ paramTypeText: "{ id: string }"
219
252
  }],
220
- queries: []
221
- }
222
- },
223
- result = generateLite({
224
- files,
225
- dir: DIR,
226
- parse: makeParse(fixtures)
227
- }),
228
- models = result.files["models.ts"];
253
+ schema: null
254
+ }],
255
+ queries: []
256
+ }
257
+ };
258
+ var result = generateLite({
259
+ files,
260
+ dir: DIR,
261
+ parse: makeParse(fixtures)
262
+ });
263
+ var models = result.files["models.ts"];
229
264
  expect(models).toContain("from '../mutations/post'");
230
265
  });
231
266
  });
@@ -1 +1 @@
1
- {"version":3,"names":["describe","expect","test","generateLite","makeParse","table","_src","path","entry","Error","DIR","files","fixtures","mutations","modelName","handlers","name","paramTypeText","schema","queries","result","dir","parse","Object","keys","sort","toEqual","models","toContain","syncedMutations","modelCount","toBe","schemaCount","mutationCount","synced","toBeDefined","grouped","toMatch","not","queryCount","tableName","primaryKeys","columns","builderText","types","tables"],"sources":["../../src/generate-lite.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["describe","expect","test","generateLite","makeParse","table","_src","path","entry","Error","DIR","files","fixtures","mutations","modelName","handlers","name","paramTypeText","schema","queries","result","dir","parse","Object","keys","sort","toEqual","models","toContain","syncedMutations","modelCount","toBe","schemaCount","mutationCount","synced","toBeDefined","grouped","toMatch","not","queryCount","tableName","primaryKeys","columns","builderText","types","tables"],"sources":["../../src/generate-lite.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}