on-zero 0.4.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/generate-helpers.cjs +309 -0
- package/dist/cjs/generate-helpers.native.js +451 -0
- package/dist/cjs/generate-helpers.native.js.map +1 -0
- package/dist/cjs/generate-lite.cjs +150 -0
- package/dist/cjs/generate-lite.native.js +269 -0
- package/dist/cjs/generate-lite.native.js.map +1 -0
- package/dist/cjs/generate-lite.test.cjs +229 -0
- package/dist/cjs/generate-lite.test.native.js +234 -0
- package/dist/cjs/generate-lite.test.native.js.map +1 -0
- package/dist/cjs/generate.cjs +16 -285
- package/dist/cjs/generate.native.js +18 -432
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +272 -0
- package/dist/esm/generate-helpers.mjs.map +1 -0
- package/dist/esm/generate-helpers.native.js +411 -0
- package/dist/esm/generate-helpers.native.js.map +1 -0
- package/dist/esm/generate-lite.mjs +127 -0
- package/dist/esm/generate-lite.mjs.map +1 -0
- package/dist/esm/generate-lite.native.js +243 -0
- package/dist/esm/generate-lite.native.js.map +1 -0
- package/dist/esm/generate-lite.test.mjs +230 -0
- package/dist/esm/generate-lite.test.mjs.map +1 -0
- package/dist/esm/generate-lite.test.native.js +232 -0
- package/dist/esm/generate-lite.test.native.js.map +1 -0
- package/dist/esm/generate.mjs +6 -275
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +9 -423
- package/dist/esm/generate.native.js.map +1 -1
- package/package.json +7 -2
- package/src/generate-helpers.ts +440 -0
- package/src/generate-lite.test.ts +310 -0
- package/src/generate-lite.ts +333 -0
- package/src/generate.ts +23 -415
- package/types/generate-helpers.d.ts +42 -0
- package/types/generate-helpers.d.ts.map +1 -0
- package/types/generate-lite.d.ts +40 -0
- package/types/generate-lite.d.ts.map +1 -0
- package/types/generate-lite.test.d.ts +2 -0
- package/types/generate-lite.test.d.ts.map +1 -0
- package/types/generate.d.ts +1 -6
- package/types/generate.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
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","modelsDirName","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","silent","resolvedTypes","resolvedTypeToValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","call","extractSchemaColumns","_secondParam_type","paramType","secondParam","resolvedType","visit","text","expression","endsWith","arg","isStringLiteral","obj","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","colName","initText","colType","parseColumnType","optional","includes","startsWith","customType","columnTypeToValibot","col","base","shouldSkipObjectKey","formatObjectKey","test","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","getName","propType","isOptional","SymbolFlags","Optional","props1","objectFlags","_type_objectFlags","ObjectFlags","Reference","_typeRef_typeArguments","typeRef","symbol","getSymbol","name2","typeArguments","Tuple","typeRef1","typeArgs","entries1","prop1","name3","propType1","isOptional1","val1","stringIndex","getStringIndexType"],"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","formatObjectKey","generateGroupedQueriesFile","generateModelsFile","generateReadmeFile","generateSyncedMutationsFile","generateSyncedQueriesFile","generateTablesFile","generateTypesFile","parseColumnType","parseTypeString","shouldSkipObjectKey","hash","s","update","digest","generateCache","generateCachePath","getCacheDir","dir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","cachedHash","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","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","f","value","set","path","err","return","host","createCompilerHost","originalGetSourceFile","getSourceFile","bind","fileName","languageVersion","onError","get","createSourceFile","has","_fileMap_get","program","createProgram","map","f2","checker","getTypeChecker","resolveType","node","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","sourceFile","exportName","paramIndex","result","forEachChild","_node_modifiers","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","name","getText","initializer","isArrowFunction","param","parameters","resolveMutationParamTypes","resolved","isCallExpression","args","arguments","handlersArg","i","length","isObjectLiteralExpression","properties","prop","_prop_name","isPropertyAssignment","isMethodDeclaration","params","init","isFunctionExpression","typeNode","expanded","extractMutationsFromModel","silent","resolvedTypes","resolvedTypeToValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","call","extractSchemaColumns","_secondParam_type","push","paramType","valibotCode","secondParam","resolvedType","visit","text","expression","endsWith","arg","isStringLiteral","obj","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","colName","initText","colType","seen","Set","flags","getFlags","TypeFlags","Object","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","inner","inner1","join","resolveSymbolType","prop2","_prop_declarations","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","isIntersection","props","getProperties","entries","name1","getName","propType","isOptional","SymbolFlags","Optional","val","startsWith","props1","objectFlags","_type_objectFlags","ObjectFlags","Reference","_typeRef_typeArguments","typeRef","symbol","getSymbol","name2","typeArguments","Tuple","typeRef1","typeArgs","entries1","prop1","name3","propType1","isOptional1","val1","stringIndex","getStringIndexType","numberIndex","getNumberIndexType","serializeColumnBuilder","col","zeroType","expr","serverName","optional","generateDrizzleSchemaFile","schema","lines","tableNames","keys","tables","sort","tableName","colEntries","pkArgs","primaryKey","k","relTableNames","relationships","tableName1","rels","relEntries","relBody","relName","hops","hop","fn","cardinality","sf","sourceField","df","destField","destSchema","hopCode","hop2","fn2","sf2","df2","tableList","n","relList","generate","after","baseDir","mutationsDir","usesMutationsDir","modelsDir","modelsDirName","generatedDir","queriesDir","allModelFiles","filesWithSchema","includes","allModelNames","schemaModelNames","writeResults","filesChanged","queryCount","mutationCount","trim","queryFiles","allQueries","queryResolver","getQueryResolver","allFiles2","_loop"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -69,10 +69,15 @@
|
|
|
69
69
|
"types": "./types/createSchemaFromDrizzle.d.ts",
|
|
70
70
|
"import": "./dist/esm/createSchemaFromDrizzle.mjs",
|
|
71
71
|
"require": "./dist/cjs/createSchemaFromDrizzle.cjs"
|
|
72
|
+
},
|
|
73
|
+
"./generate-lite": {
|
|
74
|
+
"types": "./types/generate-lite.d.ts",
|
|
75
|
+
"import": "./dist/esm/generate-lite.mjs",
|
|
76
|
+
"require": "./dist/cjs/generate-lite.cjs"
|
|
72
77
|
}
|
|
73
78
|
},
|
|
74
79
|
"dependencies": {
|
|
75
|
-
"@take-out/helpers": "0.4.
|
|
80
|
+
"@take-out/helpers": "0.4.3",
|
|
76
81
|
"chokidar": "^4.0.3",
|
|
77
82
|
"citty": "^0.1.6",
|
|
78
83
|
"valibot": "^1.1.0"
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
// pure helpers shared by `generate.ts` (node CLI, full type resolution via
|
|
2
|
+
// the typescript compiler API) and `generate-lite.ts` (browser-safe, no
|
|
3
|
+
// typescript dependency). nothing in this file may import `typescript`,
|
|
4
|
+
// `node:fs`, `node:path`, `node:crypto`, or touch process/disk. callers
|
|
5
|
+
// that need those concerns handle them themselves.
|
|
6
|
+
|
|
7
|
+
// shared types
|
|
8
|
+
|
|
9
|
+
export type SchemaColumn = {
|
|
10
|
+
type: string
|
|
11
|
+
optional: boolean
|
|
12
|
+
customType: unknown
|
|
13
|
+
serverName?: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type ExtractedMutation = {
|
|
17
|
+
name: string
|
|
18
|
+
// 'void' | inline type string | unresolved reference
|
|
19
|
+
paramType: string
|
|
20
|
+
// generated valibot code, or '' if skipped (falls back to v.unknown() or v.void_())
|
|
21
|
+
valibotCode: string
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type ModelMutations = {
|
|
25
|
+
modelName: string
|
|
26
|
+
hasCRUD: boolean
|
|
27
|
+
// populated when hasCRUD
|
|
28
|
+
columns: Record<string, SchemaColumn>
|
|
29
|
+
primaryKeys: string[]
|
|
30
|
+
custom: ExtractedMutation[]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// identifier helpers
|
|
34
|
+
|
|
35
|
+
export function shouldSkipObjectKey(name: string): boolean {
|
|
36
|
+
// typescript exposes symbol keys as synthetic names like "__@iterator@851".
|
|
37
|
+
// these cannot come from json mutation payloads and break codegen if emitted.
|
|
38
|
+
return name.startsWith('__@')
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function formatObjectKey(name: string): string {
|
|
42
|
+
return /^[$A-Z_a-z][$\w]*$/.test(name) ? name : JSON.stringify(name)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// user → userPublic is a special case carried over from the existing generator
|
|
46
|
+
export function getModelImportName(name: string): string {
|
|
47
|
+
return name === 'user' ? 'userPublic' : name
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// string-based type parser
|
|
51
|
+
|
|
52
|
+
// simple string-based type parser for inline type annotations from source text.
|
|
53
|
+
// handles: primitives, inline objects { ... }, arrays, void/null/unknown.
|
|
54
|
+
// returns null for type references that cannot be resolved without a type
|
|
55
|
+
// checker (bare identifiers, generics, imported aliases).
|
|
56
|
+
export function parseTypeString(type: string): string | null {
|
|
57
|
+
type = type.trim()
|
|
58
|
+
|
|
59
|
+
// primitives
|
|
60
|
+
if (type === 'string') return 'v.string()'
|
|
61
|
+
if (type === 'number') return 'v.number()'
|
|
62
|
+
if (type === 'boolean') return 'v.boolean()'
|
|
63
|
+
if (type === 'void' || type === 'undefined') return 'v.void_()'
|
|
64
|
+
if (type === 'null') return 'v.null_()'
|
|
65
|
+
if (type === 'any' || type === 'unknown') return 'v.unknown()'
|
|
66
|
+
|
|
67
|
+
// inline object: { key: type; ... }
|
|
68
|
+
if (type.startsWith('{') && type.endsWith('}')) {
|
|
69
|
+
const inner = type.slice(1, -1).trim()
|
|
70
|
+
if (!inner) return 'v.object({})'
|
|
71
|
+
// normalize newlines/commas to semicolons for splitting
|
|
72
|
+
const normalized = inner.replace(/\n/g, '; ').replace(/;\s*;/g, ';')
|
|
73
|
+
const entries: string[] = []
|
|
74
|
+
for (const part of normalized.split(';')) {
|
|
75
|
+
const trimmed = part.trim().replace(/,\s*$/, '')
|
|
76
|
+
if (!trimmed) continue
|
|
77
|
+
const match = trimmed.match(/^(?:readonly\s+)?(\w+)(\?)?:\s*(.+)$/)
|
|
78
|
+
if (!match) continue
|
|
79
|
+
const [, name, opt, typeStr] = match
|
|
80
|
+
const parsed = parseTypeString(typeStr!.trim())
|
|
81
|
+
if (!parsed) return null // can't resolve inner type
|
|
82
|
+
let val = parsed
|
|
83
|
+
if (opt) val = `v.optional(${val})`
|
|
84
|
+
entries.push(`${formatObjectKey(name!)}: ${val}`)
|
|
85
|
+
}
|
|
86
|
+
if (entries.length === 0) return 'v.object({})'
|
|
87
|
+
return `v.object({\n ${entries.join(',\n ')},\n })`
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// array: T[]
|
|
91
|
+
if (type.endsWith('[]')) {
|
|
92
|
+
const inner = parseTypeString(type.slice(0, -2).trim())
|
|
93
|
+
return inner ? `v.array(${inner})` : null
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// unrecognized (type reference, complex generic, etc.)
|
|
97
|
+
return null
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// file-content emitters
|
|
101
|
+
// these take already-parsed data and return the exact file contents the
|
|
102
|
+
// generator should write. they are pure strings-in/strings-out.
|
|
103
|
+
|
|
104
|
+
export function generateModelsFile(modelNames: string[], modelsDirName: string): string {
|
|
105
|
+
const sorted = [...modelNames].sort()
|
|
106
|
+
|
|
107
|
+
const imports = sorted
|
|
108
|
+
.map(
|
|
109
|
+
(name) =>
|
|
110
|
+
`import * as ${getModelImportName(name)} from '../${modelsDirName}/${name}'`,
|
|
111
|
+
)
|
|
112
|
+
.join('\n')
|
|
113
|
+
|
|
114
|
+
const sortedByImportName = [...sorted].sort((a, b) =>
|
|
115
|
+
getModelImportName(a).localeCompare(getModelImportName(b)),
|
|
116
|
+
)
|
|
117
|
+
const modelsObj = `export const models = {\n${sortedByImportName
|
|
118
|
+
.map((name) => ` ${getModelImportName(name)},`)
|
|
119
|
+
.join('\n')}\n}`
|
|
120
|
+
|
|
121
|
+
return `// auto-generated by: on-zero generate\n${imports}\n\n${modelsObj}\n`
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function generateTypesFile(modelNames: string[]): string {
|
|
125
|
+
const sorted = [...modelNames].sort()
|
|
126
|
+
|
|
127
|
+
const typeExports = sorted
|
|
128
|
+
.map((name) => {
|
|
129
|
+
const pascalName = name.charAt(0).toUpperCase() + name.slice(1)
|
|
130
|
+
const schemaName = getModelImportName(name)
|
|
131
|
+
return `export type ${pascalName} = TableInsertRow<typeof schema.${schemaName}>\nexport type ${pascalName}Update = TableUpdateRow<typeof schema.${schemaName}>`
|
|
132
|
+
})
|
|
133
|
+
.join('\n\n')
|
|
134
|
+
|
|
135
|
+
return `import type { TableInsertRow, TableUpdateRow } from 'on-zero'\nimport type * as schema from './tables'\n\n${typeExports}\n`
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export function generateTablesFile(modelNames: string[], modelsDirName: string): string {
|
|
139
|
+
const sorted = [...modelNames].sort()
|
|
140
|
+
|
|
141
|
+
const exports = sorted
|
|
142
|
+
.map(
|
|
143
|
+
(name) =>
|
|
144
|
+
`export { schema as ${getModelImportName(name)} } from '../${modelsDirName}/${name}'`,
|
|
145
|
+
)
|
|
146
|
+
.join('\n')
|
|
147
|
+
|
|
148
|
+
return `// auto-generated by: on-zero generate\n\n${exports}\n`
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function generateReadmeFile(): string {
|
|
152
|
+
return `# generated
|
|
153
|
+
|
|
154
|
+
this folder is auto-generated by on-zero. do not edit files here directly.
|
|
155
|
+
|
|
156
|
+
## what's generated
|
|
157
|
+
|
|
158
|
+
- \`models.ts\` - exports all models from ../models
|
|
159
|
+
- \`types.ts\` - typescript types derived from table schemas
|
|
160
|
+
- \`tables.ts\` - exports table schemas for type inference
|
|
161
|
+
- \`groupedQueries.ts\` - namespaced query re-exports for client setup
|
|
162
|
+
- \`syncedQueries.ts\` - namespaced syncedQuery wrappers for server setup
|
|
163
|
+
- \`syncedMutations.ts\` - valibot validators for mutation args (server auto-validation)
|
|
164
|
+
|
|
165
|
+
## usage guidelines
|
|
166
|
+
|
|
167
|
+
**do not import generated files outside of the data folder.**
|
|
168
|
+
|
|
169
|
+
### queries
|
|
170
|
+
|
|
171
|
+
write your queries as plain functions in \`../queries/\` and import them directly:
|
|
172
|
+
|
|
173
|
+
\`\`\`ts
|
|
174
|
+
// ✅ good - import from queries
|
|
175
|
+
import { channelMessages } from '~/data/queries/message'
|
|
176
|
+
\`\`\`
|
|
177
|
+
|
|
178
|
+
the generated query files are only used internally by zero client/server setup.
|
|
179
|
+
|
|
180
|
+
### types
|
|
181
|
+
|
|
182
|
+
you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
|
|
183
|
+
|
|
184
|
+
\`\`\`ts
|
|
185
|
+
// ❌ okay but not preferred
|
|
186
|
+
import type { Message } from '~/data/generated/types'
|
|
187
|
+
|
|
188
|
+
// ✅ better - re-export from types.ts
|
|
189
|
+
import type { Message } from '~/data/types'
|
|
190
|
+
\`\`\`
|
|
191
|
+
|
|
192
|
+
## regeneration
|
|
193
|
+
|
|
194
|
+
files are regenerated when you run:
|
|
195
|
+
|
|
196
|
+
\`\`\`bash
|
|
197
|
+
bun on-zero generate
|
|
198
|
+
\`\`\`
|
|
199
|
+
|
|
200
|
+
or in watch mode:
|
|
201
|
+
|
|
202
|
+
\`\`\`bash
|
|
203
|
+
bun on-zero generate --watch
|
|
204
|
+
\`\`\`
|
|
205
|
+
|
|
206
|
+
## more info
|
|
207
|
+
|
|
208
|
+
see the [on-zero readme](./node_modules/on-zero/README.md) for full documentation.
|
|
209
|
+
`
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export function generateGroupedQueriesFile(
|
|
213
|
+
queries: Array<{ name: string; sourceFile: string }>,
|
|
214
|
+
): string {
|
|
215
|
+
const sortedFiles = [...new Set(queries.map((q) => q.sourceFile))].sort()
|
|
216
|
+
|
|
217
|
+
const exports = sortedFiles
|
|
218
|
+
.map((file) => `export * as ${file} from '../queries/${file}'`)
|
|
219
|
+
.join('\n')
|
|
220
|
+
|
|
221
|
+
return `/**
|
|
222
|
+
* auto-generated by: on-zero generate
|
|
223
|
+
*
|
|
224
|
+
* grouped query re-exports for minification-safe query identity.
|
|
225
|
+
* this file re-exports all query modules - while this breaks tree-shaking,
|
|
226
|
+
* queries are typically small and few in number even in larger apps.
|
|
227
|
+
*/
|
|
228
|
+
${exports}
|
|
229
|
+
`
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export function generateSyncedQueriesFile(
|
|
233
|
+
queries: Array<{
|
|
234
|
+
name: string
|
|
235
|
+
params: string
|
|
236
|
+
valibotCode: string
|
|
237
|
+
sourceFile: string
|
|
238
|
+
}>,
|
|
239
|
+
): string {
|
|
240
|
+
const queryByFile = new Map<string, typeof queries>()
|
|
241
|
+
for (const q of queries) {
|
|
242
|
+
if (!queryByFile.has(q.sourceFile)) {
|
|
243
|
+
queryByFile.set(q.sourceFile, [])
|
|
244
|
+
}
|
|
245
|
+
queryByFile.get(q.sourceFile)!.push(q)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
const sortedFiles = Array.from(queryByFile.keys()).sort()
|
|
249
|
+
|
|
250
|
+
const imports = `// auto-generated by: on-zero generate
|
|
251
|
+
// server-side query definitions with validators
|
|
252
|
+
import { defineQuery, defineQueries } from '@rocicorp/zero'
|
|
253
|
+
import * as v from 'valibot'
|
|
254
|
+
import * as Queries from './groupedQueries'
|
|
255
|
+
`
|
|
256
|
+
|
|
257
|
+
const namespaceDefs = sortedFiles
|
|
258
|
+
.map((file) => {
|
|
259
|
+
const fileQueries = queryByFile
|
|
260
|
+
.get(file)!
|
|
261
|
+
.sort((a, b) => a.name.localeCompare(b.name))
|
|
262
|
+
|
|
263
|
+
const queryDefs = fileQueries
|
|
264
|
+
.map((q) => {
|
|
265
|
+
const validatorDef = q.valibotCode.trim()
|
|
266
|
+
|
|
267
|
+
if (q.params === 'void' || !validatorDef) {
|
|
268
|
+
return ` ${q.name}: defineQuery(() => Queries.${file}.${q.name}()),`
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const indentedValidator = validatorDef
|
|
272
|
+
.split('\n')
|
|
273
|
+
.map((line, i) => (i === 0 ? line : ` ${line}`))
|
|
274
|
+
.join('\n')
|
|
275
|
+
|
|
276
|
+
return ` ${q.name}: defineQuery(
|
|
277
|
+
${indentedValidator},
|
|
278
|
+
({ args }) => Queries.${file}.${q.name}(args)
|
|
279
|
+
),`
|
|
280
|
+
})
|
|
281
|
+
.join('\n')
|
|
282
|
+
|
|
283
|
+
return `const ${file} = {\n${queryDefs}\n}`
|
|
284
|
+
})
|
|
285
|
+
.join('\n\n')
|
|
286
|
+
|
|
287
|
+
const queriesObject = sortedFiles.map((file) => ` ${file},`).join('\n')
|
|
288
|
+
|
|
289
|
+
return `${imports}
|
|
290
|
+
${namespaceDefs}
|
|
291
|
+
|
|
292
|
+
export const queries = defineQueries({
|
|
293
|
+
${queriesObject}
|
|
294
|
+
})
|
|
295
|
+
`
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// column → valibot conversion helpers
|
|
299
|
+
|
|
300
|
+
export function columnTypeToValibot(col: SchemaColumn): string {
|
|
301
|
+
let base = 'v.string()'
|
|
302
|
+
switch (col.type) {
|
|
303
|
+
case 'string':
|
|
304
|
+
base = 'v.string()'
|
|
305
|
+
break
|
|
306
|
+
case 'number':
|
|
307
|
+
base = 'v.number()'
|
|
308
|
+
break
|
|
309
|
+
case 'boolean':
|
|
310
|
+
base = 'v.boolean()'
|
|
311
|
+
break
|
|
312
|
+
case 'json':
|
|
313
|
+
base = 'v.unknown()'
|
|
314
|
+
break
|
|
315
|
+
case 'enum':
|
|
316
|
+
base = 'v.string()'
|
|
317
|
+
break
|
|
318
|
+
}
|
|
319
|
+
return col.optional ? `v.optional(v.nullable(${base}))` : base
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
export function schemaColumnsToValibot(
|
|
323
|
+
columns: Record<string, SchemaColumn>,
|
|
324
|
+
primaryKeys: string[],
|
|
325
|
+
mode: 'insert' | 'update' | 'delete',
|
|
326
|
+
): string {
|
|
327
|
+
const entries: string[] = []
|
|
328
|
+
|
|
329
|
+
if (mode === 'delete') {
|
|
330
|
+
// only pks
|
|
331
|
+
for (const pk of primaryKeys) {
|
|
332
|
+
const col = columns[pk]
|
|
333
|
+
if (col)
|
|
334
|
+
entries.push(
|
|
335
|
+
`${formatObjectKey(pk)}: ${columnTypeToValibot({ ...col, optional: false })}`,
|
|
336
|
+
)
|
|
337
|
+
}
|
|
338
|
+
} else if (mode === 'update') {
|
|
339
|
+
// pks required, rest optional
|
|
340
|
+
for (const [name, col] of Object.entries(columns)) {
|
|
341
|
+
const isPK = primaryKeys.includes(name)
|
|
342
|
+
if (isPK) {
|
|
343
|
+
entries.push(
|
|
344
|
+
`${formatObjectKey(name)}: ${columnTypeToValibot({ ...col, optional: false })}`,
|
|
345
|
+
)
|
|
346
|
+
} else {
|
|
347
|
+
entries.push(
|
|
348
|
+
`${formatObjectKey(name)}: ${columnTypeToValibot({ ...col, optional: true })}`,
|
|
349
|
+
)
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
} else {
|
|
353
|
+
// insert: all columns as-is
|
|
354
|
+
for (const [name, col] of Object.entries(columns)) {
|
|
355
|
+
entries.push(`${formatObjectKey(name)}: ${columnTypeToValibot(col)}`)
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
return `v.object({\n ${entries.join(',\n ')},\n })`
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// returns as-is since output is already a valibot expression
|
|
363
|
+
export function extractValibotExpression(valibotCode: string): string {
|
|
364
|
+
return valibotCode.trim() || 'v.unknown()'
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// parse a column builder source-text fragment (e.g. "string().optional()") into
|
|
368
|
+
// a SchemaColumn. used by generate-lite.ts when the caller extracts raw
|
|
369
|
+
// column builder text from their AST.
|
|
370
|
+
export function parseColumnType(initText: string): SchemaColumn {
|
|
371
|
+
const optional = initText.includes('.optional()')
|
|
372
|
+
let type: SchemaColumn['type'] = 'string'
|
|
373
|
+
|
|
374
|
+
if (initText.startsWith('number(')) type = 'number'
|
|
375
|
+
else if (initText.startsWith('boolean(')) type = 'boolean'
|
|
376
|
+
else if (initText.startsWith('json(') || initText.startsWith('json<')) type = 'json'
|
|
377
|
+
else if (initText.startsWith('enumeration(')) type = 'enum'
|
|
378
|
+
|
|
379
|
+
return { type, optional, customType: undefined }
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
export function generateSyncedMutationsFile(modelMutations: ModelMutations[]): string {
|
|
383
|
+
const sorted = [...modelMutations].sort((a, b) =>
|
|
384
|
+
a.modelName.localeCompare(b.modelName),
|
|
385
|
+
)
|
|
386
|
+
|
|
387
|
+
const modelDefs = sorted
|
|
388
|
+
.map((model) => {
|
|
389
|
+
const entries: string[] = []
|
|
390
|
+
|
|
391
|
+
// crud validators from schema
|
|
392
|
+
if (model.hasCRUD && Object.keys(model.columns).length > 0) {
|
|
393
|
+
for (const mode of ['insert', 'update', 'delete'] as const) {
|
|
394
|
+
// skip if custom mutation overrides this crud op
|
|
395
|
+
const hasCustomOverride = model.custom.some((m) => m.name === mode)
|
|
396
|
+
if (hasCustomOverride) {
|
|
397
|
+
// use the custom version's validator instead
|
|
398
|
+
const customMut = model.custom.find((m) => m.name === mode)!
|
|
399
|
+
if (customMut.valibotCode) {
|
|
400
|
+
entries.push(
|
|
401
|
+
` ${mode}: ${extractValibotExpression(customMut.valibotCode)},`,
|
|
402
|
+
)
|
|
403
|
+
} else {
|
|
404
|
+
// fall back to schema-derived
|
|
405
|
+
entries.push(
|
|
406
|
+
` ${mode}: ${schemaColumnsToValibot(model.columns, model.primaryKeys, mode)},`,
|
|
407
|
+
)
|
|
408
|
+
}
|
|
409
|
+
} else {
|
|
410
|
+
entries.push(
|
|
411
|
+
` ${mode}: ${schemaColumnsToValibot(model.columns, model.primaryKeys, mode)},`,
|
|
412
|
+
)
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
// custom mutations (excluding crud overrides already handled)
|
|
418
|
+
for (const mut of model.custom) {
|
|
419
|
+
if (model.hasCRUD && ['insert', 'update', 'delete', 'upsert'].includes(mut.name))
|
|
420
|
+
continue
|
|
421
|
+
if (mut.paramType === 'void' || !mut.valibotCode) {
|
|
422
|
+
entries.push(` ${mut.name}: v.void_(),`)
|
|
423
|
+
continue
|
|
424
|
+
}
|
|
425
|
+
entries.push(` ${mut.name}: ${extractValibotExpression(mut.valibotCode)},`)
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
return ` ${model.modelName}: {\n${entries.join('\n')}\n },`
|
|
429
|
+
})
|
|
430
|
+
.join('\n')
|
|
431
|
+
|
|
432
|
+
return `// auto-generated by: on-zero generate
|
|
433
|
+
// mutation validators derived from model schemas and handler types
|
|
434
|
+
import * as v from 'valibot'
|
|
435
|
+
|
|
436
|
+
export const mutationValidators = {
|
|
437
|
+
${modelDefs}
|
|
438
|
+
}
|
|
439
|
+
`
|
|
440
|
+
}
|