on-zero 0.1.39 → 0.1.40

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 (84) hide show
  1. package/dist/cjs/createUseQuery.cjs +3 -2
  2. package/dist/cjs/createUseQuery.js +2 -2
  3. package/dist/cjs/createUseQuery.js.map +1 -1
  4. package/dist/cjs/createUseQuery.native.js +3 -2
  5. package/dist/cjs/createUseQuery.native.js.map +1 -1
  6. package/dist/cjs/createZeroClient.cjs +28 -5
  7. package/dist/cjs/createZeroClient.js +19 -4
  8. package/dist/cjs/createZeroClient.js.map +1 -1
  9. package/dist/cjs/createZeroClient.native.js +29 -5
  10. package/dist/cjs/createZeroClient.native.js.map +1 -1
  11. package/dist/cjs/createZeroServer.cjs +5 -2
  12. package/dist/cjs/createZeroServer.js +5 -2
  13. package/dist/cjs/createZeroServer.js.map +1 -1
  14. package/dist/cjs/createZeroServer.native.js +5 -2
  15. package/dist/cjs/createZeroServer.native.js.map +1 -1
  16. package/dist/cjs/generate.cjs +458 -39
  17. package/dist/cjs/generate.js +485 -31
  18. package/dist/cjs/generate.js.map +2 -2
  19. package/dist/cjs/generate.native.js +812 -51
  20. package/dist/cjs/generate.native.js.map +1 -1
  21. package/dist/cjs/generate.test.cjs +251 -0
  22. package/dist/cjs/generate.test.js +252 -0
  23. package/dist/cjs/generate.test.js.map +1 -1
  24. package/dist/cjs/generate.test.native.js +251 -0
  25. package/dist/cjs/generate.test.native.js.map +1 -1
  26. package/dist/cjs/helpers/createMutators.cjs +21 -8
  27. package/dist/cjs/helpers/createMutators.js +16 -6
  28. package/dist/cjs/helpers/createMutators.js.map +1 -1
  29. package/dist/cjs/helpers/createMutators.native.js +28 -10
  30. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  31. package/dist/esm/createUseQuery.js +3 -3
  32. package/dist/esm/createUseQuery.js.map +1 -1
  33. package/dist/esm/createUseQuery.mjs +4 -3
  34. package/dist/esm/createUseQuery.mjs.map +1 -1
  35. package/dist/esm/createUseQuery.native.js +4 -3
  36. package/dist/esm/createUseQuery.native.js.map +1 -1
  37. package/dist/esm/createZeroClient.js +19 -4
  38. package/dist/esm/createZeroClient.js.map +1 -1
  39. package/dist/esm/createZeroClient.mjs +28 -5
  40. package/dist/esm/createZeroClient.mjs.map +1 -1
  41. package/dist/esm/createZeroClient.native.js +29 -5
  42. package/dist/esm/createZeroClient.native.js.map +1 -1
  43. package/dist/esm/createZeroServer.js +5 -2
  44. package/dist/esm/createZeroServer.js.map +1 -1
  45. package/dist/esm/createZeroServer.mjs +5 -2
  46. package/dist/esm/createZeroServer.mjs.map +1 -1
  47. package/dist/esm/createZeroServer.native.js +5 -2
  48. package/dist/esm/createZeroServer.native.js.map +1 -1
  49. package/dist/esm/generate.js +486 -32
  50. package/dist/esm/generate.js.map +2 -2
  51. package/dist/esm/generate.mjs +459 -40
  52. package/dist/esm/generate.mjs.map +1 -1
  53. package/dist/esm/generate.native.js +813 -52
  54. package/dist/esm/generate.native.js.map +1 -1
  55. package/dist/esm/generate.test.js +252 -0
  56. package/dist/esm/generate.test.js.map +1 -1
  57. package/dist/esm/generate.test.mjs +251 -0
  58. package/dist/esm/generate.test.mjs.map +1 -1
  59. package/dist/esm/generate.test.native.js +251 -0
  60. package/dist/esm/generate.test.native.js.map +1 -1
  61. package/dist/esm/helpers/createMutators.js +6 -4
  62. package/dist/esm/helpers/createMutators.js.map +1 -1
  63. package/dist/esm/helpers/createMutators.mjs +6 -4
  64. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  65. package/dist/esm/helpers/createMutators.native.js +13 -6
  66. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  67. package/package.json +2 -2
  68. package/readme.md +110 -2
  69. package/src/createUseQuery.tsx +15 -6
  70. package/src/createZeroClient.tsx +42 -6
  71. package/src/createZeroServer.ts +9 -0
  72. package/src/generate.test.ts +340 -0
  73. package/src/generate.ts +863 -43
  74. package/src/helpers/createMutators.ts +22 -8
  75. package/types/createUseQuery.d.ts +2 -1
  76. package/types/createUseQuery.d.ts.map +1 -1
  77. package/types/createZeroClient.d.ts +10 -1
  78. package/types/createZeroClient.d.ts.map +1 -1
  79. package/types/createZeroServer.d.ts +7 -1
  80. package/types/createZeroServer.d.ts.map +1 -1
  81. package/types/generate.d.ts +1 -0
  82. package/types/generate.d.ts.map +1 -1
  83. package/types/helpers/createMutators.d.ts +3 -1
  84. package/types/helpers/createMutators.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","resolve","hash","s","update","digest","generateCache","generateCachePath","getCacheDir","dir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","cachedHash","generateModelsFile","modelFiles","modelNames","map","f","sort","getImportName","name","imports","join","sortedByImportName","a","b","localeCompare","modelsObj","generateTypesFile","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","generateTablesFile","getExportName","exports","generateReadmeFile","generateGroupedQueriesFile","queries","sortedFiles","Set","q","sourceFile","file","generateSyncedQueriesFile","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","has","set","get","push","err","return","Array","from","keys","namespaceDefs","fileQueries","queryDefs","q2","lines","valibotCode","split","filter","l","trim","schemaLineIndex","findIndex","startsWith","validatorDef","schemaLines","openBraces","started","i","length","line","cleaned","replace","match","params","indentedValidator","line2","i2","queriesObject","generate","options","after","silent","baseDir","modelsDir","generatedDir","queriesDir","allModelFiles","endsWith","filesWithSchema","includes","writeResults","filesChanged","Boolean","queryCount","ts","ModelToValibot","TypeScriptToModel","queryFiles","allQueries","_loop","fileBaseName","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","_node_modifiers","exportModifier","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","parameters","paramType","_param_type","param","type","typeString","model","Generate","console","error"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","dirname","resolve","hash","s","update","digest","generateCache","generateCachePath","getCacheDir","dir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","cachedHash","generateModelsFile","modelFiles","modelNames","map","f","sort","getImportName","name","imports","join","sortedByImportName","a","b","localeCompare","modelsObj","generateTypesFile","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","generateTablesFile","getExportName","exports","generateReadmeFile","generateGroupedQueriesFile","queries","sortedFiles","Set","q","sourceFile","file","generateSyncedQueriesFile","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","has","set","get","push","err","return","Array","from","keys","namespaceDefs","fileQueries","queryDefs","q2","validatorDef","valibotCode","trim","params","indentedValidator","split","line","i","queriesObject","createTypeResolver","ts","files","configPath","findConfigFile","sys","fileExists","compilerOptions","target","ScriptTarget","Latest","module","ModuleKind","ESNext","moduleResolution","ModuleResolutionKind","Bundler","strict","skipLibCheck","noEmit","configFile","readConfigFile","readFile","config","parsed","parseJsonConfigFileContent","options","fileMap","path","host","createCompilerHost","originalGetSourceFile","getSourceFile","bind","fileName","languageVersion","onError","createSourceFile","_fileMap_get","program","createProgram","f2","checker","getTypeChecker","resolveType","node","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","exportName","paramIndex","result","forEachChild","_node_modifiers","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","param","parameters","resolveMutationParamTypes","resolved","isCallExpression","args","arguments","handlersArg","length","isObjectLiteralExpression","properties","prop","_prop_name","isPropertyAssignment","isMethodDeclaration","init","isFunctionExpression","typeNode","expanded","extractMutationsFromModel","_fileName","silent","resolvedTypes","resolvedTypeToValibot","mutateNode","call","hasCRUD","columns","primaryKeys","extractSchemaColumns","custom","_secondParam_type","paramType","secondParam","resolvedType","modelName","visit","text","expression","endsWith","arg","isStringLiteral","obj","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","colName","initText","colType","parseColumnType","optional","includes","startsWith","columnTypeToValibot","col","base","schemaColumnsToValibot","mode","entries","pk","Object","col1","isPK","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","name1","col2","generateSyncedMutationsFile","modelMutations","sorted","modelDefs","model","_loop","_i2","_iter2","hasCustomOverride","customMut","find","extractValibotExpression","_i","_iter","mut","parseTypeString","inner","normalized","replace","part","trimmed","match","opt","typeStr","val","inner1","seen","flags","getFlags","TypeFlags","Intersection","add","recurse","t","String","Number","Boolean","Void","Undefined","Null","Any","Unknown","Never","StringLiteral","NumberLiteral","BooleanLiteral","intrinsicName","isUnion","members","types","hasNull","hasUndefined","rest","filter","every","resolveSymbolType","prop2","_prop_declarations","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","isIntersection","props","getProperties"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -127,4 +127,256 @@ export const allPosts = () => zero.query.post
127
127
  expect(second.filesChanged).toBe(0);
128
128
  });
129
129
  });
130
+ describe("mutations", () => {
131
+ test("generates validators for inline mutation param types", async () => {
132
+ writeFileSync(
133
+ join(testDir, "models/post.ts"),
134
+ `
135
+ import { table, string } from 'on-zero'
136
+ import { mutations, serverWhere } from 'on-zero'
137
+
138
+ export const schema = table('post').columns({
139
+ id: string(),
140
+ title: string(),
141
+ }).primaryKey('id')
142
+
143
+ const perm = serverWhere('post', () => true)
144
+
145
+ export const mutate = mutations(schema, perm, {
146
+ archive: async ({ tx }, { id, reason }: { id: string; reason: string }) => {
147
+ await tx.mutate.post.update({ id, archived: true })
148
+ },
149
+ })
150
+ `
151
+ );
152
+ const result = await generate({ dir: testDir, silent: !0 });
153
+ expect(result.mutationCount).toBeGreaterThan(0), expect(existsSync(join(testDir, "generated/syncedMutations.ts"))).toBe(!0);
154
+ const content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
155
+ expect(content).toContain("archive"), expect(content).toContain("v.object"), expect(content).toContain("v.string()");
156
+ }), test("generates CRUD validators from schema columns", async () => {
157
+ writeFileSync(
158
+ join(testDir, "models/task.ts"),
159
+ `
160
+ import { table, string, number, boolean } from 'on-zero'
161
+ import { mutations, serverWhere } from 'on-zero'
162
+
163
+ export const schema = table('task').columns({
164
+ id: string(),
165
+ title: string(),
166
+ priority: number(),
167
+ done: boolean(),
168
+ note: string().optional(),
169
+ }).primaryKey('id')
170
+
171
+ const perm = serverWhere('task', () => true)
172
+
173
+ export const mutate = mutations(schema, perm)
174
+ `
175
+ );
176
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
177
+ expect(content).toContain("insert:"), expect(content).toMatch(/insert:.*v\.object/), expect(content).toContain("update:"), expect(content).toContain("delete:");
178
+ }), test("skips models without export const mutate", async () => {
179
+ writeFileSync(
180
+ join(testDir, "models/readonly.ts"),
181
+ `
182
+ import { table, string } from 'on-zero'
183
+
184
+ export const schema = table('readonly').columns({
185
+ id: string(),
186
+ name: string(),
187
+ }).primaryKey('id')
188
+ `
189
+ );
190
+ const result = await generate({ dir: testDir, silent: !0 });
191
+ expect(result.mutationCount).toBe(0);
192
+ }), test("extracts custom mutations from bare mutations({})", async () => {
193
+ writeFileSync(
194
+ join(testDir, "models/admin.ts"),
195
+ `
196
+ import { mutations } from 'on-zero'
197
+
198
+ export const mutate = mutations({
199
+ reset: async ({ tx }, { targetId }: { targetId: string }) => {
200
+ await tx.mutate.admin.delete({ id: targetId })
201
+ },
202
+ })
203
+ `
204
+ );
205
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
206
+ expect(content).toContain("reset"), expect(content).toContain("v.string()");
207
+ }), test("handles mutations with only context param (void)", async () => {
208
+ writeFileSync(
209
+ join(testDir, "models/user.ts"),
210
+ `
211
+ import { table, string } from 'on-zero'
212
+ import { mutations, serverWhere } from 'on-zero'
213
+
214
+ export const schema = table('user').columns({
215
+ id: string(),
216
+ name: string(),
217
+ }).primaryKey('id')
218
+
219
+ const perm = serverWhere('user', () => true)
220
+
221
+ export const mutate = mutations(schema, perm, {
222
+ finishOnboarding: async ({ tx }) => {
223
+ // no second param
224
+ },
225
+ })
226
+ `
227
+ );
228
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
229
+ expect(content).toContain("finishOnboarding");
230
+ }), test("handles primitive param type", async () => {
231
+ writeFileSync(
232
+ join(testDir, "models/user.ts"),
233
+ `
234
+ import { table, string } from 'on-zero'
235
+ import { mutations, serverWhere } from 'on-zero'
236
+
237
+ export const schema = table('user').columns({
238
+ id: string(),
239
+ name: string(),
240
+ }).primaryKey('id')
241
+
242
+ const perm = serverWhere('user', () => true)
243
+
244
+ export const mutate = mutations(schema, perm, {
245
+ completeSignup: async ({ tx }, userId: string) => {
246
+ await tx.mutate.user.update({ id: userId })
247
+ },
248
+ })
249
+ `
250
+ );
251
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
252
+ expect(content).toContain("completeSignup"), expect(content).toContain("v.string()");
253
+ }), test("handles array param type", async () => {
254
+ writeFileSync(
255
+ join(testDir, "models/batch.ts"),
256
+ `
257
+ import { mutations } from 'on-zero'
258
+
259
+ export const mutate = mutations({
260
+ bulkDelete: async ({ tx }, ids: Array<{ id: string }>) => {
261
+ for (const { id } of ids) await tx.mutate.batch.delete({ id })
262
+ },
263
+ })
264
+ `
265
+ );
266
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
267
+ expect(content).toContain("bulkDelete"), expect(content).toContain("v.array");
268
+ }), test("populates mutationCount and caching works", async () => {
269
+ writeFileSync(
270
+ join(testDir, "models/item.ts"),
271
+ `
272
+ import { table, string } from 'on-zero'
273
+ import { mutations, serverWhere } from 'on-zero'
274
+
275
+ export const schema = table('item').columns({
276
+ id: string(),
277
+ name: string(),
278
+ }).primaryKey('id')
279
+
280
+ const perm = serverWhere('item', () => true)
281
+
282
+ export const mutate = mutations(schema, perm, {
283
+ rename: async ({ tx }, { id, name }: { id: string; name: string }) => {
284
+ await tx.mutate.item.update({ id, name })
285
+ },
286
+ })
287
+ `
288
+ );
289
+ const first = await generate({ dir: testDir, silent: !0 });
290
+ expect(first.mutationCount).toBeGreaterThan(0);
291
+ const second = await generate({ dir: testDir, silent: !0 });
292
+ expect(second.filesChanged).toBe(0), expect(second.mutationCount).toBe(first.mutationCount);
293
+ });
294
+ });
295
+ describe("type resolution", () => {
296
+ test("resolves imported type references for mutations", async () => {
297
+ writeFileSync(
298
+ join(testDir, "models/types.ts"),
299
+ `
300
+ export type ArchiveParams = {
301
+ id: string
302
+ reason: string
303
+ archived: boolean
304
+ }
305
+ `
306
+ ), writeFileSync(
307
+ join(testDir, "models/post.ts"),
308
+ `
309
+ import { table, string, boolean } from 'on-zero'
310
+ import { mutations } from 'on-zero'
311
+ import type { ArchiveParams } from './types'
312
+
313
+ export const mutate = mutations({
314
+ archive: async ({ tx }, params: ArchiveParams) => {
315
+ await tx.mutate.post.update(params)
316
+ },
317
+ })
318
+ `
319
+ );
320
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
321
+ expect(content).toContain("v.string()"), expect(content).toContain("v.boolean()"), expect(content).toContain("reason"), expect(content).toContain("archived");
322
+ }), test("resolves utility types like Pick", async () => {
323
+ writeFileSync(
324
+ join(testDir, "models/types.ts"),
325
+ `
326
+ export type Item = {
327
+ id: string
328
+ name: string
329
+ description: string
330
+ count: number
331
+ }
332
+ `
333
+ ), writeFileSync(
334
+ join(testDir, "models/item.ts"),
335
+ `
336
+ import { table, string, number } from 'on-zero'
337
+ import { mutations, serverWhere } from 'on-zero'
338
+ import type { Item } from './types'
339
+
340
+ export const schema = table('item').columns({
341
+ id: string(),
342
+ name: string(),
343
+ description: string(),
344
+ count: number(),
345
+ }).primaryKey('id')
346
+
347
+ const perm = serverWhere('item', () => true)
348
+
349
+ export const mutate = mutations(schema, perm, {
350
+ rename: async ({ tx }, updates: Pick<Item, 'id' | 'name'>) => {
351
+ await tx.mutate.item.update(updates)
352
+ },
353
+ })
354
+ `
355
+ );
356
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
357
+ expect(content).toContain("id"), expect(content).toContain("name"), expect(content).not.toMatch(/rename:[\s\S]*description/), expect(content).not.toMatch(/rename:[\s\S]*count/);
358
+ }), test("resolves imported types in query params", async () => {
359
+ writeFileSync(
360
+ join(testDir, "models/post.ts"),
361
+ "export const schema = table('post', { id: string() })"
362
+ ), writeFileSync(
363
+ join(testDir, "queries/types.ts"),
364
+ `
365
+ export type PostFilter = {
366
+ authorId: string
367
+ published: boolean
368
+ }
369
+ `
370
+ ), writeFileSync(
371
+ join(testDir, "queries/post.ts"),
372
+ `
373
+ import type { PostFilter } from './types'
374
+
375
+ export const filteredPosts = (filter: PostFilter) => zero.query.post
376
+ `
377
+ );
378
+ const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedQueries.ts"), "utf-8");
379
+ expect(content).toContain("filteredPosts"), expect(content).toContain("v.object"), expect(content).toContain("authorId"), expect(content).toContain("v.boolean()");
380
+ });
381
+ });
130
382
  //# sourceMappingURL=generate.test.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/generate.test.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -111,4 +111,255 @@ export const allPosts = () => zero.query.post
111
111
  expect(second.filesChanged).toBe(0);
112
112
  });
113
113
  });
114
+ describe("mutations", () => {
115
+ test("generates validators for inline mutation param types", async () => {
116
+ writeFileSync(join(testDir, "models/post.ts"), `
117
+ import { table, string } from 'on-zero'
118
+ import { mutations, serverWhere } from 'on-zero'
119
+
120
+ export const schema = table('post').columns({
121
+ id: string(),
122
+ title: string(),
123
+ }).primaryKey('id')
124
+
125
+ const perm = serverWhere('post', () => true)
126
+
127
+ export const mutate = mutations(schema, perm, {
128
+ archive: async ({ tx }, { id, reason }: { id: string; reason: string }) => {
129
+ await tx.mutate.post.update({ id, archived: true })
130
+ },
131
+ })
132
+ `);
133
+ const result = await generate({
134
+ dir: testDir,
135
+ silent: !0
136
+ });
137
+ expect(result.mutationCount).toBeGreaterThan(0), expect(existsSync(join(testDir, "generated/syncedMutations.ts"))).toBe(!0);
138
+ const content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
139
+ expect(content).toContain("archive"), expect(content).toContain("v.object"), expect(content).toContain("v.string()");
140
+ }), test("generates CRUD validators from schema columns", async () => {
141
+ writeFileSync(join(testDir, "models/task.ts"), `
142
+ import { table, string, number, boolean } from 'on-zero'
143
+ import { mutations, serverWhere } from 'on-zero'
144
+
145
+ export const schema = table('task').columns({
146
+ id: string(),
147
+ title: string(),
148
+ priority: number(),
149
+ done: boolean(),
150
+ note: string().optional(),
151
+ }).primaryKey('id')
152
+
153
+ const perm = serverWhere('task', () => true)
154
+
155
+ export const mutate = mutations(schema, perm)
156
+ `);
157
+ const result = await generate({
158
+ dir: testDir,
159
+ silent: !0
160
+ }),
161
+ content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
162
+ expect(content).toContain("insert:"), expect(content).toMatch(/insert:.*v\.object/), expect(content).toContain("update:"), expect(content).toContain("delete:");
163
+ }), test("skips models without export const mutate", async () => {
164
+ writeFileSync(join(testDir, "models/readonly.ts"), `
165
+ import { table, string } from 'on-zero'
166
+
167
+ export const schema = table('readonly').columns({
168
+ id: string(),
169
+ name: string(),
170
+ }).primaryKey('id')
171
+ `);
172
+ const result = await generate({
173
+ dir: testDir,
174
+ silent: !0
175
+ });
176
+ expect(result.mutationCount).toBe(0);
177
+ }), test("extracts custom mutations from bare mutations({})", async () => {
178
+ writeFileSync(join(testDir, "models/admin.ts"), `
179
+ import { mutations } from 'on-zero'
180
+
181
+ export const mutate = mutations({
182
+ reset: async ({ tx }, { targetId }: { targetId: string }) => {
183
+ await tx.mutate.admin.delete({ id: targetId })
184
+ },
185
+ })
186
+ `);
187
+ const result = await generate({
188
+ dir: testDir,
189
+ silent: !0
190
+ }),
191
+ content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
192
+ expect(content).toContain("reset"), expect(content).toContain("v.string()");
193
+ }), test("handles mutations with only context param (void)", async () => {
194
+ writeFileSync(join(testDir, "models/user.ts"), `
195
+ import { table, string } from 'on-zero'
196
+ import { mutations, serverWhere } from 'on-zero'
197
+
198
+ export const schema = table('user').columns({
199
+ id: string(),
200
+ name: string(),
201
+ }).primaryKey('id')
202
+
203
+ const perm = serverWhere('user', () => true)
204
+
205
+ export const mutate = mutations(schema, perm, {
206
+ finishOnboarding: async ({ tx }) => {
207
+ // no second param
208
+ },
209
+ })
210
+ `);
211
+ const result = await generate({
212
+ dir: testDir,
213
+ silent: !0
214
+ }),
215
+ content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
216
+ expect(content).toContain("finishOnboarding");
217
+ }), test("handles primitive param type", async () => {
218
+ writeFileSync(join(testDir, "models/user.ts"), `
219
+ import { table, string } from 'on-zero'
220
+ import { mutations, serverWhere } from 'on-zero'
221
+
222
+ export const schema = table('user').columns({
223
+ id: string(),
224
+ name: string(),
225
+ }).primaryKey('id')
226
+
227
+ const perm = serverWhere('user', () => true)
228
+
229
+ export const mutate = mutations(schema, perm, {
230
+ completeSignup: async ({ tx }, userId: string) => {
231
+ await tx.mutate.user.update({ id: userId })
232
+ },
233
+ })
234
+ `);
235
+ const result = await generate({
236
+ dir: testDir,
237
+ silent: !0
238
+ }),
239
+ content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
240
+ expect(content).toContain("completeSignup"), expect(content).toContain("v.string()");
241
+ }), test("handles array param type", async () => {
242
+ writeFileSync(join(testDir, "models/batch.ts"), `
243
+ import { mutations } from 'on-zero'
244
+
245
+ export const mutate = mutations({
246
+ bulkDelete: async ({ tx }, ids: Array<{ id: string }>) => {
247
+ for (const { id } of ids) await tx.mutate.batch.delete({ id })
248
+ },
249
+ })
250
+ `);
251
+ const result = await generate({
252
+ dir: testDir,
253
+ silent: !0
254
+ }),
255
+ content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
256
+ expect(content).toContain("bulkDelete"), expect(content).toContain("v.array");
257
+ }), test("populates mutationCount and caching works", async () => {
258
+ writeFileSync(join(testDir, "models/item.ts"), `
259
+ import { table, string } from 'on-zero'
260
+ import { mutations, serverWhere } from 'on-zero'
261
+
262
+ export const schema = table('item').columns({
263
+ id: string(),
264
+ name: string(),
265
+ }).primaryKey('id')
266
+
267
+ const perm = serverWhere('item', () => true)
268
+
269
+ export const mutate = mutations(schema, perm, {
270
+ rename: async ({ tx }, { id, name }: { id: string; name: string }) => {
271
+ await tx.mutate.item.update({ id, name })
272
+ },
273
+ })
274
+ `);
275
+ const first = await generate({
276
+ dir: testDir,
277
+ silent: !0
278
+ });
279
+ expect(first.mutationCount).toBeGreaterThan(0);
280
+ const second = await generate({
281
+ dir: testDir,
282
+ silent: !0
283
+ });
284
+ expect(second.filesChanged).toBe(0), expect(second.mutationCount).toBe(first.mutationCount);
285
+ });
286
+ });
287
+ describe("type resolution", () => {
288
+ test("resolves imported type references for mutations", async () => {
289
+ writeFileSync(join(testDir, "models/types.ts"), `
290
+ export type ArchiveParams = {
291
+ id: string
292
+ reason: string
293
+ archived: boolean
294
+ }
295
+ `), writeFileSync(join(testDir, "models/post.ts"), `
296
+ import { table, string, boolean } from 'on-zero'
297
+ import { mutations } from 'on-zero'
298
+ import type { ArchiveParams } from './types'
299
+
300
+ export const mutate = mutations({
301
+ archive: async ({ tx }, params: ArchiveParams) => {
302
+ await tx.mutate.post.update(params)
303
+ },
304
+ })
305
+ `);
306
+ const result = await generate({
307
+ dir: testDir,
308
+ silent: !0
309
+ }),
310
+ content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
311
+ expect(content).toContain("v.string()"), expect(content).toContain("v.boolean()"), expect(content).toContain("reason"), expect(content).toContain("archived");
312
+ }), test("resolves utility types like Pick", async () => {
313
+ writeFileSync(join(testDir, "models/types.ts"), `
314
+ export type Item = {
315
+ id: string
316
+ name: string
317
+ description: string
318
+ count: number
319
+ }
320
+ `), writeFileSync(join(testDir, "models/item.ts"), `
321
+ import { table, string, number } from 'on-zero'
322
+ import { mutations, serverWhere } from 'on-zero'
323
+ import type { Item } from './types'
324
+
325
+ export const schema = table('item').columns({
326
+ id: string(),
327
+ name: string(),
328
+ description: string(),
329
+ count: number(),
330
+ }).primaryKey('id')
331
+
332
+ const perm = serverWhere('item', () => true)
333
+
334
+ export const mutate = mutations(schema, perm, {
335
+ rename: async ({ tx }, updates: Pick<Item, 'id' | 'name'>) => {
336
+ await tx.mutate.item.update(updates)
337
+ },
338
+ })
339
+ `);
340
+ const result = await generate({
341
+ dir: testDir,
342
+ silent: !0
343
+ }),
344
+ content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
345
+ expect(content).toContain("id"), expect(content).toContain("name"), expect(content).not.toMatch(/rename:[\s\S]*description/), expect(content).not.toMatch(/rename:[\s\S]*count/);
346
+ }), test("resolves imported types in query params", async () => {
347
+ writeFileSync(join(testDir, "models/post.ts"), "export const schema = table('post', { id: string() })"), writeFileSync(join(testDir, "queries/types.ts"), `
348
+ export type PostFilter = {
349
+ authorId: string
350
+ published: boolean
351
+ }
352
+ `), writeFileSync(join(testDir, "queries/post.ts"), `
353
+ import type { PostFilter } from './types'
354
+
355
+ export const filteredPosts = (filter: PostFilter) => zero.query.post
356
+ `);
357
+ const result = await generate({
358
+ dir: testDir,
359
+ silent: !0
360
+ }),
361
+ content = readFileSync(join(testDir, "generated/syncedQueries.ts"), "utf-8");
362
+ expect(content).toContain("filteredPosts"), expect(content).toContain("v.object"), expect(content).toContain("authorId"), expect(content).toContain("v.boolean()");
363
+ });
364
+ });
114
365
  //# sourceMappingURL=generate.test.mjs.map