@zenstackhq/tanstack-query 3.0.0-beta.28 → 3.0.0-beta.29
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/.turbo/turbo-build.log +25 -22
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +22 -22
- package/dist/react.d.ts +22 -22
- package/dist/react.js.map +1 -1
- package/dist/svelte.cjs.map +1 -1
- package/dist/svelte.d.cts +18 -18
- package/dist/svelte.d.ts +18 -18
- package/dist/svelte.js.map +1 -1
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.d.cts +18 -18
- package/dist/vue.d.ts +18 -18
- package/dist/vue.js.map +1 -1
- package/package.json +11 -10
- package/src/react.ts +61 -53
- package/src/svelte.ts +53 -45
- package/src/vue.ts +53 -38
- package/test/schemas/basic/input.ts +7 -7
- package/test/schemas/basic/schema-lite.ts +9 -13
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/tanstack-query",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.29",
|
|
4
4
|
"description": "TanStack Query Client for consuming ZenStack v3's CRUD service",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"decimal.js": "^10.4.3",
|
|
54
54
|
"superjson": "^2.2.3",
|
|
55
|
-
"@zenstackhq/
|
|
56
|
-
"@zenstackhq/
|
|
57
|
-
"@zenstackhq/
|
|
55
|
+
"@zenstackhq/common-helpers": "3.0.0-beta.29",
|
|
56
|
+
"@zenstackhq/orm": "3.0.0-beta.29",
|
|
57
|
+
"@zenstackhq/schema": "3.0.0-beta.29"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@tanstack/react-query": "5.90.6",
|
|
@@ -68,11 +68,12 @@
|
|
|
68
68
|
"react": "19.2.0",
|
|
69
69
|
"vue": "3.5.22",
|
|
70
70
|
"svelte": "5.43.3",
|
|
71
|
-
"@zenstackhq/
|
|
72
|
-
"@zenstackhq/
|
|
73
|
-
"@zenstackhq/
|
|
74
|
-
"@zenstackhq/
|
|
75
|
-
"@zenstackhq/
|
|
71
|
+
"@zenstackhq/language": "3.0.0-beta.29",
|
|
72
|
+
"@zenstackhq/cli": "3.0.0-beta.29",
|
|
73
|
+
"@zenstackhq/typescript-config": "3.0.0-beta.29",
|
|
74
|
+
"@zenstackhq/eslint-config": "3.0.0-beta.29",
|
|
75
|
+
"@zenstackhq/sdk": "3.0.0-beta.29",
|
|
76
|
+
"@zenstackhq/vitest-config": "3.0.0-beta.29"
|
|
76
77
|
},
|
|
77
78
|
"peerDependencies": {
|
|
78
79
|
"@tanstack/react-query": "^5.0.0",
|
|
@@ -96,7 +97,7 @@
|
|
|
96
97
|
"lint": "eslint src --ext ts",
|
|
97
98
|
"test": "vitest run",
|
|
98
99
|
"pack": "pnpm pack",
|
|
99
|
-
"test:generate": "tsx ../../../scripts/test-generate.ts
|
|
100
|
+
"test:generate": "tsx ../../../scripts/test-generate.ts test --lite-only",
|
|
100
101
|
"test:typecheck": "tsc --noEmit --project tsconfig.test.json"
|
|
101
102
|
}
|
|
102
103
|
}
|
package/src/react.ts
CHANGED
|
@@ -24,7 +24,6 @@ import type {
|
|
|
24
24
|
AggregateArgs,
|
|
25
25
|
AggregateResult,
|
|
26
26
|
BatchResult,
|
|
27
|
-
ClientOptions,
|
|
28
27
|
CountArgs,
|
|
29
28
|
CountResult,
|
|
30
29
|
CreateArgs,
|
|
@@ -37,8 +36,10 @@ import type {
|
|
|
37
36
|
FindUniqueArgs,
|
|
38
37
|
GroupByArgs,
|
|
39
38
|
GroupByResult,
|
|
39
|
+
QueryOptions,
|
|
40
40
|
SelectSubset,
|
|
41
|
-
|
|
41
|
+
SimplifiedPlainResult,
|
|
42
|
+
SimplifiedResult,
|
|
42
43
|
Subset,
|
|
43
44
|
UpdateArgs,
|
|
44
45
|
UpdateManyAndReturnArgs,
|
|
@@ -129,101 +130,99 @@ export type ModelMutationModelResult<
|
|
|
129
130
|
Model extends GetModels<Schema>,
|
|
130
131
|
TArgs,
|
|
131
132
|
Array extends boolean = false,
|
|
132
|
-
> =
|
|
133
|
-
|
|
134
|
-
'mutateAsync'
|
|
135
|
-
> & {
|
|
133
|
+
Options extends QueryOptions<Schema> = QueryOptions<Schema>,
|
|
134
|
+
> = Omit<ModelMutationResult<SimplifiedResult<Schema, Model, TArgs, Options, false, Array>, TArgs>, 'mutateAsync'> & {
|
|
136
135
|
mutateAsync<T extends TArgs>(
|
|
137
136
|
args: T,
|
|
138
|
-
options?: ModelMutationOptions<
|
|
139
|
-
): Promise<
|
|
137
|
+
options?: ModelMutationOptions<SimplifiedResult<Schema, Model, T, Options, false, Array>, T>,
|
|
138
|
+
): Promise<SimplifiedResult<Schema, Model, T, Options, false, Array>>;
|
|
140
139
|
};
|
|
141
140
|
|
|
142
|
-
export type ClientHooks<Schema extends SchemaDef> = {
|
|
143
|
-
[Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
|
|
141
|
+
export type ClientHooks<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
|
|
142
|
+
[Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model, Options>;
|
|
144
143
|
};
|
|
145
144
|
|
|
146
145
|
// Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
|
|
147
146
|
// to significantly slow down tsc performance ...
|
|
148
|
-
export type ModelQueryHooks<
|
|
147
|
+
export type ModelQueryHooks<
|
|
148
|
+
Schema extends SchemaDef,
|
|
149
|
+
Model extends GetModels<Schema>,
|
|
150
|
+
Options extends QueryOptions<Schema> = QueryOptions<Schema>,
|
|
151
|
+
> = TrimDelegateModelOperations<
|
|
149
152
|
Schema,
|
|
150
153
|
Model,
|
|
151
154
|
{
|
|
152
155
|
useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
|
|
153
156
|
args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
|
|
154
|
-
options?: ModelQueryOptions<
|
|
155
|
-
): ModelQueryResult<
|
|
157
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
158
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
156
159
|
|
|
157
160
|
useSuspenseFindUnique<T extends FindUniqueArgs<Schema, Model>>(
|
|
158
161
|
args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
|
|
159
|
-
options?: ModelSuspenseQueryOptions<
|
|
160
|
-
): ModelSuspenseQueryResult<
|
|
162
|
+
options?: ModelSuspenseQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
163
|
+
): ModelSuspenseQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
161
164
|
|
|
162
165
|
useFindFirst<T extends FindFirstArgs<Schema, Model>>(
|
|
163
166
|
args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
|
|
164
|
-
options?: ModelQueryOptions<
|
|
165
|
-
): ModelQueryResult<
|
|
167
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
168
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
166
169
|
|
|
167
170
|
useSuspenseFindFirst<T extends FindFirstArgs<Schema, Model>>(
|
|
168
171
|
args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
|
|
169
|
-
options?: ModelSuspenseQueryOptions<
|
|
170
|
-
): ModelSuspenseQueryResult<
|
|
172
|
+
options?: ModelSuspenseQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
173
|
+
): ModelSuspenseQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
171
174
|
|
|
172
175
|
useFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
173
176
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
174
|
-
options?: ModelQueryOptions<
|
|
175
|
-
): ModelQueryResult<
|
|
177
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
178
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
176
179
|
|
|
177
180
|
useSuspenseFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
178
181
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
179
|
-
options?: ModelSuspenseQueryOptions<
|
|
180
|
-
): ModelSuspenseQueryResult<
|
|
182
|
+
options?: ModelSuspenseQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
183
|
+
): ModelSuspenseQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
181
184
|
|
|
182
185
|
useInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
183
186
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
184
|
-
options?: ModelInfiniteQueryOptions<
|
|
185
|
-
): ModelInfiniteQueryResult<InfiniteData<
|
|
187
|
+
options?: ModelInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
188
|
+
): ModelInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
|
|
186
189
|
|
|
187
190
|
useSuspenseInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
188
191
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
189
|
-
options?: ModelSuspenseInfiniteQueryOptions<
|
|
190
|
-
|
|
191
|
-
>,
|
|
192
|
-
): ModelSuspenseInfiniteQueryResult<
|
|
193
|
-
InfiniteData<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>
|
|
194
|
-
>;
|
|
192
|
+
options?: ModelSuspenseInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
193
|
+
): ModelSuspenseInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
|
|
195
194
|
|
|
196
195
|
useCreate<T extends CreateArgs<Schema, Model>>(
|
|
197
|
-
options?: ModelMutationOptions<
|
|
198
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
196
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
197
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
199
198
|
|
|
200
199
|
useCreateMany<T extends CreateManyArgs<Schema, Model>>(
|
|
201
200
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
202
201
|
): ModelMutationResult<BatchResult, T>;
|
|
203
202
|
|
|
204
203
|
useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
|
|
205
|
-
options?: ModelMutationOptions<
|
|
206
|
-
): ModelMutationModelResult<Schema, Model, T, true>;
|
|
204
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
|
|
205
|
+
): ModelMutationModelResult<Schema, Model, T, true, Options>;
|
|
207
206
|
|
|
208
207
|
useUpdate<T extends UpdateArgs<Schema, Model>>(
|
|
209
|
-
options?: ModelMutationOptions<
|
|
210
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
208
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
209
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
211
210
|
|
|
212
211
|
useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
|
|
213
212
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
214
213
|
): ModelMutationResult<BatchResult, T>;
|
|
215
214
|
|
|
216
215
|
useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
|
|
217
|
-
options?: ModelMutationOptions<
|
|
218
|
-
): ModelMutationModelResult<Schema, Model, T, true>;
|
|
216
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
|
|
217
|
+
): ModelMutationModelResult<Schema, Model, T, true, Options>;
|
|
219
218
|
|
|
220
219
|
useUpsert<T extends UpsertArgs<Schema, Model>>(
|
|
221
|
-
options?: ModelMutationOptions<
|
|
222
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
220
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
221
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
223
222
|
|
|
224
223
|
useDelete<T extends DeleteArgs<Schema, Model>>(
|
|
225
|
-
options?: ModelMutationOptions<
|
|
226
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
224
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
225
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
227
226
|
|
|
228
227
|
useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
|
|
229
228
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
@@ -264,20 +263,29 @@ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Sc
|
|
|
264
263
|
/**
|
|
265
264
|
* Gets data query hooks for all models in the schema.
|
|
266
265
|
*/
|
|
267
|
-
export function useClientQueries<Schema extends SchemaDef
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
266
|
+
export function useClientQueries<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>>(
|
|
267
|
+
schema: Schema,
|
|
268
|
+
): ClientHooks<Schema, Options> {
|
|
269
|
+
return Object.keys(schema.models).reduce(
|
|
270
|
+
(acc, model) => {
|
|
271
|
+
(acc as any)[lowerCaseFirst(model)] = useModelQueries<Schema, GetModels<Schema>, Options>(
|
|
272
|
+
schema,
|
|
273
|
+
model as GetModels<Schema>,
|
|
274
|
+
);
|
|
275
|
+
return acc;
|
|
276
|
+
},
|
|
277
|
+
{} as ClientHooks<Schema, Options>,
|
|
278
|
+
);
|
|
272
279
|
}
|
|
273
280
|
|
|
274
281
|
/**
|
|
275
282
|
* Gets data query hooks for a specific model in the schema.
|
|
276
283
|
*/
|
|
277
|
-
export function useModelQueries<
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
284
|
+
export function useModelQueries<
|
|
285
|
+
Schema extends SchemaDef,
|
|
286
|
+
Model extends GetModels<Schema>,
|
|
287
|
+
Options extends QueryOptions<Schema>,
|
|
288
|
+
>(schema: Schema, model: Model): ModelQueryHooks<Schema, Model, Options> {
|
|
281
289
|
const modelDef = Object.values(schema.models).find((m) => m.name.toLowerCase() === model.toLowerCase());
|
|
282
290
|
if (!modelDef) {
|
|
283
291
|
throw new Error(`Model "${model}" not found in schema`);
|
|
@@ -377,7 +385,7 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
|
|
|
377
385
|
useSuspenseGroupBy: (args: any, options?: any) => {
|
|
378
386
|
return useInternalSuspenseQuery(schema, modelName, 'groupBy', args, options);
|
|
379
387
|
},
|
|
380
|
-
} as ModelQueryHooks<Schema, Model>;
|
|
388
|
+
} as ModelQueryHooks<Schema, Model, Options>;
|
|
381
389
|
}
|
|
382
390
|
|
|
383
391
|
export function useInternalQuery<TQueryFnData, TData>(
|
package/src/svelte.ts
CHANGED
|
@@ -20,7 +20,6 @@ import type {
|
|
|
20
20
|
AggregateArgs,
|
|
21
21
|
AggregateResult,
|
|
22
22
|
BatchResult,
|
|
23
|
-
ClientOptions,
|
|
24
23
|
CountArgs,
|
|
25
24
|
CountResult,
|
|
26
25
|
CreateArgs,
|
|
@@ -33,8 +32,10 @@ import type {
|
|
|
33
32
|
FindUniqueArgs,
|
|
34
33
|
GroupByArgs,
|
|
35
34
|
GroupByResult,
|
|
35
|
+
QueryOptions,
|
|
36
36
|
SelectSubset,
|
|
37
|
-
|
|
37
|
+
SimplifiedPlainResult,
|
|
38
|
+
SimplifiedResult,
|
|
38
39
|
Subset,
|
|
39
40
|
UpdateArgs,
|
|
40
41
|
UpdateManyAndReturnArgs,
|
|
@@ -117,84 +118,82 @@ export type ModelMutationModelResult<
|
|
|
117
118
|
Model extends GetModels<Schema>,
|
|
118
119
|
TArgs,
|
|
119
120
|
Array extends boolean = false,
|
|
121
|
+
Options extends QueryOptions<Schema> = QueryOptions<Schema>,
|
|
120
122
|
> = Readable<
|
|
121
123
|
Omit<
|
|
122
|
-
UnwrapStore<
|
|
123
|
-
ModelMutationResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, TArgs, false, Array>, TArgs>
|
|
124
|
-
>,
|
|
124
|
+
UnwrapStore<ModelMutationResult<SimplifiedResult<Schema, Model, TArgs, Options, false, Array>, TArgs>>,
|
|
125
125
|
'mutateAsync'
|
|
126
126
|
> & {
|
|
127
127
|
mutateAsync<T extends TArgs>(
|
|
128
128
|
args: T,
|
|
129
|
-
options?: ModelMutationOptions<
|
|
130
|
-
|
|
131
|
-
T
|
|
132
|
-
>,
|
|
133
|
-
): Promise<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T, false, Array>>;
|
|
129
|
+
options?: ModelMutationOptions<SimplifiedResult<Schema, Model, T, Options, false, Array>, T>,
|
|
130
|
+
): Promise<SimplifiedResult<Schema, Model, T, Options, false, Array>>;
|
|
134
131
|
}
|
|
135
132
|
>;
|
|
136
133
|
|
|
137
|
-
export type ClientHooks<Schema extends SchemaDef> = {
|
|
138
|
-
[Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
|
|
134
|
+
export type ClientHooks<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
|
|
135
|
+
[Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model, Options>;
|
|
139
136
|
};
|
|
140
137
|
|
|
141
138
|
// Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
|
|
142
139
|
// to significantly slow down tsc performance ...
|
|
143
|
-
export type ModelQueryHooks<
|
|
140
|
+
export type ModelQueryHooks<
|
|
141
|
+
Schema extends SchemaDef,
|
|
142
|
+
Model extends GetModels<Schema>,
|
|
143
|
+
Options extends QueryOptions<Schema> = QueryOptions<Schema>,
|
|
144
|
+
> = TrimDelegateModelOperations<
|
|
144
145
|
Schema,
|
|
145
146
|
Model,
|
|
146
147
|
{
|
|
147
148
|
useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
|
|
148
149
|
args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
|
|
149
|
-
options?: ModelQueryOptions<
|
|
150
|
-
): ModelQueryResult<
|
|
150
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
151
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
151
152
|
|
|
152
153
|
useFindFirst<T extends FindFirstArgs<Schema, Model>>(
|
|
153
154
|
args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
|
|
154
|
-
options?: ModelQueryOptions<
|
|
155
|
-
): ModelQueryResult<
|
|
155
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
156
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
156
157
|
|
|
157
158
|
useFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
158
159
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
159
|
-
options?: ModelQueryOptions<
|
|
160
|
-
): ModelQueryResult<
|
|
160
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
161
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
161
162
|
|
|
162
163
|
useInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
163
164
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
164
|
-
options?: ModelInfiniteQueryOptions<
|
|
165
|
-
): ModelInfiniteQueryResult<InfiniteData<
|
|
165
|
+
options?: ModelInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
166
|
+
): ModelInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
|
|
166
167
|
|
|
167
168
|
useCreate<T extends CreateArgs<Schema, Model>>(
|
|
168
|
-
options?: ModelMutationOptions<
|
|
169
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
169
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
170
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
170
171
|
|
|
171
172
|
useCreateMany<T extends CreateManyArgs<Schema, Model>>(
|
|
172
173
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
173
174
|
): ModelMutationResult<BatchResult, T>;
|
|
174
175
|
|
|
175
176
|
useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
|
|
176
|
-
options?: ModelMutationOptions<
|
|
177
|
-
): ModelMutationModelResult<Schema, Model, T, true>;
|
|
177
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
|
|
178
|
+
): ModelMutationModelResult<Schema, Model, T, true, Options>;
|
|
178
179
|
|
|
179
180
|
useUpdate<T extends UpdateArgs<Schema, Model>>(
|
|
180
|
-
options?: ModelMutationOptions<
|
|
181
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
182
|
-
|
|
181
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
182
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
183
183
|
useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
|
|
184
184
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
185
185
|
): ModelMutationResult<BatchResult, T>;
|
|
186
186
|
|
|
187
187
|
useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
|
|
188
|
-
options?: ModelMutationOptions<
|
|
189
|
-
): ModelMutationModelResult<Schema, Model, T, true>;
|
|
188
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
|
|
189
|
+
): ModelMutationModelResult<Schema, Model, T, true, Options>;
|
|
190
190
|
|
|
191
191
|
useUpsert<T extends UpsertArgs<Schema, Model>>(
|
|
192
|
-
options?: ModelMutationOptions<
|
|
193
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
194
|
-
|
|
192
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
193
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
195
194
|
useDelete<T extends DeleteArgs<Schema, Model>>(
|
|
196
|
-
options?: ModelMutationOptions<
|
|
197
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
195
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
196
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
198
197
|
|
|
199
198
|
useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
|
|
200
199
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
@@ -220,20 +219,29 @@ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Sc
|
|
|
220
219
|
/**
|
|
221
220
|
* Gets data query hooks for all models in the schema.
|
|
222
221
|
*/
|
|
223
|
-
export function useClientQueries<Schema extends SchemaDef
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
222
|
+
export function useClientQueries<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>>(
|
|
223
|
+
schema: Schema,
|
|
224
|
+
): ClientHooks<Schema, Options> {
|
|
225
|
+
return Object.keys(schema.models).reduce(
|
|
226
|
+
(acc, model) => {
|
|
227
|
+
(acc as any)[lowerCaseFirst(model)] = useModelQueries<Schema, GetModels<Schema>, Options>(
|
|
228
|
+
schema,
|
|
229
|
+
model as GetModels<Schema>,
|
|
230
|
+
);
|
|
231
|
+
return acc;
|
|
232
|
+
},
|
|
233
|
+
{} as ClientHooks<Schema, Options>,
|
|
234
|
+
);
|
|
228
235
|
}
|
|
229
236
|
|
|
230
237
|
/**
|
|
231
238
|
* Gets data query hooks for a specific model in the schema.
|
|
232
239
|
*/
|
|
233
|
-
export function useModelQueries<
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
240
|
+
export function useModelQueries<
|
|
241
|
+
Schema extends SchemaDef,
|
|
242
|
+
Model extends GetModels<Schema>,
|
|
243
|
+
Options extends QueryOptions<Schema>,
|
|
244
|
+
>(schema: Schema, model: Model): ModelQueryHooks<Schema, Model, Options> {
|
|
237
245
|
const modelDef = Object.values(schema.models).find((m) => m.name.toLowerCase() === model.toLowerCase());
|
|
238
246
|
if (!modelDef) {
|
|
239
247
|
throw new Error(`Model "${model}" not found in schema`);
|
|
@@ -305,7 +313,7 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
|
|
|
305
313
|
useGroupBy: (args: any, options?: any) => {
|
|
306
314
|
return useInternalQuery(schema, modelName, 'groupBy', args, options);
|
|
307
315
|
},
|
|
308
|
-
} as ModelQueryHooks<Schema, Model>;
|
|
316
|
+
} as ModelQueryHooks<Schema, Model, Options>;
|
|
309
317
|
}
|
|
310
318
|
|
|
311
319
|
export function useInternalQuery<TQueryFnData, TData>(
|
package/src/vue.ts
CHANGED
|
@@ -18,7 +18,6 @@ import type {
|
|
|
18
18
|
AggregateArgs,
|
|
19
19
|
AggregateResult,
|
|
20
20
|
BatchResult,
|
|
21
|
-
ClientOptions,
|
|
22
21
|
CountArgs,
|
|
23
22
|
CountResult,
|
|
24
23
|
CreateArgs,
|
|
@@ -31,8 +30,10 @@ import type {
|
|
|
31
30
|
FindUniqueArgs,
|
|
32
31
|
GroupByArgs,
|
|
33
32
|
GroupByResult,
|
|
33
|
+
QueryOptions,
|
|
34
34
|
SelectSubset,
|
|
35
|
-
|
|
35
|
+
SimplifiedPlainResult,
|
|
36
|
+
SimplifiedResult,
|
|
36
37
|
Subset,
|
|
37
38
|
UpdateArgs,
|
|
38
39
|
UpdateManyAndReturnArgs,
|
|
@@ -106,77 +107,82 @@ export type ModelMutationModelResult<
|
|
|
106
107
|
Model extends GetModels<Schema>,
|
|
107
108
|
TArgs,
|
|
108
109
|
Array extends boolean = false,
|
|
110
|
+
Options extends QueryOptions<Schema> = QueryOptions<Schema>,
|
|
109
111
|
> = Omit<
|
|
110
|
-
ModelMutationResult<
|
|
112
|
+
ModelMutationResult<SimplifiedResult<Schema, Model, TArgs, QueryOptions<Schema>, false, Array>, TArgs>,
|
|
111
113
|
'mutateAsync'
|
|
112
114
|
> & {
|
|
113
115
|
mutateAsync<T extends TArgs>(
|
|
114
116
|
args: T,
|
|
115
|
-
options?: ModelMutationOptions<
|
|
116
|
-
): Promise<
|
|
117
|
+
options?: ModelMutationOptions<SimplifiedResult<Schema, Model, T, Options, false, Array>, T>,
|
|
118
|
+
): Promise<SimplifiedResult<Schema, Model, T, Options, false, Array>>;
|
|
117
119
|
};
|
|
118
120
|
|
|
119
|
-
export type ClientHooks<Schema extends SchemaDef> = {
|
|
120
|
-
[Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
|
|
121
|
+
export type ClientHooks<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
|
|
122
|
+
[Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model, Options>;
|
|
121
123
|
};
|
|
122
124
|
|
|
123
125
|
// Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
|
|
124
126
|
// to significantly slow down tsc performance ...
|
|
125
|
-
export type ModelQueryHooks<
|
|
127
|
+
export type ModelQueryHooks<
|
|
128
|
+
Schema extends SchemaDef,
|
|
129
|
+
Model extends GetModels<Schema>,
|
|
130
|
+
Options extends QueryOptions<Schema> = QueryOptions<Schema>,
|
|
131
|
+
> = TrimDelegateModelOperations<
|
|
126
132
|
Schema,
|
|
127
133
|
Model,
|
|
128
134
|
{
|
|
129
135
|
useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
|
|
130
136
|
args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
|
|
131
|
-
options?: ModelQueryOptions<
|
|
132
|
-
): ModelQueryResult<
|
|
137
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
138
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
133
139
|
|
|
134
140
|
useFindFirst<T extends FindFirstArgs<Schema, Model>>(
|
|
135
141
|
args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
|
|
136
|
-
options?: ModelQueryOptions<
|
|
137
|
-
): ModelQueryResult<
|
|
142
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
|
|
143
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
138
144
|
|
|
139
145
|
useFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
140
146
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
141
|
-
options?: ModelQueryOptions<
|
|
142
|
-
): ModelQueryResult<
|
|
147
|
+
options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
148
|
+
): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
143
149
|
|
|
144
150
|
useInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
|
|
145
151
|
args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
|
|
146
|
-
options?: ModelInfiniteQueryOptions<
|
|
147
|
-
): ModelInfiniteQueryResult<InfiniteData<
|
|
152
|
+
options?: ModelInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
|
|
153
|
+
): ModelInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
|
|
148
154
|
|
|
149
155
|
useCreate<T extends CreateArgs<Schema, Model>>(
|
|
150
|
-
options?: ModelMutationOptions<
|
|
151
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
156
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
157
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
152
158
|
|
|
153
159
|
useCreateMany<T extends CreateManyArgs<Schema, Model>>(
|
|
154
160
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
155
161
|
): ModelMutationResult<BatchResult, T>;
|
|
156
162
|
|
|
157
163
|
useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
|
|
158
|
-
options?: ModelMutationOptions<
|
|
159
|
-
): ModelMutationModelResult<Schema, Model, T, true>;
|
|
164
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
|
|
165
|
+
): ModelMutationModelResult<Schema, Model, T, true, Options>;
|
|
160
166
|
|
|
161
167
|
useUpdate<T extends UpdateArgs<Schema, Model>>(
|
|
162
|
-
options?: ModelMutationOptions<
|
|
163
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
168
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
169
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
164
170
|
|
|
165
171
|
useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
|
|
166
172
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
167
173
|
): ModelMutationResult<BatchResult, T>;
|
|
168
174
|
|
|
169
175
|
useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
|
|
170
|
-
options?: ModelMutationOptions<
|
|
171
|
-
): ModelMutationModelResult<Schema, Model, T, true>;
|
|
176
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
|
|
177
|
+
): ModelMutationModelResult<Schema, Model, T, true, Options>;
|
|
172
178
|
|
|
173
179
|
useUpsert<T extends UpsertArgs<Schema, Model>>(
|
|
174
|
-
options?: ModelMutationOptions<
|
|
175
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
180
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
181
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
176
182
|
|
|
177
183
|
useDelete<T extends DeleteArgs<Schema, Model>>(
|
|
178
|
-
options?: ModelMutationOptions<
|
|
179
|
-
): ModelMutationModelResult<Schema, Model, T>;
|
|
184
|
+
options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
|
|
185
|
+
): ModelMutationModelResult<Schema, Model, T, false, Options>;
|
|
180
186
|
|
|
181
187
|
useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
|
|
182
188
|
options?: ModelMutationOptions<BatchResult, T>,
|
|
@@ -202,20 +208,29 @@ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Sc
|
|
|
202
208
|
/**
|
|
203
209
|
* Gets data query hooks for all models in the schema.
|
|
204
210
|
*/
|
|
205
|
-
export function useClientQueries<Schema extends SchemaDef
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
211
|
+
export function useClientQueries<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>>(
|
|
212
|
+
schema: Schema,
|
|
213
|
+
): ClientHooks<Schema, Options> {
|
|
214
|
+
return Object.keys(schema.models).reduce(
|
|
215
|
+
(acc, model) => {
|
|
216
|
+
(acc as any)[lowerCaseFirst(model)] = useModelQueries<Schema, GetModels<Schema>, Options>(
|
|
217
|
+
schema,
|
|
218
|
+
model as GetModels<Schema>,
|
|
219
|
+
);
|
|
220
|
+
return acc;
|
|
221
|
+
},
|
|
222
|
+
{} as ClientHooks<Schema, Options>,
|
|
223
|
+
);
|
|
210
224
|
}
|
|
211
225
|
|
|
212
226
|
/**
|
|
213
227
|
* Gets data query hooks for a specific model in the schema.
|
|
214
228
|
*/
|
|
215
|
-
export function useModelQueries<
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
229
|
+
export function useModelQueries<
|
|
230
|
+
Schema extends SchemaDef,
|
|
231
|
+
Model extends GetModels<Schema>,
|
|
232
|
+
Options extends QueryOptions<Schema>,
|
|
233
|
+
>(schema: Schema, model: Model): ModelQueryHooks<Schema, Model, Options> {
|
|
219
234
|
const modelDef = Object.values(schema.models).find((m) => m.name.toLowerCase() === model.toLowerCase());
|
|
220
235
|
if (!modelDef) {
|
|
221
236
|
throw new Error(`Model "${model}" not found in schema`);
|
|
@@ -287,7 +302,7 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
|
|
|
287
302
|
useGroupBy: (args: any, options?: any) => {
|
|
288
303
|
return useInternalQuery(schema, modelName, 'groupBy', args, options);
|
|
289
304
|
},
|
|
290
|
-
} as ModelQueryHooks<Schema, Model>;
|
|
305
|
+
} as ModelQueryHooks<Schema, Model, Options>;
|
|
291
306
|
}
|
|
292
307
|
|
|
293
308
|
export function useInternalQuery<TQueryFnData, TData>(
|