@zenstackhq/swr 1.0.0-beta.9 → 1.0.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/generator.js +52 -26
- package/generator.js.map +1 -1
- package/package.json +6 -4
- package/runtime/index.d.ts +42 -6
- package/runtime/index.js +33 -4
- package/runtime/index.js.map +1 -1
- package/runtime/prisma-types.d.ts +11 -0
package/generator.js
CHANGED
|
@@ -17,6 +17,7 @@ const sdk_1 = require("@zenstackhq/sdk");
|
|
|
17
17
|
const change_case_1 = require("change-case");
|
|
18
18
|
const lower_case_first_1 = require("lower-case-first");
|
|
19
19
|
const path_1 = __importDefault(require("path"));
|
|
20
|
+
const semver_1 = __importDefault(require("semver"));
|
|
20
21
|
const upper_case_first_1 = require("upper-case-first");
|
|
21
22
|
function generate(model, options, dmmf) {
|
|
22
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -54,9 +55,11 @@ function generateModelHooks(project, outDir, model, mapping) {
|
|
|
54
55
|
});
|
|
55
56
|
sf.addStatements([
|
|
56
57
|
`import { useContext } from 'react';`,
|
|
57
|
-
`import { RequestHandlerContext, type RequestOptions, type PickEnumerable } from '@zenstackhq/swr/runtime';`,
|
|
58
|
+
`import { RequestHandlerContext, type GetNextArgs, type RequestOptions, type InfiniteRequestOptions, type PickEnumerable, type CheckSelect } from '@zenstackhq/swr/runtime';`,
|
|
58
59
|
`import * as request from '@zenstackhq/swr/runtime';`,
|
|
59
60
|
]);
|
|
61
|
+
const modelNameCap = (0, upper_case_first_1.upperCaseFirst)(model.name);
|
|
62
|
+
const prismaVersion = (0, sdk_1.getPrismaVersion)();
|
|
60
63
|
const prefixesToMutate = ['find', 'aggregate', 'count', 'groupBy'];
|
|
61
64
|
const useMutation = sf.addFunction({
|
|
62
65
|
name: `useMutate${model.name}`,
|
|
@@ -75,7 +78,7 @@ function generateModelHooks(project, outDir, model, mapping) {
|
|
|
75
78
|
if (mapping.create || mapping.createOne) {
|
|
76
79
|
const argsType = `Prisma.${model.name}CreateArgs`;
|
|
77
80
|
const inputType = `Prisma.SelectSubset<T, ${argsType}>`;
|
|
78
|
-
const returnType = `
|
|
81
|
+
const returnType = `CheckSelect<T, ${model.name}, Prisma.${model.name}GetPayload<T>>`;
|
|
79
82
|
mutationFuncs.push(generateMutation(useMutation, model, 'post', 'create', argsType, inputType, returnType, true));
|
|
80
83
|
}
|
|
81
84
|
// createMany
|
|
@@ -90,7 +93,10 @@ function generateModelHooks(project, outDir, model, mapping) {
|
|
|
90
93
|
const argsType = `Prisma.${model.name}FindManyArgs`;
|
|
91
94
|
const inputType = `Prisma.SelectSubset<T, ${argsType}>`;
|
|
92
95
|
const returnType = `Array<Prisma.${model.name}GetPayload<T>>`;
|
|
96
|
+
// regular findMany
|
|
93
97
|
generateQueryHook(sf, model, 'findMany', argsType, inputType, returnType);
|
|
98
|
+
// infinite findMany
|
|
99
|
+
generateQueryHook(sf, model, 'findMany', argsType, inputType, returnType, undefined, true);
|
|
94
100
|
}
|
|
95
101
|
// findUnique
|
|
96
102
|
if (mapping.findUnique) {
|
|
@@ -149,17 +155,22 @@ function generateModelHooks(project, outDir, model, mapping) {
|
|
|
149
155
|
}
|
|
150
156
|
// aggregate
|
|
151
157
|
if (mapping.aggregate) {
|
|
152
|
-
const argsType = `Prisma.${
|
|
158
|
+
const argsType = `Prisma.${modelNameCap}AggregateArgs`;
|
|
153
159
|
const inputType = `Prisma.Subset<T, ${argsType}>`;
|
|
154
|
-
const returnType = `Prisma.Get${
|
|
160
|
+
const returnType = `Prisma.Get${modelNameCap}AggregateType<T>`;
|
|
155
161
|
generateQueryHook(sf, model, 'aggregate', argsType, inputType, returnType);
|
|
156
162
|
}
|
|
157
163
|
// groupBy
|
|
158
164
|
if (mapping.groupBy) {
|
|
165
|
+
let useName = modelNameCap;
|
|
166
|
+
if (prismaVersion && semver_1.default.gte(prismaVersion, '5.0.0')) {
|
|
167
|
+
// prisma 4 and 5 different typing for "groupBy" and we have to deal with it separately
|
|
168
|
+
useName = model.name;
|
|
169
|
+
}
|
|
159
170
|
const typeParameters = [
|
|
160
|
-
`T extends Prisma.${
|
|
171
|
+
`T extends Prisma.${useName}GroupByArgs`,
|
|
161
172
|
`HasSelectOrTake extends Prisma.Or<Prisma.Extends<'skip', Prisma.Keys<T>>, Prisma.Extends<'take', Prisma.Keys<T>>>`,
|
|
162
|
-
`OrderByArg extends Prisma.True extends HasSelectOrTake ? { orderBy: Prisma.${
|
|
173
|
+
`OrderByArg extends Prisma.True extends HasSelectOrTake ? { orderBy: Prisma.${useName}GroupByArgs['orderBy'] }: { orderBy?: Prisma.${useName}GroupByArgs['orderBy'] },`,
|
|
163
174
|
`OrderFields extends Prisma.ExcludeUnderscoreKeys<Prisma.Keys<Prisma.MaybeTupleToUnion<T['orderBy']>>>`,
|
|
164
175
|
`ByFields extends Prisma.MaybeTupleToUnion<T['by']>`,
|
|
165
176
|
`ByValid extends Prisma.Has<ByFields, OrderFields>`,
|
|
@@ -209,15 +220,15 @@ function generateModelHooks(project, outDir, model, mapping) {
|
|
|
209
220
|
: \`Error: Field "\${P}" in "orderBy" needs to be provided in "by"\`
|
|
210
221
|
}[OrderFields]`,
|
|
211
222
|
];
|
|
212
|
-
const inputType = `Prisma.SubsetIntersection<T, Prisma.${
|
|
223
|
+
const inputType = `Prisma.SubsetIntersection<T, Prisma.${useName}GroupByArgs, OrderByArg> & InputErrors`;
|
|
213
224
|
const returnType = `{} extends InputErrors ?
|
|
214
|
-
Array<PickEnumerable<Prisma.${
|
|
225
|
+
Array<PickEnumerable<Prisma.${modelNameCap}GroupByOutputType, T['by']> &
|
|
215
226
|
{
|
|
216
|
-
[P in ((keyof T) & (keyof Prisma.${
|
|
227
|
+
[P in ((keyof T) & (keyof Prisma.${modelNameCap}GroupByOutputType))]: P extends '_count'
|
|
217
228
|
? T[P] extends boolean
|
|
218
229
|
? number
|
|
219
|
-
: Prisma.GetScalarType<T[P], Prisma.${
|
|
220
|
-
: Prisma.GetScalarType<T[P], Prisma.${
|
|
230
|
+
: Prisma.GetScalarType<T[P], Prisma.${modelNameCap}GroupByOutputType[P]>
|
|
231
|
+
: Prisma.GetScalarType<T[P], Prisma.${modelNameCap}GroupByOutputType[P]>
|
|
221
232
|
}
|
|
222
233
|
> : InputErrors`;
|
|
223
234
|
generateQueryHook(sf, model, 'groupBy', '', inputType, returnType, typeParameters);
|
|
@@ -226,7 +237,7 @@ function generateModelHooks(project, outDir, model, mapping) {
|
|
|
226
237
|
{
|
|
227
238
|
const argsType = `Prisma.${model.name}CountArgs`;
|
|
228
239
|
const inputType = `Prisma.Subset<T, ${argsType}>`;
|
|
229
|
-
const returnType = `T extends { select: any; } ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], Prisma.${
|
|
240
|
+
const returnType = `T extends { select: any; } ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], Prisma.${modelNameCap}CountAggregateOutputType> : number`;
|
|
230
241
|
generateQueryHook(sf, model, 'count', argsType, inputType, returnType);
|
|
231
242
|
}
|
|
232
243
|
useMutation.addStatements(`return { ${mutationFuncs.join(', ')} };`);
|
|
@@ -234,28 +245,43 @@ function generateModelHooks(project, outDir, model, mapping) {
|
|
|
234
245
|
function generateIndex(project, outDir, models) {
|
|
235
246
|
const sf = project.createSourceFile(path_1.default.join(outDir, 'index.ts'), undefined, { overwrite: true });
|
|
236
247
|
sf.addStatements(models.map((d) => `export * from './${(0, change_case_1.paramCase)(d.name)}';`));
|
|
248
|
+
sf.addStatements(`export { Provider } from '@zenstackhq/swr/runtime';`);
|
|
237
249
|
}
|
|
238
|
-
function generateQueryHook(sf, model, operation, argsType, inputType, returnType, typeParameters) {
|
|
250
|
+
function generateQueryHook(sf, model, operation, argsType, inputType, returnType, typeParameters, infinite = false) {
|
|
239
251
|
const modelRouteName = (0, lower_case_first_1.lowerCaseFirst)(model.name);
|
|
252
|
+
const typeParams = typeParameters ? [...typeParameters] : [`T extends ${argsType}`];
|
|
253
|
+
if (infinite) {
|
|
254
|
+
typeParams.push(`R extends ${returnType}`);
|
|
255
|
+
}
|
|
256
|
+
const parameters = [];
|
|
257
|
+
if (!infinite) {
|
|
258
|
+
parameters.push({
|
|
259
|
+
name: 'args?',
|
|
260
|
+
type: inputType,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
parameters.push({
|
|
265
|
+
name: 'getNextArgs',
|
|
266
|
+
type: `GetNextArgs<${inputType} | undefined, R>`,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
parameters.push({
|
|
270
|
+
name: 'options?',
|
|
271
|
+
type: infinite ? `InfiniteRequestOptions<${returnType}>` : `RequestOptions<${returnType}>`,
|
|
272
|
+
});
|
|
240
273
|
sf.addFunction({
|
|
241
|
-
name: `use${(0, upper_case_first_1.upperCaseFirst)(operation)}${model.name}`,
|
|
242
|
-
typeParameters:
|
|
274
|
+
name: `use${infinite ? 'Infinite' : ''}${(0, upper_case_first_1.upperCaseFirst)(operation)}${model.name}`,
|
|
275
|
+
typeParameters: typeParams,
|
|
243
276
|
isExported: true,
|
|
244
|
-
parameters
|
|
245
|
-
{
|
|
246
|
-
name: 'args?',
|
|
247
|
-
type: inputType,
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
name: 'options?',
|
|
251
|
-
type: `RequestOptions<${returnType}>`,
|
|
252
|
-
},
|
|
253
|
-
],
|
|
277
|
+
parameters,
|
|
254
278
|
})
|
|
255
279
|
.addBody()
|
|
256
280
|
.addStatements([
|
|
257
281
|
'const { endpoint, fetch } = useContext(RequestHandlerContext);',
|
|
258
|
-
|
|
282
|
+
!infinite
|
|
283
|
+
? `return request.get<${returnType}>(\`\${endpoint}/${modelRouteName}/${operation}\`, args, options, fetch);`
|
|
284
|
+
: `return request.infiniteGet<${inputType} | undefined, ${returnType}>(\`\${endpoint}/${modelRouteName}/${operation}\`, getNextArgs, options, fetch);`,
|
|
259
285
|
]);
|
|
260
286
|
}
|
|
261
287
|
function generateMutation(func, model, method, operation, argsType, inputType, returnType, checkReadBack) {
|
package/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/swr",
|
|
3
3
|
"displayName": "ZenStack plugin for generating SWR hooks",
|
|
4
|
-
"version": "1.0.0
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"description": "ZenStack plugin for generating SWR hooks",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"repository": {
|
|
@@ -20,16 +20,18 @@
|
|
|
20
20
|
"change-case": "^4.1.2",
|
|
21
21
|
"decimal.js": "^10.4.2",
|
|
22
22
|
"lower-case-first": "^2.0.2",
|
|
23
|
+
"semver": "^7.3.8",
|
|
23
24
|
"ts-morph": "^16.0.0",
|
|
24
25
|
"upper-case-first": "^2.0.2",
|
|
25
|
-
"@zenstackhq/
|
|
26
|
-
"@zenstackhq/
|
|
26
|
+
"@zenstackhq/sdk": "1.0.0",
|
|
27
|
+
"@zenstackhq/runtime": "1.0.0"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
30
|
"@tanstack/react-query": "^4.28.0",
|
|
30
31
|
"@types/jest": "^29.5.0",
|
|
31
32
|
"@types/node": "^18.0.0",
|
|
32
33
|
"@types/react": "18.2.0",
|
|
34
|
+
"@types/semver": "^7.3.13",
|
|
33
35
|
"@types/tmp": "^0.2.3",
|
|
34
36
|
"copyfiles": "^2.4.1",
|
|
35
37
|
"jest": "^29.5.0",
|
|
@@ -38,7 +40,7 @@
|
|
|
38
40
|
"swr": "^2.0.3",
|
|
39
41
|
"ts-jest": "^29.0.5",
|
|
40
42
|
"typescript": "^4.9.4",
|
|
41
|
-
"@zenstackhq/testtools": "1.0.0
|
|
43
|
+
"@zenstackhq/testtools": "1.0.0"
|
|
42
44
|
},
|
|
43
45
|
"scripts": {
|
|
44
46
|
"clean": "rimraf dist",
|
package/runtime/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { MutatorCallback, MutatorOptions, SWRResponse } from 'swr';
|
|
2
|
+
import type { Fetcher, MutatorCallback, MutatorOptions, SWRConfiguration, SWRResponse } from 'swr';
|
|
3
|
+
import { SWRInfiniteConfiguration, SWRInfiniteFetcher, SWRInfiniteResponse } from 'swr/infinite';
|
|
3
4
|
export * from './prisma-types';
|
|
4
5
|
/**
|
|
5
6
|
* Function signature for `fetch`.
|
|
@@ -27,20 +28,55 @@ export declare const RequestHandlerContext: import("react").Context<RequestHandl
|
|
|
27
28
|
*/
|
|
28
29
|
export declare const Provider: import("react").Provider<RequestHandlerContext>;
|
|
29
30
|
/**
|
|
30
|
-
* Client request options
|
|
31
|
+
* Client request options for regular query.
|
|
31
32
|
*/
|
|
32
|
-
export type RequestOptions<
|
|
33
|
+
export type RequestOptions<Result, Error = any> = {
|
|
34
|
+
/**
|
|
35
|
+
* Disable data fetching
|
|
36
|
+
*/
|
|
33
37
|
disabled?: boolean;
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Equivalent to @see SWRConfiguration.fallbackData
|
|
40
|
+
*/
|
|
41
|
+
initialData?: Result;
|
|
42
|
+
} & SWRConfiguration<Result, Error, Fetcher<Result>>;
|
|
43
|
+
/**
|
|
44
|
+
* Client request options for infinite query.
|
|
45
|
+
*/
|
|
46
|
+
export type InfiniteRequestOptions<Result, Error = any> = {
|
|
47
|
+
/**
|
|
48
|
+
* Disable data fetching
|
|
49
|
+
*/
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Equivalent to @see SWRInfiniteConfiguration.fallbackData
|
|
53
|
+
*/
|
|
54
|
+
initialData?: Result[];
|
|
55
|
+
} & SWRInfiniteConfiguration<Result, Error, SWRInfiniteFetcher<Result>>;
|
|
36
56
|
/**
|
|
37
57
|
* Makes a GET request with SWR.
|
|
38
58
|
*
|
|
39
59
|
* @param url The request URL.
|
|
40
60
|
* @param args The request args object, which will be superjson-stringified and appended as "?q=" parameter
|
|
61
|
+
* @param options Query options
|
|
62
|
+
* @param fetch Custom fetch function
|
|
41
63
|
* @returns SWR response
|
|
42
64
|
*/
|
|
43
|
-
export declare function get<Result, Error = any>(url: string | null, args?: unknown, options?: RequestOptions<Result>, fetch?: FetchFn): SWRResponse<Result, Error>;
|
|
65
|
+
export declare function get<Result, Error = any>(url: string | null, args?: unknown, options?: RequestOptions<Result, Error>, fetch?: FetchFn): SWRResponse<Result, Error>;
|
|
66
|
+
/**
|
|
67
|
+
* Function for computing the query args for fetching a page during an infinite query.
|
|
68
|
+
*/
|
|
69
|
+
export type GetNextArgs<Args, Result> = (pageIndex: number, previousPageData: Result | null) => Args | null;
|
|
70
|
+
/**
|
|
71
|
+
* Makes an infinite GET request with SWR.
|
|
72
|
+
*
|
|
73
|
+
* @param url The request URL.
|
|
74
|
+
* @param getNextArgs Function for computing the query args for a page.
|
|
75
|
+
* @param options Query options
|
|
76
|
+
* @param fetch Custom fetch function
|
|
77
|
+
* @returns SWR infinite query response
|
|
78
|
+
*/
|
|
79
|
+
export declare function infiniteGet<Args, Result, Error = any>(url: string | null, getNextArgs: GetNextArgs<Args, any>, options?: InfiniteRequestOptions<Result, Error>, fetch?: FetchFn): SWRInfiniteResponse<Result, Error>;
|
|
44
80
|
/**
|
|
45
81
|
* Makes a POST request.
|
|
46
82
|
*
|
package/runtime/index.js
CHANGED
|
@@ -34,12 +34,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
34
34
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
38
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
39
|
+
};
|
|
37
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.fetcher = exports.getMutate = exports.del = exports.put = exports.post = exports.get = exports.Provider = exports.RequestHandlerContext = void 0;
|
|
41
|
+
exports.fetcher = exports.getMutate = exports.del = exports.put = exports.post = exports.infiniteGet = exports.get = exports.Provider = exports.RequestHandlerContext = void 0;
|
|
39
42
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
40
43
|
const browser_1 = require("@zenstackhq/runtime/browser");
|
|
41
44
|
const react_1 = require("react");
|
|
42
45
|
const swr_1 = __importStar(require("swr"));
|
|
46
|
+
const infinite_1 = __importDefault(require("swr/infinite"));
|
|
43
47
|
__exportStar(require("./prisma-types"), exports);
|
|
44
48
|
/**
|
|
45
49
|
* Context for configuring react hooks.
|
|
@@ -57,16 +61,41 @@ exports.Provider = exports.RequestHandlerContext.Provider;
|
|
|
57
61
|
*
|
|
58
62
|
* @param url The request URL.
|
|
59
63
|
* @param args The request args object, which will be superjson-stringified and appended as "?q=" parameter
|
|
64
|
+
* @param options Query options
|
|
65
|
+
* @param fetch Custom fetch function
|
|
60
66
|
* @returns SWR response
|
|
61
67
|
*/
|
|
62
68
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
69
|
function get(url, args, options, fetch) {
|
|
70
|
+
var _a;
|
|
64
71
|
const reqUrl = (options === null || options === void 0 ? void 0 : options.disabled) ? null : url ? makeUrl(url, args) : null;
|
|
65
|
-
return (0, swr_1.default)(reqUrl, (url) => fetcher(url, undefined, fetch, false), {
|
|
66
|
-
fallbackData: options === null || options === void 0 ? void 0 : options.initialData,
|
|
67
|
-
});
|
|
72
|
+
return (0, swr_1.default)(reqUrl, (url) => fetcher(url, undefined, fetch, false), Object.assign(Object.assign({}, options), { fallbackData: (_a = options === null || options === void 0 ? void 0 : options.initialData) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.fallbackData }));
|
|
68
73
|
}
|
|
69
74
|
exports.get = get;
|
|
75
|
+
/**
|
|
76
|
+
* Makes an infinite GET request with SWR.
|
|
77
|
+
*
|
|
78
|
+
* @param url The request URL.
|
|
79
|
+
* @param getNextArgs Function for computing the query args for a page.
|
|
80
|
+
* @param options Query options
|
|
81
|
+
* @param fetch Custom fetch function
|
|
82
|
+
* @returns SWR infinite query response
|
|
83
|
+
*/
|
|
84
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
85
|
+
function infiniteGet(url, getNextArgs, options, fetch) {
|
|
86
|
+
var _a;
|
|
87
|
+
const getKey = (pageIndex, previousPageData) => {
|
|
88
|
+
if ((options === null || options === void 0 ? void 0 : options.disabled) || !url) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const nextArgs = getNextArgs(pageIndex, previousPageData);
|
|
92
|
+
return nextArgs !== null // null means reached the end
|
|
93
|
+
? makeUrl(url, nextArgs)
|
|
94
|
+
: null;
|
|
95
|
+
};
|
|
96
|
+
return (0, infinite_1.default)(getKey, (url) => fetcher(url, undefined, fetch, false), Object.assign(Object.assign({}, options), { fallbackData: (_a = options === null || options === void 0 ? void 0 : options.initialData) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.fallbackData }));
|
|
97
|
+
}
|
|
98
|
+
exports.infiniteGet = infiniteGet;
|
|
70
99
|
/**
|
|
71
100
|
* Makes a POST request.
|
|
72
101
|
*
|
package/runtime/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,yDAAqE;AACrE,iCAAsC;AAEtC,2CAA2C;AAC3C,4DAAiH;AACjH,iDAA+B;AAsB/B;;GAEG;AACU,QAAA,qBAAqB,GAAG,IAAA,qBAAa,EAAwB;IACtE,QAAQ,EAAE,YAAY;IACtB,KAAK,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,QAAQ,GAAG,6BAAqB,CAAC,QAAQ,CAAC;AAgCvD;;;;;;;;GAQG;AACH,8DAA8D;AAC9D,SAAgB,GAAG,CACf,GAAkB,EAClB,IAAc,EACd,OAAuC,EACvC,KAAe;;IAEf,MAAM,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,OAAO,IAAA,aAAM,EAAgB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAgB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,kCAC3F,OAAO,KACV,YAAY,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,IAC7D,CAAC;AACP,CAAC;AAXD,kBAWC;AAOD;;;;;;;;GAQG;AACH,8DAA8D;AAC9D,SAAgB,WAAW,CACvB,GAAkB,EAClB,WAAmC,EACnC,OAA+C,EAC/C,KAAe;;IAEf,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,gBAA+B,EAAE,EAAE;QAClE,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAC,GAAG,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC1D,OAAO,QAAQ,KAAK,IAAI,CAAC,6BAA6B;YAClD,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,IAAA,kBAAc,EAAgB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAgB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,kCACnG,OAAO,KACV,YAAY,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,IAC7D,CAAC;AACP,CAAC;AApBD,kCAoBC;AAED;;;;;;GAMG;AACH,SAAsB,IAAI,CACtB,GAAW,EACX,IAAa,EACb,MAAe,EACf,KAAe,EACf,aAAiB;;QAEjB,MAAM,CAAC,GAAG,MAAM,OAAO,CACnB,GAAG,EACH;YACI,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;aACrC;YACD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;SACtB,EACD,KAAK,EACL,aAAa,CAChB,CAAC;QACF,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,CAAC;IACb,CAAC;CAAA;AArBD,oBAqBC;AAED;;;;;;GAMG;AACH,SAAsB,GAAG,CACrB,GAAW,EACX,IAAa,EACb,MAAe,EACf,KAAe,EACf,aAAiB;;QAEjB,MAAM,CAAC,GAAG,MAAM,OAAO,CACnB,GAAG,EACH;YACI,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;aACrC;YACD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;SACtB,EACD,KAAK,EACL,aAAa,CAChB,CAAC;QACF,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,CAAC;IACb,CAAC;CAAA;AArBD,kBAqBC;AAED;;;;;;GAMG;AACH,SAAsB,GAAG,CACrB,GAAW,EACX,IAAa,EACb,MAAe,EACf,KAAe,EACf,aAAiB;;QAEjB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,OAAO,CACnB,MAAM,EACN;YACI,MAAM,EAAE,QAAQ;SACnB,EACD,KAAK,EACL,aAAa,CAChB,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,CAAC;IACb,CAAC;CAAA;AApBD,kBAoBC;AAOD,SAAgB,SAAS,CAAC,QAAkB;IACxC,6EAA6E;IAC7E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAY,GAAE,CAAC;IACzC,OAAO,CAAC,IAAmD,EAAE,IAA+B,EAAE,EAAE;QAC5F,IAAI,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC9E;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACtE,CAAC;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC;AACN,CAAC;AAdD,8BAcC;AAED,SAAsB,OAAO,CACzB,GAAW,EACX,OAAqB,EACrB,KAAe,EACf,aAAiB;;;QAEjB,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,KAAK,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACT,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,IACI,aAAa,KAAK,KAAK;iBACvB,MAAA,OAAO,CAAC,KAAK,0CAAE,MAAM,CAAA;gBACrB,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI,MAAK,OAAO;gBAC/B,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,MAAM,MAAK,qBAAqB,EACjD;gBACE,8EAA8E;gBAC9E,OAAO,SAAgB,CAAC;aAC3B;YACD,MAAM,KAAK,GAAgD,IAAI,KAAK,CAChE,4CAA4C,CAC/C,CAAC;YACF,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,KAAK,CAAC;SACf;QAED,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI;YACA,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,IAAS,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YACzD,MAAM,GAAG,CAAC;SACb;;CACJ;AAlCD,0BAkCC;AAED,SAAS,OAAO,CAAC,KAAc;IAC3B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;IACxC,IAAI,IAAI,EAAE;QACN,OAAO,IAAI,CAAC,SAAS,iCAAO,IAAY,KAAE,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAG,CAAC;KAC9E;SAAM;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC/B;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,IAAI,KAAI,MAAA,MAAM,CAAC,IAAI,0CAAE,aAAa,CAAA,EAAE;QAC3C,MAAM,gBAAgB,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7E,uCAAY,MAAM,KAAE,IAAI,EAAE,gBAAgB,IAAG;KAChD;SAAM;QACH,OAAO,MAAM,CAAC;KACjB;AACL,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,IAAa;IACvC,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,GAAG,CAAC;KACd;IAED,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACpE,IAAI,IAAI,EAAE;QACN,MAAM,IAAI,SAAS,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACpF;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -3,4 +3,15 @@ type _TupleToUnion<T> = T extends (infer E)[] ? E : never;
|
|
|
3
3
|
export type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>;
|
|
4
4
|
export type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T;
|
|
5
5
|
export type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Pick<T, MaybeTupleToUnion<K>>;
|
|
6
|
+
type SelectAndInclude = {
|
|
7
|
+
select: any;
|
|
8
|
+
include: any;
|
|
9
|
+
};
|
|
10
|
+
type HasSelect = {
|
|
11
|
+
select: any;
|
|
12
|
+
};
|
|
13
|
+
type HasInclude = {
|
|
14
|
+
include: any;
|
|
15
|
+
};
|
|
16
|
+
export type CheckSelect<T, S, U> = T extends SelectAndInclude ? 'Please either choose `select` or `include`' : T extends HasSelect ? U : T extends HasInclude ? U : S;
|
|
6
17
|
export {};
|