@postxl/generators 1.4.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend-rest-api/generators/model-controller.generator.js +109 -11
- package/dist/backend-rest-api/generators/model-controller.generator.js.map +1 -1
- package/dist/backend-rest-api/rest-api.generator.js +4 -0
- package/dist/backend-rest-api/rest-api.generator.js.map +1 -1
- package/dist/backend-rest-api/template/utils/src/fieldSelection.spec.ts +252 -0
- package/dist/backend-rest-api/template/utils/src/fieldSelection.ts +66 -0
- package/dist/backend-router-trpc/generators/model-routes.generator.js +27 -2
- package/dist/backend-router-trpc/generators/model-routes.generator.js.map +1 -1
- package/dist/backend-router-trpc/router-trpc.generator.d.ts +1 -0
- package/dist/backend-router-trpc/router-trpc.generator.js +1 -0
- package/dist/backend-router-trpc/router-trpc.generator.js.map +1 -1
- package/dist/backend-update/model-update-service.generator.js +145 -8
- package/dist/backend-update/model-update-service.generator.js.map +1 -1
- package/dist/backend-view/model-view-service.generator.js +361 -43
- package/dist/backend-view/model-view-service.generator.js.map +1 -1
- package/dist/backend-view/template/{filter.utils.test.ts → query.utils.test.ts} +101 -1
- package/dist/backend-view/template/query.utils.ts +444 -0
- package/dist/frontend-admin/generators/model-admin-page.generator.js +50 -32
- package/dist/frontend-admin/generators/model-admin-page.generator.js.map +1 -1
- package/dist/frontend-core/template/src/components/admin/column-header-state-icon.tsx +72 -0
- package/dist/frontend-core/template/src/components/admin/table-filter.tsx +195 -43
- package/dist/frontend-forms/generators/model/forms.generator.js +2 -2
- package/dist/frontend-forms/generators/model/forms.generator.js.map +1 -1
- package/dist/frontend-forms/generators/model/inputs.generator.js +8 -8
- package/dist/frontend-forms/generators/model/inputs.generator.js.map +1 -1
- package/dist/frontend-tables/generators/model-table.generator.js +122 -38
- package/dist/frontend-tables/generators/model-table.generator.js.map +1 -1
- package/dist/frontend-trpc-client/generators/model-hook.generator.js +149 -35
- package/dist/frontend-trpc-client/generators/model-hook.generator.js.map +1 -1
- package/dist/types/generators/model-type.generator.js +111 -31
- package/dist/types/generators/model-type.generator.js.map +1 -1
- package/dist/types/template/query.types.ts +151 -0
- package/dist/types/types.generator.d.ts +20 -0
- package/dist/types/types.generator.js +9 -3
- package/dist/types/types.generator.js.map +1 -1
- package/package.json +2 -2
- package/dist/backend-rest-api/generators/zod-exception-filter.generator.d.ts +0 -1
- package/dist/backend-rest-api/generators/zod-exception-filter.generator.js +0 -28
- package/dist/backend-rest-api/generators/zod-exception-filter.generator.js.map +0 -1
- package/dist/backend-view/template/filter.utils.ts +0 -218
- package/dist/frontend-core/template/src/components/admin/table-filter-header-icon.tsx +0 -30
- package/dist/types/template/filter.types.ts +0 -70
|
@@ -7,12 +7,14 @@ function generateModelHook({ model, context }) {
|
|
|
7
7
|
const imports = generator_1.ImportGenerator
|
|
8
8
|
//
|
|
9
9
|
.from(model.itemHook.location)
|
|
10
|
-
.addType(model.types)
|
|
10
|
+
.addType(model.types.viewModel)
|
|
11
11
|
.addType(model.types.id)
|
|
12
12
|
.addType(model.types.filter.type)
|
|
13
|
+
.addType(model.types.filter.fieldType)
|
|
13
14
|
.add(context.trpcClient)
|
|
14
15
|
.addImports({
|
|
15
|
-
[(0, generator_1.toPackageName)('@tanstack/react-query')]: [(0, generator_1.toFunctionName)('useQuery')],
|
|
16
|
+
[(0, generator_1.toPackageName)('@tanstack/react-query')]: [(0, generator_1.toFunctionName)('useQuery'), (0, generator_1.toFunctionName)('useInfiniteQuery')],
|
|
17
|
+
[(0, generator_1.toPackageName)('@types')]: [(0, generator_1.toTypeName)('SortState')],
|
|
16
18
|
});
|
|
17
19
|
let itemsCrudHook = { types: '', hooks: '', exports: '' };
|
|
18
20
|
if (model.update.kind === 'exists') {
|
|
@@ -27,19 +29,34 @@ function generateModelHook({ model, context }) {
|
|
|
27
29
|
});
|
|
28
30
|
itemsCrudHook = {
|
|
29
31
|
types: `
|
|
30
|
-
${itemsHook.update.name}: (data: UpdatePayload) => Promise<${model.types.name}>
|
|
31
|
-
${itemsHook.updateMany.name}: (data: UpdatePayload[]) => Promise<${model.types.name}[]>
|
|
32
|
-
${itemsHook.updateField.name}: (data: UpdateFieldPayload) => Promise<${model.types.name}>
|
|
33
|
-
${itemsHook.create.name}: (data: CreatePayload) => Promise<${model.types.name}>
|
|
34
|
-
${itemsHook.createMany.name}: (data: CreatePayload[]) => Promise<${model.types.name}[]>
|
|
32
|
+
${itemsHook.update.name}: (data: UpdatePayload) => Promise<${model.types.viewModel.name}>
|
|
33
|
+
${itemsHook.updateMany.name}: (data: UpdatePayload[]) => Promise<${model.types.viewModel.name}[]>
|
|
34
|
+
${itemsHook.updateField.name}: (data: UpdateFieldPayload) => Promise<${model.types.viewModel.name}>
|
|
35
|
+
${itemsHook.create.name}: (data: CreatePayload) => Promise<${model.types.viewModel.name}>
|
|
36
|
+
${itemsHook.createMany.name}: (data: CreatePayload[]) => Promise<${model.types.viewModel.name}[]>
|
|
35
37
|
${itemsHook.delete.name}: (id: ${model.types.id.name}) => Promise<${model.types.id.name}>
|
|
36
38
|
${itemsHook.deleteMany.name}: (ids: ${model.types.id.name}[]) => Promise<${model.types.id.name}[]>
|
|
37
|
-
${itemsHook.clone.name}: (data: ClonePayload) => Promise<${model.types.name}>
|
|
38
|
-
${itemsHook.cloneMany.name}: (data: ClonePayload[]) => Promise<${model.types.name}[]>`,
|
|
39
|
+
${itemsHook.clone.name}: (data: ClonePayload) => Promise<${model.types.viewModel.name}>
|
|
40
|
+
${itemsHook.cloneMany.name}: (data: ClonePayload[]) => Promise<${model.types.viewModel.name}[]>`,
|
|
39
41
|
hooks: `
|
|
40
|
-
const invalidate = () => {
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
const invalidate = async () => {
|
|
43
|
+
const paginatedPredicate = (query: { queryKey: unknown }) => {
|
|
44
|
+
const key = query.queryKey
|
|
45
|
+
// tRPC query keys are arrays where first element contains the procedure path
|
|
46
|
+
// e.g., [['posts', 'getFilteredPaginated'], { input, type }]
|
|
47
|
+
if (Array.isArray(key) && Array.isArray(key[0])) {
|
|
48
|
+
const path = key[0]
|
|
49
|
+
return path[0] === '${trpcRoute.name}' && path[1] === 'getFilteredPaginated'
|
|
50
|
+
}
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
await Promise.all([
|
|
55
|
+
queryClient.invalidateQueries({ queryKey: trpc.${trpcRoute.name}.getMap.queryKey() }),
|
|
56
|
+
queryClient.invalidateQueries({ queryKey: trpc.${trpcRoute.name}.getFiltered.queryKey() }),
|
|
57
|
+
// For infinite query, just refetch without resetting - keeps data visible during refetch
|
|
58
|
+
queryClient.refetchQueries({ predicate: paginatedPredicate }),
|
|
59
|
+
])
|
|
43
60
|
}
|
|
44
61
|
|
|
45
62
|
const updateMutation = useMutation(trpc.${trpcRoute.name}.update.mutationOptions({ onSuccess: invalidate }))
|
|
@@ -68,61 +85,158 @@ function generateModelHook({ model, context }) {
|
|
|
68
85
|
import { useMemo } from 'react'
|
|
69
86
|
${imports.generate()}
|
|
70
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Options for the ${itemsHook.name} hook.
|
|
90
|
+
*/
|
|
91
|
+
export type ${itemsHook.type.name}Options = {
|
|
92
|
+
/**
|
|
93
|
+
* When true, uses paginated fetching with infinite scroll support.
|
|
94
|
+
* When false, fetches all filtered data at once (original behavior).
|
|
95
|
+
* @default true
|
|
96
|
+
*/
|
|
97
|
+
paginated?: boolean
|
|
98
|
+
/**
|
|
99
|
+
* Number of items per page when using paginated mode.
|
|
100
|
+
* @default 100
|
|
101
|
+
*/
|
|
102
|
+
pageSize?: number
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Return type for the ${itemsHook.name} hook.
|
|
107
|
+
*/
|
|
71
108
|
export type ${itemsHook.type.name} = {
|
|
72
|
-
|
|
73
|
-
${itemsHook.
|
|
74
|
-
|
|
75
|
-
${itemsHook.
|
|
109
|
+
/** All items (unfiltered) as an array */
|
|
110
|
+
${itemsHook.list.name}: ${model.types.viewModel.name}[]
|
|
111
|
+
/** All items (unfiltered) as a Map keyed by ID */
|
|
112
|
+
${itemsHook.map.name}: Map<${model.types.id.name}, ${model.types.viewModel.name}>
|
|
113
|
+
/** Filtered (+ sorted) items as an array. When paginated, contains all loaded pages flattened. */
|
|
114
|
+
${itemsHook.filteredList.name}: ${model.types.viewModel.name}[]
|
|
115
|
+
/** Filtered (+ sorted) items as a Map keyed by ID */
|
|
116
|
+
${itemsHook.filteredMap.name}: Map<${model.types.id.name}, ${model.types.viewModel.name}>
|
|
117
|
+
/** Whether the initial data has been loaded */
|
|
76
118
|
${itemsHook.isLoaded.name}: boolean
|
|
119
|
+
/**
|
|
120
|
+
* Total count of ALL matching items in the database (not just loaded ones).
|
|
121
|
+
* Useful for displaying "Showing X of Y items".
|
|
122
|
+
* When not paginated, equals filteredList.length.
|
|
123
|
+
*/
|
|
124
|
+
total: number
|
|
125
|
+
/**
|
|
126
|
+
* Whether there are more pages available to load.
|
|
127
|
+
* Only relevant when using paginated mode.
|
|
128
|
+
*/
|
|
129
|
+
hasNextPage: boolean
|
|
130
|
+
/**
|
|
131
|
+
* Triggers loading the next page of data.
|
|
132
|
+
* Call this when the user scrolls near the end of the list.
|
|
133
|
+
* Only relevant when using paginated mode.
|
|
134
|
+
*/
|
|
135
|
+
fetchNextPage: () => Promise<unknown>
|
|
136
|
+
/**
|
|
137
|
+
* Whether the next page is currently being fetched.
|
|
138
|
+
* Use this to show a loading indicator during infinite scroll.
|
|
139
|
+
*/
|
|
140
|
+
isFetchingNextPage: boolean
|
|
77
141
|
|
|
78
142
|
${itemsCrudHook.types}
|
|
79
143
|
}
|
|
80
144
|
|
|
81
145
|
|
|
82
|
-
export const ${itemHook.name} = (id: ${model.types.id.name} | null): ${model.types.name} | null => {
|
|
146
|
+
export const ${itemHook.name} = (id: ${model.types.id.name} | null): ${model.types.viewModel.name} | null => {
|
|
83
147
|
const trpc = ${context.trpcClient.name}()
|
|
84
|
-
|
|
148
|
+
|
|
85
149
|
const { data, isPending } = useQuery(trpc.${trpcRoute.name}.get.queryOptions(id!, { enabled: id !== null })) // NOSONAR
|
|
86
150
|
|
|
87
|
-
return useMemo((): ${model.types.name} | null => (isPending || !data) ? null : data, [data, isPending])
|
|
151
|
+
return useMemo((): ${model.types.viewModel.name} | null => (isPending || !data) ? null : data, [data, isPending])
|
|
88
152
|
}
|
|
89
153
|
|
|
90
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Hook for fetching and managing ${model.userFriendlyNamePlural}.
|
|
156
|
+
*
|
|
157
|
+
* @param filters - Optional filters to apply
|
|
158
|
+
* @param sort - Optional sort configuration
|
|
159
|
+
* @param options - Configuration options
|
|
160
|
+
* @param options.paginated - When true (default), uses infinite scroll pagination. When false, fetches all data at once.
|
|
161
|
+
* @param options.pageSize - Items per page when paginated (default: 100)
|
|
162
|
+
*/
|
|
163
|
+
export const ${itemsHook.name} = (
|
|
164
|
+
filters?: ${model.types.filter.type.name},
|
|
165
|
+
sort?: SortState<${model.types.filter.fieldType.name}>,
|
|
166
|
+
options: ${itemsHook.type.name}Options = {},
|
|
167
|
+
): ${itemsHook.type.name} => {
|
|
168
|
+
const { paginated = true, pageSize = 100 } = options
|
|
91
169
|
const trpc = ${context.trpcClient.name}()
|
|
92
|
-
|
|
170
|
+
|
|
171
|
+
// Determine if we need to fetch filtered data (when filters or sort are provided)
|
|
172
|
+
const isFiltered = useMemo(
|
|
173
|
+
() => (filters && Object.keys(filters).length > 0) || sort !== undefined,
|
|
174
|
+
[filters, sort],
|
|
175
|
+
)
|
|
93
176
|
|
|
94
177
|
const mapQuery = useQuery(trpc.${trpcRoute.name}.getMap.queryOptions())
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
178
|
+
|
|
179
|
+
// Non-paginated query: fetches all filtered data at once
|
|
180
|
+
const filteredQuery = useQuery({
|
|
181
|
+
...trpc.${trpcRoute.name}.${model.trpcRoute.getFiltered.name}.queryOptions({ filters: filters ?? {}, sort }),
|
|
182
|
+
enabled: !!isFiltered && !paginated,
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
// Paginated query: fetches data in pages for infinite scroll
|
|
186
|
+
// Each page contains { data: T[], total: number, cursor: number | null }
|
|
187
|
+
// Pages are accumulated and flattened into a single list
|
|
188
|
+
// Note: cursor is at top level for tRPC infinite query support - tRPC adds cursor automatically
|
|
189
|
+
const infiniteQuery = useInfiniteQuery({
|
|
190
|
+
...trpc.${trpcRoute.name}.${model.trpcRoute.getFilteredPaginated.name}.infiniteQueryOptions(
|
|
191
|
+
{ filters: filters ?? {}, sort, limit: pageSize },
|
|
192
|
+
{ getNextPageParam: (lastPage) => lastPage.cursor }
|
|
193
|
+
),
|
|
194
|
+
initialPageParam: 1,
|
|
195
|
+
enabled: !!isFiltered && paginated,
|
|
98
196
|
})
|
|
99
197
|
|
|
100
198
|
${itemsCrudHook.hooks}
|
|
101
199
|
|
|
102
|
-
const ${itemsHook.map.name} = useMemo((): Map<${model.types.id.name}, ${model.types.name}> => (mapQuery.isPending || !mapQuery.data) ? new Map() : mapQuery.data, [mapQuery.data, mapQuery.isPending])
|
|
200
|
+
const ${itemsHook.map.name} = useMemo((): Map<${model.types.id.name}, ${model.types.viewModel.name}> => (mapQuery.isPending || !mapQuery.data) ? new Map() : mapQuery.data, [mapQuery.data, mapQuery.isPending])
|
|
103
201
|
|
|
104
|
-
const ${itemsHook.list.name} = useMemo((): ${model.types.name}[] => Array.from(${itemsHook.map.name}.values()), [${itemsHook.map.name}])
|
|
202
|
+
const ${itemsHook.list.name} = useMemo((): ${model.types.viewModel.name}[] => Array.from(${itemsHook.map.name}.values()), [${itemsHook.map.name}])
|
|
105
203
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
204
|
+
// Build filtered list based on mode:
|
|
205
|
+
// - Not filtered: return full list
|
|
206
|
+
// - Paginated: flatten all loaded pages into single array
|
|
207
|
+
// - Non-paginated: return the single query result
|
|
208
|
+
const ${itemsHook.filteredList.name} = useMemo((): ${model.types.viewModel.name}[] => {
|
|
209
|
+
if (!isFiltered) {
|
|
210
|
+
return ${itemsHook.list.name}
|
|
109
211
|
}
|
|
110
|
-
|
|
111
|
-
|
|
212
|
+
if (paginated) {
|
|
213
|
+
return infiniteQuery.data?.pages.flatMap(page => page.data) ?? []
|
|
214
|
+
}
|
|
215
|
+
return filteredQuery.data ?? []
|
|
216
|
+
}, [isFiltered, paginated, infiniteQuery.data, filteredQuery.data, ${itemsHook.list.name}])
|
|
112
217
|
|
|
113
|
-
const ${itemsHook.filteredMap.name} = useMemo((): Map<${model.types.id.name}, ${model.types.name}> => {
|
|
114
|
-
if (isFiltered) {
|
|
115
|
-
return
|
|
218
|
+
const ${itemsHook.filteredMap.name} = useMemo((): Map<${model.types.id.name}, ${model.types.viewModel.name}> => {
|
|
219
|
+
if (!isFiltered) {
|
|
220
|
+
return ${itemsHook.map.name}
|
|
116
221
|
}
|
|
117
|
-
return ${itemsHook.map.name}
|
|
222
|
+
return new Map(${itemsHook.filteredList.name}.map((i) => [i.${model.idField.name}, i]))
|
|
118
223
|
}, [isFiltered, ${itemsHook.filteredList.name}, ${itemsHook.map.name}])
|
|
119
224
|
|
|
225
|
+
// Total count: from paginated response, or just the list length
|
|
226
|
+
const total = paginated
|
|
227
|
+
? (infiniteQuery.data?.pages[0]?.total ?? ${itemsHook.list.name}.length)
|
|
228
|
+
: ${itemsHook.filteredList.name}.length
|
|
229
|
+
|
|
120
230
|
return {
|
|
121
231
|
${itemsHook.list.name},
|
|
122
232
|
${itemsHook.map.name},
|
|
123
233
|
${itemsHook.filteredList.name},
|
|
124
234
|
${itemsHook.filteredMap.name},
|
|
125
235
|
${itemsHook.isLoaded.name}: !mapQuery.isPending && !mapQuery.isError,
|
|
236
|
+
total,
|
|
237
|
+
hasNextPage: paginated ? (infiniteQuery.hasNextPage ?? false) : false,
|
|
238
|
+
fetchNextPage: paginated ? infiniteQuery.fetchNextPage : () => Promise.resolve(),
|
|
239
|
+
isFetchingNextPage: paginated ? infiniteQuery.isFetchingNextPage : false,
|
|
126
240
|
|
|
127
241
|
${itemsCrudHook.exports}
|
|
128
242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-hook.generator.js","sourceRoot":"","sources":["../../../src/frontend-trpc-client/generators/model-hook.generator.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"model-hook.generator.js","sourceRoot":"","sources":["../../../src/frontend-trpc-client/generators/model-hook.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,20 @@ export type ${types.name} = {
|
|
|
62
62
|
${fieldDefinitions}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
/**
|
|
66
|
+
* View model type for ${model.userFriendlyName}.
|
|
67
|
+
*
|
|
68
|
+
* Currently an alias to the base model type. This allows view services
|
|
69
|
+
* to return consistent types that can be extended with computed fields
|
|
70
|
+
* in the future without breaking changes.
|
|
71
|
+
*
|
|
72
|
+
* To extend this type with computed fields, eject this file and modify:
|
|
73
|
+
* export type ${types.viewModel.name} = ${types.name} & {
|
|
74
|
+
* // Add computed fields here
|
|
75
|
+
* }
|
|
76
|
+
*/
|
|
77
|
+
export type ${types.viewModel.name} = ${types.name}
|
|
78
|
+
|
|
65
79
|
${generateBrandedIdType(model)}
|
|
66
80
|
|
|
67
81
|
/**
|
|
@@ -124,41 +138,83 @@ function generateFilterTypes(model, imports, context) {
|
|
|
124
138
|
return '';
|
|
125
139
|
}
|
|
126
140
|
const filterImports = [Generator.toTypeName('FilterConfig')];
|
|
141
|
+
// Only import Zod schemas - TypeScript types are derived via z.infer<>
|
|
127
142
|
if (filterFields.some((f) => f.type === 'NumberFilter')) {
|
|
128
|
-
filterImports.push(Generator.
|
|
143
|
+
filterImports.push(Generator.toFunctionName('zNumberFilter'));
|
|
129
144
|
}
|
|
130
145
|
if (filterFields.some((f) => f.type === 'DateFilter')) {
|
|
131
|
-
filterImports.push(Generator.
|
|
146
|
+
filterImports.push(Generator.toFunctionName('zDateFilter'));
|
|
132
147
|
}
|
|
148
|
+
if (filterFields.some((f) => f.type === 'StringFilter' || f.type.startsWith('StringFilter<'))) {
|
|
149
|
+
filterImports.push(Generator.toFunctionName('zStringFilter'));
|
|
150
|
+
}
|
|
151
|
+
filterImports.push(
|
|
152
|
+
// Add zGlobalSearch for global search support (type is derived from Zod)
|
|
153
|
+
Generator.toFunctionName('zGlobalSearch'),
|
|
154
|
+
// Add zSortDirection for sort decoder
|
|
155
|
+
Generator.toFunctionName('zSortDirection'));
|
|
133
156
|
imports.addImport({
|
|
134
157
|
items: filterImports,
|
|
135
|
-
from: Generator.toFilePath('./
|
|
158
|
+
from: Generator.toFilePath('./query.types'),
|
|
136
159
|
});
|
|
160
|
+
const baseFilterName = `${filterName}Base`;
|
|
161
|
+
const baseFilterDecoderName = `z${model._conjugated.PascalCase}FilterBase`;
|
|
137
162
|
return `
|
|
138
|
-
export type ${filterName} = {
|
|
139
|
-
${filterFields.map((f) => `${(0, exports.getFilterFieldName)(f.name, f.duParentFieldName)}?: ${f.type}`).join('\n ')}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
163
|
export const ${filterFieldName} = [
|
|
143
164
|
${filterFields.map((f) => `'${(0, exports.getFilterFieldName)(f.name, f.duParentFieldName)}'`).join(',\n ')}
|
|
144
165
|
] as const
|
|
145
166
|
|
|
146
167
|
export type ${filterFieldName} = (typeof ${filterFieldName})[number]
|
|
147
168
|
|
|
148
|
-
|
|
169
|
+
/**
|
|
170
|
+
* Zod decoder for base filter (without globalSearch).
|
|
171
|
+
*/
|
|
172
|
+
export const ${baseFilterDecoderName} = z.object({
|
|
173
|
+
${filterFields.map((f) => `${(0, exports.getFilterFieldName)(f.name, f.duParentFieldName)}: ${f.decoder}`).join(',\n ')}
|
|
174
|
+
})
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Base filter type for ${model.name} (without globalSearch).
|
|
178
|
+
* Derived from Zod decoder to ensure type safety.
|
|
179
|
+
*/
|
|
180
|
+
export type ${baseFilterName} = z.infer<typeof ${baseFilterDecoderName}>
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Zod decoder for filter with global search support.
|
|
184
|
+
*/
|
|
185
|
+
export const ${filterDecoderName} = ${baseFilterDecoderName}.extend(zGlobalSearch.shape)
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Filter type for ${model.name} with global search support.
|
|
189
|
+
* Derived from Zod decoder to ensure type safety.
|
|
190
|
+
*/
|
|
191
|
+
export type ${filterName} = z.infer<typeof ${filterDecoderName}>
|
|
192
|
+
|
|
193
|
+
export const ${filterConfigName}: FilterConfig<${filterFieldName}, ${baseFilterName}> = {
|
|
149
194
|
${filterFields
|
|
150
|
-
.map((f) =>
|
|
195
|
+
.map((f) => {
|
|
196
|
+
const getLabelFn = generateGetLabelFunction(f);
|
|
197
|
+
const getLabelLine = getLabelFn ? `\n getLabel: ${getLabelFn},` : '';
|
|
198
|
+
return `${(0, exports.getFilterFieldName)(f.name, f.duParentFieldName)}: {
|
|
151
199
|
filterKey: '${(0, exports.getFilterFieldName)(f.name, f.duParentFieldName)}',
|
|
152
200
|
valueType: '${f.valueType}',
|
|
153
|
-
kind: '${f.kind}'
|
|
154
|
-
|
|
155
|
-
|
|
201
|
+
kind: '${f.kind}',${generateExtraFilterConfigFields(f)}${getLabelLine}
|
|
202
|
+
}`;
|
|
203
|
+
})
|
|
156
204
|
.join(',\n ')}
|
|
157
205
|
}
|
|
158
206
|
|
|
159
|
-
export const ${
|
|
160
|
-
|
|
161
|
-
})
|
|
207
|
+
export const ${model.types.sort.decoder.name} = z.array(
|
|
208
|
+
z.object({
|
|
209
|
+
field: z.enum(${filterFieldName}),
|
|
210
|
+
direction: zSortDirection,
|
|
211
|
+
})
|
|
212
|
+
).optional()
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Sort type for ${model.name}, derived from Zod decoder.
|
|
216
|
+
*/
|
|
217
|
+
export type ${model.types.sort.type.name} = z.infer<typeof ${model.types.sort.decoder.name}>
|
|
162
218
|
`;
|
|
163
219
|
}
|
|
164
220
|
const getFilterFieldName = (name, duParentFieldName) => {
|
|
@@ -221,18 +277,17 @@ function getFilterFieldInfo({ field, model, context, imports, }) {
|
|
|
221
277
|
const valueType = getFilterValueType(field);
|
|
222
278
|
if (field.kind === 'id') {
|
|
223
279
|
const decoder = Generator.toFunctionName(`z${PascalCase}Id`);
|
|
224
|
-
const typeName = Generator.toTypeName(`${PascalCase}Id`);
|
|
225
280
|
return {
|
|
226
281
|
name: field.name,
|
|
227
|
-
type:
|
|
282
|
+
type: 'StringFilter', // Type is derived from Zod, no generic needed
|
|
228
283
|
valueType,
|
|
229
|
-
decoder: `z.array(z.lazy(() => ${decoder})).optional()`,
|
|
284
|
+
decoder: `zStringFilter.extend({ values: z.array(z.lazy(() => ${decoder})).optional() }).optional()`,
|
|
230
285
|
kind: 'id',
|
|
231
286
|
};
|
|
232
287
|
}
|
|
233
288
|
else if (field.kind === 'scalar') {
|
|
234
|
-
let type = '
|
|
235
|
-
let decoder = '
|
|
289
|
+
let type = 'StringFilter';
|
|
290
|
+
let decoder = 'zStringFilter.optional()';
|
|
236
291
|
if (field.type === 'number') {
|
|
237
292
|
type = 'NumberFilter';
|
|
238
293
|
decoder = 'zNumberFilter.optional()';
|
|
@@ -257,13 +312,13 @@ function getFilterFieldInfo({ field, model, context, imports, }) {
|
|
|
257
312
|
const referencedModel = context.models.get(field.referencedModelName);
|
|
258
313
|
if (referencedModel) {
|
|
259
314
|
const decoder = Generator.toFunctionName(`z${referencedModel._conjugated.PascalCase}Id`);
|
|
260
|
-
|
|
261
|
-
imports.addImport({ items: [decoder
|
|
315
|
+
// Only import the decoder - TypeScript types are derived via z.infer<>
|
|
316
|
+
imports.addImport({ items: [decoder], from: referencedModel.types._filePath });
|
|
262
317
|
return {
|
|
263
318
|
name: field.name,
|
|
264
|
-
type:
|
|
319
|
+
type: 'StringFilter', // Type is derived from Zod, no generic needed
|
|
265
320
|
valueType,
|
|
266
|
-
decoder: `z.array(z.lazy(() => ${decoder})).optional()`,
|
|
321
|
+
decoder: `zStringFilter.extend({ values: z.array(z.lazy(() => ${decoder})).optional() }).optional()`,
|
|
267
322
|
kind: 'relation',
|
|
268
323
|
referencedModelViewServiceVariableName: Generator.toVariableName(referencedModel._conjugated.camelCasePlural),
|
|
269
324
|
referencedModelLabelField: referencedModel.labelField.name,
|
|
@@ -275,12 +330,13 @@ function getFilterFieldInfo({ field, model, context, imports, }) {
|
|
|
275
330
|
const referencedEnum = context.enums.get(field.enumName);
|
|
276
331
|
if (referencedEnum) {
|
|
277
332
|
const typeName = referencedEnum.types.name;
|
|
333
|
+
// Import enum type for use in z.enum() decoder
|
|
278
334
|
imports.addImport({ items: [typeName], from: referencedEnum.types._filePath });
|
|
279
335
|
return {
|
|
280
336
|
name: field.name,
|
|
281
|
-
type:
|
|
337
|
+
type: 'StringFilter', // Type is derived from Zod, no generic needed
|
|
282
338
|
valueType,
|
|
283
|
-
decoder: `z.array(z.lazy(() => z.
|
|
339
|
+
decoder: `zStringFilter.extend({ values: z.array(z.lazy(() => z.enum(${typeName}))).optional() }).optional()`,
|
|
284
340
|
kind: 'enum',
|
|
285
341
|
enumName: typeName,
|
|
286
342
|
enumValues: Array.from(referencedEnum.members.values()).map((v) => v.value),
|
|
@@ -294,9 +350,9 @@ function getFilterFieldInfo({ field, model, context, imports, }) {
|
|
|
294
350
|
}));
|
|
295
351
|
return {
|
|
296
352
|
name: field.name,
|
|
297
|
-
type: '
|
|
353
|
+
type: 'StringFilter',
|
|
298
354
|
valueType,
|
|
299
|
-
decoder: '
|
|
355
|
+
decoder: 'zStringFilter.optional()',
|
|
300
356
|
kind: 'discriminatedUnion',
|
|
301
357
|
duMemberTypes,
|
|
302
358
|
};
|
|
@@ -306,14 +362,17 @@ function getFilterFieldInfo({ field, model, context, imports, }) {
|
|
|
306
362
|
function generateExtraFilterConfigFields(f) {
|
|
307
363
|
switch (f.kind) {
|
|
308
364
|
case 'relation':
|
|
309
|
-
return `
|
|
365
|
+
return `
|
|
366
|
+
referencedModelViewServiceVariableName: '${f.referencedModelViewServiceVariableName}',
|
|
310
367
|
referencedModelLabelField: '${f.referencedModelLabelField}',
|
|
311
368
|
referencedModelIdField: '${f.referencedModelIdField}',`;
|
|
312
369
|
case 'enum':
|
|
313
|
-
return `
|
|
370
|
+
return `
|
|
371
|
+
enumName: '${f.enumName}',
|
|
314
372
|
enumValues: ${JSON.stringify(f.enumValues)},`;
|
|
315
373
|
case 'discriminatedUnion':
|
|
316
|
-
return `
|
|
374
|
+
return `
|
|
375
|
+
duMemberTypes: ${JSON.stringify(f.duMemberTypes)},`;
|
|
317
376
|
case 'scalar':
|
|
318
377
|
case 'id':
|
|
319
378
|
return '';
|
|
@@ -321,6 +380,27 @@ function generateExtraFilterConfigFields(f) {
|
|
|
321
380
|
throw new utils_1.ExhaustiveSwitchCheck(f);
|
|
322
381
|
}
|
|
323
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Returns the getLabel function for fields that need custom label handling.
|
|
385
|
+
* Returns undefined for fields where String(value) is sufficient (the default).
|
|
386
|
+
*/
|
|
387
|
+
function generateGetLabelFunction(f) {
|
|
388
|
+
// For dates, use ISO format (YYYY-MM-DD) for consistent server-side matching
|
|
389
|
+
if (f.valueType === 'date') {
|
|
390
|
+
return '(v: unknown) => {const d = v instanceof Date ? v : new Date(v as string); return Number.isNaN(d.getTime()) ? "" : d.toISOString().split("T")[0]; }';
|
|
391
|
+
}
|
|
392
|
+
// For relation fields, resolve ID to label using referencedItems context
|
|
393
|
+
if (f.kind === 'relation') {
|
|
394
|
+
return `(v: unknown, refs?: Map<string, any>) => {
|
|
395
|
+
if (v == null || typeof v === 'object') return ''
|
|
396
|
+
const ref = refs?.get(String(v))
|
|
397
|
+
return String(ref?.['${f.referencedModelLabelField}'] ?? v)
|
|
398
|
+
}`;
|
|
399
|
+
}
|
|
400
|
+
// For all other fields (strings, numbers, booleans, enums, DUs), String(value) is the default
|
|
401
|
+
// No need to generate getLabel - the consumer will use String(value) as fallback
|
|
402
|
+
return undefined;
|
|
403
|
+
}
|
|
324
404
|
function getFieldDefinitions({ fields, model, imports, context, }) {
|
|
325
405
|
const fieldDefinitions = [];
|
|
326
406
|
for (const field of fields) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-type.generator.js","sourceRoot":"","sources":["../../../src/types/generators/model-type.generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model-type.generator.js","sourceRoot":"","sources":["../../../src/types/generators/model-type.generator.ts"],"names":[],"mappings":"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"}
|