on-zero 0.1.39 → 0.1.41
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.
- package/dist/cjs/createUseQuery.cjs +3 -2
- package/dist/cjs/createUseQuery.js +2 -2
- package/dist/cjs/createUseQuery.js.map +1 -1
- package/dist/cjs/createUseQuery.native.js +3 -2
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +28 -5
- package/dist/cjs/createZeroClient.js +19 -4
- package/dist/cjs/createZeroClient.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +29 -5
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +5 -2
- package/dist/cjs/createZeroServer.js +5 -2
- package/dist/cjs/createZeroServer.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js +5 -2
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/generate.cjs +458 -39
- package/dist/cjs/generate.js +485 -31
- package/dist/cjs/generate.js.map +2 -2
- package/dist/cjs/generate.native.js +812 -51
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +251 -0
- package/dist/cjs/generate.test.js +252 -0
- package/dist/cjs/generate.test.js.map +1 -1
- package/dist/cjs/generate.test.native.js +251 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +21 -8
- package/dist/cjs/helpers/createMutators.js +16 -6
- package/dist/cjs/helpers/createMutators.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js +28 -10
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/createUseQuery.js +3 -3
- package/dist/esm/createUseQuery.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +4 -3
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +4 -3
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createZeroClient.js +19 -4
- package/dist/esm/createZeroClient.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +28 -5
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +29 -5
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +5 -2
- package/dist/esm/createZeroServer.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +5 -2
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +5 -2
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/generate.js +486 -32
- package/dist/esm/generate.js.map +2 -2
- package/dist/esm/generate.mjs +459 -40
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +813 -52
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.js +252 -0
- package/dist/esm/generate.test.js.map +1 -1
- package/dist/esm/generate.test.mjs +251 -0
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +251 -0
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.js +6 -4
- package/dist/esm/helpers/createMutators.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +6 -4
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +13 -6
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +110 -2
- package/src/createUseQuery.tsx +15 -6
- package/src/createZeroClient.tsx +42 -6
- package/src/createZeroServer.ts +9 -0
- package/src/generate.test.ts +340 -0
- package/src/generate.ts +863 -43
- package/src/helpers/createMutators.ts +22 -8
- package/types/createUseQuery.d.ts +2 -1
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +10 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +7 -1
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/generate.d.ts +1 -0
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/createMutators.d.ts +3 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
package/dist/cjs/generate.js
CHANGED
|
@@ -109,6 +109,7 @@ this folder is auto-generated by on-zero. do not edit files here directly.
|
|
|
109
109
|
- \`tables.ts\` - exports table schemas for type inference
|
|
110
110
|
- \`groupedQueries.ts\` - namespaced query re-exports for client setup
|
|
111
111
|
- \`syncedQueries.ts\` - namespaced syncedQuery wrappers for server setup
|
|
112
|
+
- \`syncedMutations.ts\` - valibot validators for mutation args (server auto-validation)
|
|
112
113
|
|
|
113
114
|
## usage guidelines
|
|
114
115
|
|
|
@@ -179,22 +180,7 @@ import * as v from 'valibot'
|
|
|
179
180
|
import * as Queries from './groupedQueries'
|
|
180
181
|
`, namespaceDefs = sortedFiles.map((file) => {
|
|
181
182
|
const queryDefs = queryByFile.get(file).sort((a, b) => a.name.localeCompare(b.name)).map((q) => {
|
|
182
|
-
const
|
|
183
|
-
`).filter((l) => l.trim()), schemaLineIndex = lines.findIndex(
|
|
184
|
-
(l) => l.startsWith("export const QueryParams")
|
|
185
|
-
);
|
|
186
|
-
let validatorDef = "";
|
|
187
|
-
if (schemaLineIndex !== -1) {
|
|
188
|
-
const schemaLines = [];
|
|
189
|
-
let openBraces = 0, started = !1;
|
|
190
|
-
for (let i = schemaLineIndex; i < lines.length; i++) {
|
|
191
|
-
const line = lines[i], cleaned = started ? line : line.replace("export const QueryParams = ", "");
|
|
192
|
-
if (schemaLines.push(cleaned), started = !0, openBraces += (cleaned.match(/\{/g) || []).length, openBraces -= (cleaned.match(/\}/g) || []).length, openBraces += (cleaned.match(/\(/g) || []).length, openBraces -= (cleaned.match(/\)/g) || []).length, openBraces === 0 && schemaLines.length > 0)
|
|
193
|
-
break;
|
|
194
|
-
}
|
|
195
|
-
validatorDef = schemaLines.join(`
|
|
196
|
-
`);
|
|
197
|
-
}
|
|
183
|
+
const validatorDef = q.valibotCode.trim();
|
|
198
184
|
if (q.params === "void" || !validatorDef)
|
|
199
185
|
return ` ${q.name}: defineQuery(() => Queries.${file}.${q.name}()),`;
|
|
200
186
|
const indentedValidator = validatorDef.split(`
|
|
@@ -221,6 +207,372 @@ ${queriesObject}
|
|
|
221
207
|
})
|
|
222
208
|
`;
|
|
223
209
|
}
|
|
210
|
+
function createTypeResolver(ts, files, dir) {
|
|
211
|
+
const configPath = ts.findConfigFile(dir, ts.sys.fileExists, "tsconfig.json");
|
|
212
|
+
let compilerOptions = {
|
|
213
|
+
target: ts.ScriptTarget.Latest,
|
|
214
|
+
module: ts.ModuleKind.ESNext,
|
|
215
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
216
|
+
strict: !1,
|
|
217
|
+
skipLibCheck: !0,
|
|
218
|
+
noEmit: !0
|
|
219
|
+
};
|
|
220
|
+
if (configPath) {
|
|
221
|
+
const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
222
|
+
if (configFile.config) {
|
|
223
|
+
const parsed = ts.parseJsonConfigFileContent(
|
|
224
|
+
configFile.config,
|
|
225
|
+
ts.sys,
|
|
226
|
+
(0, import_node_path.dirname)(configPath)
|
|
227
|
+
);
|
|
228
|
+
compilerOptions = { ...compilerOptions, ...parsed.options };
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const fileMap = /* @__PURE__ */ new Map();
|
|
232
|
+
for (const f of files)
|
|
233
|
+
fileMap.set(f.path, f.content);
|
|
234
|
+
const host = ts.createCompilerHost(compilerOptions), originalGetSourceFile = host.getSourceFile.bind(host);
|
|
235
|
+
host.getSourceFile = (fileName, languageVersion, onError) => {
|
|
236
|
+
const content = fileMap.get(fileName);
|
|
237
|
+
return content !== void 0 ? ts.createSourceFile(fileName, content, languageVersion, !0) : originalGetSourceFile(fileName, languageVersion, onError);
|
|
238
|
+
}, host.fileExists = (fileName) => fileMap.has(fileName) || ts.sys.fileExists(fileName), host.readFile = (fileName) => fileMap.get(fileName) ?? ts.sys.readFile(fileName);
|
|
239
|
+
const program = ts.createProgram(
|
|
240
|
+
files.map((f) => f.path),
|
|
241
|
+
compilerOptions,
|
|
242
|
+
host
|
|
243
|
+
), checker = program.getTypeChecker();
|
|
244
|
+
return {
|
|
245
|
+
program,
|
|
246
|
+
checker,
|
|
247
|
+
// resolve a type annotation node to a ts.Type
|
|
248
|
+
resolveType(node) {
|
|
249
|
+
try {
|
|
250
|
+
return checker.getTypeFromTypeNode(node);
|
|
251
|
+
} catch {
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
// convert a resolved type to valibot code
|
|
256
|
+
typeToValibot(type) {
|
|
257
|
+
return tsTypeToValibot(ts, checker, type);
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
function resolveParamType(ts, resolver, sourceFile, exportName, paramIndex) {
|
|
262
|
+
let result = null;
|
|
263
|
+
return ts.forEachChild(sourceFile, (node) => {
|
|
264
|
+
if (result || !ts.isVariableStatement(node) || !node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword)) return;
|
|
265
|
+
const decl = node.declarationList.declarations[0];
|
|
266
|
+
if (!(!decl || !ts.isVariableDeclaration(decl)) && decl.name.getText(sourceFile) === exportName && decl.initializer && ts.isArrowFunction(decl.initializer)) {
|
|
267
|
+
const param = decl.initializer.parameters[paramIndex];
|
|
268
|
+
param?.type && (result = resolver.resolveType(param.type));
|
|
269
|
+
}
|
|
270
|
+
}), result;
|
|
271
|
+
}
|
|
272
|
+
function resolveMutationParamTypes(ts, resolver, sourceFile) {
|
|
273
|
+
const resolved = /* @__PURE__ */ new Map();
|
|
274
|
+
return ts.forEachChild(sourceFile, (node) => {
|
|
275
|
+
if (!ts.isVariableStatement(node) || !node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword)) return;
|
|
276
|
+
const decl = node.declarationList.declarations[0];
|
|
277
|
+
if (!decl || !ts.isVariableDeclaration(decl) || decl.name.getText(sourceFile) !== "mutate" || !decl.initializer || !ts.isCallExpression(decl.initializer)) return;
|
|
278
|
+
const args = decl.initializer.arguments;
|
|
279
|
+
let handlersArg = null;
|
|
280
|
+
for (let i = args.length - 1; i >= 0; i--)
|
|
281
|
+
if (ts.isObjectLiteralExpression(args[i])) {
|
|
282
|
+
handlersArg = args[i];
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
if (handlersArg)
|
|
286
|
+
for (const prop of handlersArg.properties) {
|
|
287
|
+
if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;
|
|
288
|
+
const name = prop.name?.getText(sourceFile);
|
|
289
|
+
if (!name) continue;
|
|
290
|
+
let params = null;
|
|
291
|
+
if (ts.isPropertyAssignment(prop)) {
|
|
292
|
+
const init = prop.initializer;
|
|
293
|
+
(ts.isArrowFunction(init) || ts.isFunctionExpression(init)) && (params = init.parameters);
|
|
294
|
+
} else ts.isMethodDeclaration(prop) && (params = prop.parameters);
|
|
295
|
+
if (!params || params.length < 2) continue;
|
|
296
|
+
const typeNode = params[1].type;
|
|
297
|
+
if (!typeNode) continue;
|
|
298
|
+
const expanded = resolver.resolveType(typeNode);
|
|
299
|
+
expanded && resolved.set(name, expanded);
|
|
300
|
+
}
|
|
301
|
+
}), resolved;
|
|
302
|
+
}
|
|
303
|
+
function extractMutationsFromModel(ts, sourceFile, content, _fileName, silent, typeToValibot, resolvedTypes, resolvedTypeToValibot) {
|
|
304
|
+
let mutateNode = null;
|
|
305
|
+
if (ts.forEachChild(sourceFile, (node) => {
|
|
306
|
+
if (!ts.isVariableStatement(node) || !node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword)) return;
|
|
307
|
+
const decl = node.declarationList.declarations[0];
|
|
308
|
+
!decl || !ts.isVariableDeclaration(decl) || decl.name.getText(sourceFile) === "mutate" && decl.initializer && ts.isCallExpression(decl.initializer) && (mutateNode = decl.initializer);
|
|
309
|
+
}), !mutateNode) return null;
|
|
310
|
+
const args = mutateNode.arguments, hasCRUD = args.length >= 2;
|
|
311
|
+
let handlersArg = null;
|
|
312
|
+
args.length === 1 && ts.isObjectLiteralExpression(args[0]) ? handlersArg = args[0] : args.length === 3 && ts.isObjectLiteralExpression(args[2]) && (handlersArg = args[2]);
|
|
313
|
+
const columns = {}, primaryKeys = [];
|
|
314
|
+
hasCRUD && extractSchemaColumns(ts, sourceFile, columns, primaryKeys);
|
|
315
|
+
const custom = [];
|
|
316
|
+
if (handlersArg)
|
|
317
|
+
for (const prop of handlersArg.properties) {
|
|
318
|
+
if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;
|
|
319
|
+
const name = prop.name?.getText(sourceFile);
|
|
320
|
+
if (!name) continue;
|
|
321
|
+
let params = null;
|
|
322
|
+
if (ts.isPropertyAssignment(prop)) {
|
|
323
|
+
const init = prop.initializer;
|
|
324
|
+
(ts.isArrowFunction(init) || ts.isFunctionExpression(init)) && (params = init.parameters);
|
|
325
|
+
} else ts.isMethodDeclaration(prop) && (params = prop.parameters);
|
|
326
|
+
if (!params) continue;
|
|
327
|
+
if (params.length < 2) {
|
|
328
|
+
custom.push({ name, paramType: "void", valibotCode: "" });
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
const paramType = params[1].type?.getText(sourceFile) || "unknown";
|
|
332
|
+
if (paramType === "unknown") {
|
|
333
|
+
custom.push({ name, paramType: "unknown", valibotCode: "" });
|
|
334
|
+
continue;
|
|
335
|
+
}
|
|
336
|
+
let valibotCode = typeToValibot(paramType);
|
|
337
|
+
if (!valibotCode && resolvedTypes && resolvedTypeToValibot) {
|
|
338
|
+
const resolvedType = resolvedTypes.get(name);
|
|
339
|
+
resolvedType && (valibotCode = resolvedTypeToValibot(resolvedType));
|
|
340
|
+
}
|
|
341
|
+
custom.push({
|
|
342
|
+
name,
|
|
343
|
+
paramType,
|
|
344
|
+
valibotCode: valibotCode || ""
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
return {
|
|
348
|
+
modelName: "",
|
|
349
|
+
hasCRUD,
|
|
350
|
+
columns,
|
|
351
|
+
primaryKeys,
|
|
352
|
+
custom
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
function extractSchemaColumns(ts, sourceFile, columns, primaryKeys) {
|
|
356
|
+
function visit(node) {
|
|
357
|
+
if (ts.isCallExpression(node)) {
|
|
358
|
+
const text = node.expression.getText(sourceFile);
|
|
359
|
+
if (text.endsWith(".primaryKey"))
|
|
360
|
+
for (const arg of node.arguments)
|
|
361
|
+
ts.isStringLiteral(arg) && primaryKeys.push(arg.text);
|
|
362
|
+
if (text.endsWith(".columns") && node.arguments.length === 1) {
|
|
363
|
+
const obj = node.arguments[0];
|
|
364
|
+
if (ts.isObjectLiteralExpression(obj))
|
|
365
|
+
for (const prop of obj.properties) {
|
|
366
|
+
if (!ts.isPropertyAssignment(prop)) continue;
|
|
367
|
+
const colName = prop.name?.getText(sourceFile);
|
|
368
|
+
if (!colName) continue;
|
|
369
|
+
const initText = prop.initializer.getText(sourceFile), colType = parseColumnType(initText);
|
|
370
|
+
columns[colName] = colType;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
ts.forEachChild(node, visit);
|
|
375
|
+
}
|
|
376
|
+
visit(sourceFile);
|
|
377
|
+
}
|
|
378
|
+
function parseColumnType(initText) {
|
|
379
|
+
const optional = initText.includes(".optional()");
|
|
380
|
+
let type = "string";
|
|
381
|
+
return initText.startsWith("number(") ? type = "number" : initText.startsWith("boolean(") ? type = "boolean" : initText.startsWith("json(") || initText.startsWith("json<") ? type = "json" : initText.startsWith("enumeration(") && (type = "enum"), { type, optional };
|
|
382
|
+
}
|
|
383
|
+
function columnTypeToValibot(col) {
|
|
384
|
+
let base;
|
|
385
|
+
switch (col.type) {
|
|
386
|
+
case "string":
|
|
387
|
+
base = "v.string()";
|
|
388
|
+
break;
|
|
389
|
+
case "number":
|
|
390
|
+
base = "v.number()";
|
|
391
|
+
break;
|
|
392
|
+
case "boolean":
|
|
393
|
+
base = "v.boolean()";
|
|
394
|
+
break;
|
|
395
|
+
case "json":
|
|
396
|
+
base = "v.unknown()";
|
|
397
|
+
break;
|
|
398
|
+
case "enum":
|
|
399
|
+
base = "v.string()";
|
|
400
|
+
break;
|
|
401
|
+
default:
|
|
402
|
+
base = "v.unknown()";
|
|
403
|
+
}
|
|
404
|
+
return col.optional ? `v.optional(v.nullable(${base}))` : base;
|
|
405
|
+
}
|
|
406
|
+
function schemaColumnsToValibot(columns, primaryKeys, mode) {
|
|
407
|
+
const entries = [];
|
|
408
|
+
if (mode === "delete")
|
|
409
|
+
for (const pk of primaryKeys) {
|
|
410
|
+
const col = columns[pk];
|
|
411
|
+
col && entries.push(`${pk}: ${columnTypeToValibot({ ...col, optional: !1 })}`);
|
|
412
|
+
}
|
|
413
|
+
else if (mode === "update")
|
|
414
|
+
for (const [name, col] of Object.entries(columns))
|
|
415
|
+
primaryKeys.includes(name) ? entries.push(`${name}: ${columnTypeToValibot({ ...col, optional: !1 })}`) : entries.push(`${name}: ${columnTypeToValibot({ ...col, optional: !0 })}`);
|
|
416
|
+
else
|
|
417
|
+
for (const [name, col] of Object.entries(columns))
|
|
418
|
+
entries.push(`${name}: ${columnTypeToValibot(col)}`);
|
|
419
|
+
return `v.object({
|
|
420
|
+
${entries.join(`,
|
|
421
|
+
`)},
|
|
422
|
+
})`;
|
|
423
|
+
}
|
|
424
|
+
function generateSyncedMutationsFile(modelMutations) {
|
|
425
|
+
return `// auto-generated by: on-zero generate
|
|
426
|
+
// mutation validators derived from model schemas and handler types
|
|
427
|
+
import * as v from 'valibot'
|
|
428
|
+
|
|
429
|
+
export const mutationValidators = {
|
|
430
|
+
${[...modelMutations].sort(
|
|
431
|
+
(a, b) => a.modelName.localeCompare(b.modelName)
|
|
432
|
+
).map((model) => {
|
|
433
|
+
const entries = [];
|
|
434
|
+
if (model.hasCRUD && Object.keys(model.columns).length > 0)
|
|
435
|
+
for (const mode of ["insert", "update", "delete"])
|
|
436
|
+
if (model.custom.some((m) => m.name === mode)) {
|
|
437
|
+
const customMut = model.custom.find((m) => m.name === mode);
|
|
438
|
+
customMut.valibotCode ? entries.push(
|
|
439
|
+
` ${mode}: ${extractValibotExpression(customMut.valibotCode)},`
|
|
440
|
+
) : entries.push(
|
|
441
|
+
` ${mode}: ${schemaColumnsToValibot(model.columns, model.primaryKeys, mode)},`
|
|
442
|
+
);
|
|
443
|
+
} else
|
|
444
|
+
entries.push(
|
|
445
|
+
` ${mode}: ${schemaColumnsToValibot(model.columns, model.primaryKeys, mode)},`
|
|
446
|
+
);
|
|
447
|
+
for (const mut of model.custom)
|
|
448
|
+
if (!(model.hasCRUD && ["insert", "update", "delete", "upsert"].includes(mut.name))) {
|
|
449
|
+
if (mut.paramType === "void" || !mut.valibotCode) {
|
|
450
|
+
entries.push(` ${mut.name}: v.void_(),`);
|
|
451
|
+
continue;
|
|
452
|
+
}
|
|
453
|
+
entries.push(` ${mut.name}: ${extractValibotExpression(mut.valibotCode)},`);
|
|
454
|
+
}
|
|
455
|
+
return ` ${model.modelName}: {
|
|
456
|
+
${entries.join(`
|
|
457
|
+
`)}
|
|
458
|
+
},`;
|
|
459
|
+
}).join(`
|
|
460
|
+
`)}
|
|
461
|
+
}
|
|
462
|
+
`;
|
|
463
|
+
}
|
|
464
|
+
function extractValibotExpression(valibotCode) {
|
|
465
|
+
return valibotCode.trim() || "v.unknown()";
|
|
466
|
+
}
|
|
467
|
+
function parseTypeString(type) {
|
|
468
|
+
if (type = type.trim(), type === "string") return "v.string()";
|
|
469
|
+
if (type === "number") return "v.number()";
|
|
470
|
+
if (type === "boolean") return "v.boolean()";
|
|
471
|
+
if (type === "void" || type === "undefined") return "v.void_()";
|
|
472
|
+
if (type === "null") return "v.null_()";
|
|
473
|
+
if (type === "any" || type === "unknown") return "v.unknown()";
|
|
474
|
+
if (type.startsWith("{") && type.endsWith("}")) {
|
|
475
|
+
const inner = type.slice(1, -1).trim();
|
|
476
|
+
if (!inner) return "v.object({})";
|
|
477
|
+
const normalized = inner.replace(/\n/g, "; ").replace(/;\s*;/g, ";"), entries = [];
|
|
478
|
+
for (const part of normalized.split(";")) {
|
|
479
|
+
const trimmed = part.trim().replace(/,\s*$/, "");
|
|
480
|
+
if (!trimmed) continue;
|
|
481
|
+
const match = trimmed.match(/^(?:readonly\s+)?(\w+)(\?)?:\s*(.+)$/);
|
|
482
|
+
if (!match) continue;
|
|
483
|
+
const [, name, opt, typeStr] = match, parsed = parseTypeString(typeStr.trim());
|
|
484
|
+
if (!parsed) return null;
|
|
485
|
+
let val = parsed;
|
|
486
|
+
opt && (val = `v.optional(${val})`), entries.push(`${name}: ${val}`);
|
|
487
|
+
}
|
|
488
|
+
return entries.length === 0 ? "v.object({})" : `v.object({
|
|
489
|
+
${entries.join(`,
|
|
490
|
+
`)},
|
|
491
|
+
})`;
|
|
492
|
+
}
|
|
493
|
+
if (type.endsWith("[]")) {
|
|
494
|
+
const inner = parseTypeString(type.slice(0, -2).trim());
|
|
495
|
+
return inner ? `v.array(${inner})` : null;
|
|
496
|
+
}
|
|
497
|
+
return null;
|
|
498
|
+
}
|
|
499
|
+
function tsTypeToValibot(ts, checker, type, seen) {
|
|
500
|
+
seen || (seen = /* @__PURE__ */ new Set());
|
|
501
|
+
const flags = type.getFlags();
|
|
502
|
+
if (flags & (ts.TypeFlags.Object | ts.TypeFlags.Intersection)) {
|
|
503
|
+
if (seen.has(type)) return "v.unknown()";
|
|
504
|
+
seen.add(type);
|
|
505
|
+
}
|
|
506
|
+
const recurse = (t) => tsTypeToValibot(ts, checker, t, seen);
|
|
507
|
+
if (flags & ts.TypeFlags.String) return "v.string()";
|
|
508
|
+
if (flags & ts.TypeFlags.Number) return "v.number()";
|
|
509
|
+
if (flags & ts.TypeFlags.Boolean) return "v.boolean()";
|
|
510
|
+
if (flags & ts.TypeFlags.Void || flags & ts.TypeFlags.Undefined) return "v.void_()";
|
|
511
|
+
if (flags & ts.TypeFlags.Null) return "v.null_()";
|
|
512
|
+
if (flags & ts.TypeFlags.Any || flags & ts.TypeFlags.Unknown) return "v.unknown()";
|
|
513
|
+
if (flags & ts.TypeFlags.Never) return "v.never()";
|
|
514
|
+
if (flags & ts.TypeFlags.StringLiteral)
|
|
515
|
+
return `v.literal(${JSON.stringify(type.value)})`;
|
|
516
|
+
if (flags & ts.TypeFlags.NumberLiteral)
|
|
517
|
+
return `v.literal(${type.value})`;
|
|
518
|
+
if (flags & ts.TypeFlags.BooleanLiteral)
|
|
519
|
+
return `v.literal(${type.intrinsicName === "true"})`;
|
|
520
|
+
if (type.isUnion()) {
|
|
521
|
+
const members = type.types, hasNull = members.some((t) => t.getFlags() & ts.TypeFlags.Null), hasUndefined = members.some(
|
|
522
|
+
(t) => t.getFlags() & (ts.TypeFlags.Undefined | ts.TypeFlags.Void)
|
|
523
|
+
), rest = members.filter(
|
|
524
|
+
(t) => !(t.getFlags() & (ts.TypeFlags.Null | ts.TypeFlags.Undefined | ts.TypeFlags.Void))
|
|
525
|
+
);
|
|
526
|
+
if (rest.length === 2 && rest.every((t) => t.getFlags() & ts.TypeFlags.BooleanLiteral)) {
|
|
527
|
+
let inner2 = "v.boolean()";
|
|
528
|
+
return hasNull && (inner2 = `v.nullable(${inner2})`), hasUndefined && (inner2 = `v.optional(${inner2})`), inner2;
|
|
529
|
+
}
|
|
530
|
+
if (rest.length === 0) return "v.unknown()";
|
|
531
|
+
let inner = rest.length === 1 ? recurse(rest[0]) : `v.union([${rest.map((t) => recurse(t)).join(", ")}])`;
|
|
532
|
+
return hasNull && (inner = `v.nullable(${inner})`), hasUndefined && (inner = `v.optional(${inner})`), inner;
|
|
533
|
+
}
|
|
534
|
+
const resolveSymbolType = (prop) => prop.valueDeclaration ? checker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration) : prop.declarations?.[0] ? checker.getTypeOfSymbolAtLocation(prop, prop.declarations[0]) : checker.getDeclaredTypeOfSymbol(prop);
|
|
535
|
+
if (type.isIntersection()) {
|
|
536
|
+
const props2 = type.getProperties();
|
|
537
|
+
if (props2.length === 0) return "v.object({})";
|
|
538
|
+
const entries = [];
|
|
539
|
+
for (const prop of props2) {
|
|
540
|
+
const propType = resolveSymbolType(prop), isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional);
|
|
541
|
+
let val = recurse(propType);
|
|
542
|
+
isOptional && !val.startsWith("v.optional(") && (val = `v.optional(${val})`), entries.push(`${prop.getName()}: ${val}`);
|
|
543
|
+
}
|
|
544
|
+
return `v.object({
|
|
545
|
+
${entries.join(`,
|
|
546
|
+
`)},
|
|
547
|
+
})`;
|
|
548
|
+
}
|
|
549
|
+
const props = type.getProperties();
|
|
550
|
+
if (props.length > 0 && (type.getFlags() & ts.TypeFlags.Object || type.objectFlags)) {
|
|
551
|
+
const objectFlags = type.objectFlags ?? 0;
|
|
552
|
+
if (objectFlags & ts.ObjectFlags.Reference) {
|
|
553
|
+
const typeRef = type, name = type.getSymbol()?.getName();
|
|
554
|
+
if ((name === "Array" || name === "ReadonlyArray") && typeRef.typeArguments?.length === 1)
|
|
555
|
+
return `v.array(${recurse(typeRef.typeArguments[0])})`;
|
|
556
|
+
}
|
|
557
|
+
if (objectFlags & ts.ObjectFlags.Tuple)
|
|
558
|
+
return `v.tuple([${(type.typeArguments || []).map((t) => recurse(t)).join(", ")}])`;
|
|
559
|
+
const entries = [];
|
|
560
|
+
for (const prop of props) {
|
|
561
|
+
const propType = resolveSymbolType(prop), isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional);
|
|
562
|
+
let val = recurse(propType);
|
|
563
|
+
isOptional && !val.startsWith("v.optional(") && (val = `v.optional(${val})`), entries.push(`${prop.getName()}: ${val}`);
|
|
564
|
+
}
|
|
565
|
+
return entries.length === 0 ? "v.object({})" : `v.object({
|
|
566
|
+
${entries.join(`,
|
|
567
|
+
`)},
|
|
568
|
+
})`;
|
|
569
|
+
}
|
|
570
|
+
const stringIndex = type.getStringIndexType();
|
|
571
|
+
if (stringIndex)
|
|
572
|
+
return `v.record(v.string(), ${recurse(stringIndex)})`;
|
|
573
|
+
const numberIndex = type.getNumberIndexType();
|
|
574
|
+
return numberIndex ? `v.record(v.number(), ${recurse(numberIndex)})` : "v.unknown()";
|
|
575
|
+
}
|
|
224
576
|
async function generate(options) {
|
|
225
577
|
const { dir, after, silent } = options, baseDir = (0, import_node_path.resolve)(dir), modelsDir = (0, import_node_path.resolve)(baseDir, "models"), generatedDir = (0, import_node_path.resolve)(baseDir, "generated"), queriesDir = (0, import_node_path.resolve)(baseDir, "queries");
|
|
226
578
|
(0, import_node_fs.existsSync)(generatedDir) || (0, import_node_fs.mkdirSync)(generatedDir, { recursive: !0 }), loadCache();
|
|
@@ -241,9 +593,27 @@ async function generate(options) {
|
|
|
241
593
|
generateTablesFile(filesWithSchema)
|
|
242
594
|
),
|
|
243
595
|
writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "README.md"), generateReadmeFile())
|
|
244
|
-
].filter(Boolean).length, queryCount = 0;
|
|
596
|
+
].filter(Boolean).length, queryCount = 0, mutationCount = 0;
|
|
597
|
+
const ts = await import("typescript"), typeToValibot = (paramType) => {
|
|
598
|
+
try {
|
|
599
|
+
return parseTypeString(paramType.trim());
|
|
600
|
+
} catch {
|
|
601
|
+
return null;
|
|
602
|
+
}
|
|
603
|
+
};
|
|
245
604
|
if ((0, import_node_fs.existsSync)(queriesDir)) {
|
|
246
|
-
const
|
|
605
|
+
const queryFiles = (0, import_node_fs.readdirSync)(queriesDir).filter((f) => f.endsWith(".ts")), allQueries = [];
|
|
606
|
+
let queryResolver = null;
|
|
607
|
+
const getQueryResolver = () => {
|
|
608
|
+
if (!queryResolver) {
|
|
609
|
+
const allFiles = (0, import_node_fs.readdirSync)(queriesDir).filter((f) => f.endsWith(".ts")).map((f) => ({
|
|
610
|
+
path: (0, import_node_path.resolve)(queriesDir, f),
|
|
611
|
+
content: (0, import_node_fs.readFileSync)((0, import_node_path.resolve)(queriesDir, f), "utf-8")
|
|
612
|
+
}));
|
|
613
|
+
queryResolver = createTypeResolver(ts, allFiles, queriesDir);
|
|
614
|
+
}
|
|
615
|
+
return queryResolver;
|
|
616
|
+
};
|
|
247
617
|
for (const file of queryFiles) {
|
|
248
618
|
const filePath = (0, import_node_path.resolve)(queriesDir, file), fileBaseName = (0, import_node_path.basename)(file, ".ts");
|
|
249
619
|
try {
|
|
@@ -266,17 +636,26 @@ async function generate(options) {
|
|
|
266
636
|
const params = declaration.initializer.parameters;
|
|
267
637
|
let paramType = "void";
|
|
268
638
|
params.length > 0 && (paramType = params[0].type?.getText(sourceFile) || "unknown");
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
639
|
+
let valibotCode = typeToValibot(paramType);
|
|
640
|
+
if (!valibotCode && params.length > 0 && params[0].type) {
|
|
641
|
+
const resolver = getQueryResolver(), resolverSourceFile = resolver.program.getSourceFile(filePath);
|
|
642
|
+
if (resolverSourceFile) {
|
|
643
|
+
const resolvedType = resolveParamType(
|
|
644
|
+
ts,
|
|
645
|
+
resolver,
|
|
646
|
+
resolverSourceFile,
|
|
647
|
+
name,
|
|
648
|
+
0
|
|
649
|
+
);
|
|
650
|
+
resolvedType && (valibotCode = resolver.typeToValibot(resolvedType));
|
|
651
|
+
}
|
|
279
652
|
}
|
|
653
|
+
valibotCode ? allQueries.push({
|
|
654
|
+
name,
|
|
655
|
+
params: paramType,
|
|
656
|
+
valibotCode,
|
|
657
|
+
sourceFile: fileBaseName
|
|
658
|
+
}) : !silent && paramType !== "void" && console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
|
|
280
659
|
}
|
|
281
660
|
}
|
|
282
661
|
});
|
|
@@ -294,8 +673,82 @@ async function generate(options) {
|
|
|
294
673
|
);
|
|
295
674
|
groupedChanged && filesChanged++, syncedChanged && filesChanged++;
|
|
296
675
|
}
|
|
297
|
-
|
|
298
|
-
|
|
676
|
+
const allModelMutations = [], mutationFiles = [], unresolvedModels = [];
|
|
677
|
+
for (const file of allModelFiles) {
|
|
678
|
+
const filePath = (0, import_node_path.resolve)(modelsDir, file), fileBaseName = (0, import_node_path.basename)(file, ".ts");
|
|
679
|
+
try {
|
|
680
|
+
const content = (0, import_node_fs.readFileSync)(filePath, "utf-8");
|
|
681
|
+
if (!content.includes("export const mutate")) continue;
|
|
682
|
+
mutationFiles.push({ path: filePath, content, baseName: fileBaseName });
|
|
683
|
+
const sourceFile = ts.createSourceFile(
|
|
684
|
+
filePath,
|
|
685
|
+
content,
|
|
686
|
+
ts.ScriptTarget.Latest,
|
|
687
|
+
!0
|
|
688
|
+
), result = extractMutationsFromModel(
|
|
689
|
+
ts,
|
|
690
|
+
sourceFile,
|
|
691
|
+
content,
|
|
692
|
+
filePath,
|
|
693
|
+
!!silent,
|
|
694
|
+
typeToValibot
|
|
695
|
+
);
|
|
696
|
+
result && (result.modelName = fileBaseName, allModelMutations.push(result), result.custom.some(
|
|
697
|
+
(m) => m.paramType !== "void" && m.paramType !== "unknown" && !m.valibotCode
|
|
698
|
+
) && unresolvedModels.push({ baseName: fileBaseName, filePath }));
|
|
699
|
+
} catch (err) {
|
|
700
|
+
silent || console.error(`Error extracting mutations from ${file}:`, err);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
if (unresolvedModels.length > 0) {
|
|
704
|
+
const collectTsFiles = (dir2) => {
|
|
705
|
+
const results = [];
|
|
706
|
+
for (const entry of (0, import_node_fs.readdirSync)(dir2, { withFileTypes: !0 })) {
|
|
707
|
+
const fullPath = (0, import_node_path.resolve)(dir2, entry.name);
|
|
708
|
+
entry.isDirectory() && entry.name !== "node_modules" ? results.push(...collectTsFiles(fullPath)) : entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts") && results.push({ path: fullPath, content: (0, import_node_fs.readFileSync)(fullPath, "utf-8") });
|
|
709
|
+
}
|
|
710
|
+
return results;
|
|
711
|
+
}, allFiles = collectTsFiles(baseDir), modelResolver = createTypeResolver(ts, allFiles, baseDir);
|
|
712
|
+
for (const { baseName, filePath } of unresolvedModels) {
|
|
713
|
+
const resolverSourceFile = modelResolver.program.getSourceFile(filePath);
|
|
714
|
+
if (!resolverSourceFile) continue;
|
|
715
|
+
const resolvedTypes = resolveMutationParamTypes(
|
|
716
|
+
ts,
|
|
717
|
+
modelResolver,
|
|
718
|
+
resolverSourceFile
|
|
719
|
+
);
|
|
720
|
+
if (resolvedTypes.size === 0) continue;
|
|
721
|
+
const content = (0, import_node_fs.readFileSync)(filePath, "utf-8"), sourceFile = ts.createSourceFile(
|
|
722
|
+
filePath,
|
|
723
|
+
content,
|
|
724
|
+
ts.ScriptTarget.Latest,
|
|
725
|
+
!0
|
|
726
|
+
), result = extractMutationsFromModel(
|
|
727
|
+
ts,
|
|
728
|
+
sourceFile,
|
|
729
|
+
content,
|
|
730
|
+
filePath,
|
|
731
|
+
!!silent,
|
|
732
|
+
typeToValibot,
|
|
733
|
+
resolvedTypes,
|
|
734
|
+
modelResolver.typeToValibot
|
|
735
|
+
);
|
|
736
|
+
if (result) {
|
|
737
|
+
result.modelName = baseName;
|
|
738
|
+
const idx = allModelMutations.findIndex((m) => m.modelName === baseName);
|
|
739
|
+
idx >= 0 && (allModelMutations[idx] = result);
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
for (const model of allModelMutations)
|
|
744
|
+
model.hasCRUD && (mutationCount += 3), mutationCount += model.custom.filter(
|
|
745
|
+
(m) => !model.hasCRUD || !["insert", "update", "delete", "upsert"].includes(m.name)
|
|
746
|
+
).length;
|
|
747
|
+
if (allModelMutations.length > 0 && writeFileIfChanged(
|
|
748
|
+
(0, import_node_path.resolve)(generatedDir, "syncedMutations.ts"),
|
|
749
|
+
generateSyncedMutationsFile(allModelMutations)
|
|
750
|
+
) && filesChanged++, filesChanged > 0 && !silent && console.info(
|
|
751
|
+
`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`
|
|
299
752
|
), filesChanged > 0 && after) {
|
|
300
753
|
const { execSync } = await import("node:child_process");
|
|
301
754
|
try {
|
|
@@ -311,7 +764,8 @@ async function generate(options) {
|
|
|
311
764
|
filesChanged,
|
|
312
765
|
modelCount: allModelFiles.length,
|
|
313
766
|
schemaCount: filesWithSchema.length,
|
|
314
|
-
queryCount
|
|
767
|
+
queryCount,
|
|
768
|
+
mutationCount
|
|
315
769
|
};
|
|
316
770
|
}
|
|
317
771
|
async function watch(options) {
|
package/dist/cjs/generate.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/generate.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["inner", "props", "dir"]
|
|
6
6
|
}
|