appflare 0.1.12 → 0.2.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/Documentation.md +735 -0
- package/cli/generate.ts +1 -1
- package/cli/templates/auth/README.md +3 -3
- package/cli/templates/auth/route-config.ts +1 -18
- package/cli/templates/auth/route-handler.ts +1 -18
- package/cli/templates/auth/route-request-utils.ts +2 -52
- package/cli/templates/auth/route.config.ts +18 -0
- package/cli/templates/auth/route.handler.ts +18 -0
- package/cli/templates/auth/route.request-utils.ts +55 -0
- package/cli/templates/auth/route.ts +2 -2
- package/cli/templates/core/README.md +2 -2
- package/cli/templates/core/client/appflare.ts +78 -3
- package/cli/templates/core/client/handlers.ts +1 -0
- package/cli/templates/core/client/index.ts +1 -0
- package/cli/templates/core/client/storage.ts +85 -5
- package/cli/templates/core/client/types.ts +91 -0
- package/cli/templates/core/client-modules/appflare.ts +1 -112
- package/cli/templates/core/client-modules/handlers.ts +1 -1
- package/cli/templates/core/client-modules/index.ts +1 -7
- package/cli/templates/core/client-modules/storage.ts +1 -180
- package/cli/templates/core/client-modules/types.ts +1 -145
- package/cli/templates/core/client.artifacts.ts +39 -0
- package/cli/templates/core/client.ts +4 -39
- package/cli/templates/core/server.ts +1 -1
- package/cli/templates/handlers/generators/registration/modules/realtime/publisher.ts +2 -5
- package/cli/templates/handlers/generators/registration/modules/realtime/routes.ts +4 -11
- package/cli/templates/handlers/generators/types/query-definitions.ts +74 -18
- package/cli/templates/handlers/generators/types/query-runtime.ts +20 -4
- package/package.json +1 -1
- /package/cli/templates/core/{client-modules → client}/handlers/index.ts +0 -0
- /package/cli/templates/core/{handlers-route.ts → handlers.route.ts} +0 -0
|
@@ -17,21 +17,83 @@ type TableFindManyArgs<TName extends TableName> = TableQuery<TName> extends {
|
|
|
17
17
|
}
|
|
18
18
|
? TArgs
|
|
19
19
|
: never;
|
|
20
|
-
type
|
|
21
|
-
findMany:
|
|
20
|
+
type TableFindManyMethod<TName extends TableName> = TableQuery<TName> extends {
|
|
21
|
+
findMany: infer TMethod;
|
|
22
22
|
}
|
|
23
|
+
? TMethod
|
|
24
|
+
: never;
|
|
25
|
+
type NativeFindManyWith<TName extends TableName> =
|
|
26
|
+
NonNullable<TableFindManyArgs<TName>> extends { with?: infer TWith }
|
|
27
|
+
? TWith
|
|
28
|
+
: never;
|
|
29
|
+
type ResolveNativeFindManyWith<
|
|
30
|
+
TName extends TableName,
|
|
31
|
+
TArgs extends QueryFindManyArgs<TName> | undefined,
|
|
32
|
+
> = TArgs extends { with?: infer TWith }
|
|
33
|
+
? Extract<TWith, NativeFindManyWith<TName>>
|
|
34
|
+
: never;
|
|
35
|
+
type ResolveTableFindManyArgs<
|
|
36
|
+
TName extends TableName,
|
|
37
|
+
TArgs extends QueryFindManyArgs<TName> | undefined,
|
|
38
|
+
> = TArgs extends undefined
|
|
39
|
+
? undefined
|
|
40
|
+
: Omit<NonNullable<TableFindManyArgs<TName>>, "where" | "with"> &
|
|
41
|
+
(ResolveNativeFindManyWith<TName, TArgs> extends never
|
|
42
|
+
? {}
|
|
43
|
+
: { with?: ResolveNativeFindManyWith<TName, TArgs> });
|
|
44
|
+
type TableFindManyResult<
|
|
45
|
+
TName extends TableName,
|
|
46
|
+
TArgs extends QueryFindManyArgs<TName> | undefined =
|
|
47
|
+
| QueryFindManyArgs<TName>
|
|
48
|
+
| undefined,
|
|
49
|
+
> = TableFindManyMethod<TName> extends (
|
|
50
|
+
args?: ResolveTableFindManyArgs<TName, TArgs>,
|
|
51
|
+
) => infer TResult
|
|
23
52
|
? TResult
|
|
24
|
-
:
|
|
53
|
+
: TableFindManyMethod<TName> extends (args?: unknown) => infer TResult
|
|
54
|
+
? TResult
|
|
55
|
+
: Promise<Array<TableModel<TName>>>;
|
|
25
56
|
type TableFindFirstArgs<TName extends TableName> = TableQuery<TName> extends {
|
|
26
57
|
findFirst: (args?: infer TArgs) => Promise<unknown>;
|
|
27
58
|
}
|
|
28
59
|
? TArgs
|
|
29
60
|
: never;
|
|
30
|
-
type
|
|
31
|
-
findFirst:
|
|
61
|
+
type TableFindFirstMethod<TName extends TableName> = TableQuery<TName> extends {
|
|
62
|
+
findFirst: infer TMethod;
|
|
32
63
|
}
|
|
64
|
+
? TMethod
|
|
65
|
+
: never;
|
|
66
|
+
type NativeFindFirstWith<TName extends TableName> =
|
|
67
|
+
NonNullable<TableFindFirstArgs<TName>> extends { with?: infer TWith }
|
|
68
|
+
? TWith
|
|
69
|
+
: never;
|
|
70
|
+
type ResolveNativeFindFirstWith<
|
|
71
|
+
TName extends TableName,
|
|
72
|
+
TArgs extends QueryFindFirstArgs<TName> | undefined,
|
|
73
|
+
> = TArgs extends { with?: infer TWith }
|
|
74
|
+
? Extract<TWith, NativeFindFirstWith<TName>>
|
|
75
|
+
: never;
|
|
76
|
+
type ResolveTableFindFirstArgs<
|
|
77
|
+
TName extends TableName,
|
|
78
|
+
TArgs extends QueryFindFirstArgs<TName> | undefined,
|
|
79
|
+
> = TArgs extends undefined
|
|
80
|
+
? undefined
|
|
81
|
+
: Omit<NonNullable<TableFindFirstArgs<TName>>, "where" | "with"> &
|
|
82
|
+
(ResolveNativeFindFirstWith<TName, TArgs> extends never
|
|
83
|
+
? {}
|
|
84
|
+
: { with?: ResolveNativeFindFirstWith<TName, TArgs> });
|
|
85
|
+
type TableFindFirstResult<
|
|
86
|
+
TName extends TableName,
|
|
87
|
+
TArgs extends QueryFindFirstArgs<TName> | undefined =
|
|
88
|
+
| QueryFindFirstArgs<TName>
|
|
89
|
+
| undefined,
|
|
90
|
+
> = TableFindFirstMethod<TName> extends (
|
|
91
|
+
args?: ResolveTableFindFirstArgs<TName, TArgs>,
|
|
92
|
+
) => infer TResult
|
|
33
93
|
? TResult
|
|
34
|
-
:
|
|
94
|
+
: TableFindFirstMethod<TName> extends (args?: unknown) => infer TResult
|
|
95
|
+
? TResult
|
|
96
|
+
: Promise<TableModel<TName> | null>;
|
|
35
97
|
type TableModel<TName extends TableName> = InferSelectModel<
|
|
36
98
|
(typeof mergedSchema)[TName]
|
|
37
99
|
>;
|
|
@@ -176,22 +238,16 @@ type QueryWithInput<TWith> = TWith extends Record<string, unknown>
|
|
|
176
238
|
|
|
177
239
|
export type QueryFindManyArgs<TName extends TableName> = Omit<
|
|
178
240
|
NonNullable<TableFindManyArgs<TName>>,
|
|
179
|
-
"where"
|
|
241
|
+
"where"
|
|
180
242
|
> & {
|
|
181
243
|
where?: WhereInput<TableModel<TName>>;
|
|
182
|
-
with?: TableFindManyArgs<TName> extends { with?: infer TWith }
|
|
183
|
-
? QueryWithInput<TWith>
|
|
184
|
-
: never;
|
|
185
244
|
};
|
|
186
245
|
|
|
187
246
|
export type QueryFindFirstArgs<TName extends TableName> = Omit<
|
|
188
247
|
NonNullable<TableFindFirstArgs<TName>>,
|
|
189
|
-
"where"
|
|
248
|
+
"where"
|
|
190
249
|
> & {
|
|
191
250
|
where?: WhereInput<TableModel<TName>>;
|
|
192
|
-
with?: TableFindFirstArgs<TName> extends { with?: infer TWith }
|
|
193
|
-
? QueryWithInput<TWith>
|
|
194
|
-
: never;
|
|
195
251
|
};
|
|
196
252
|
|
|
197
253
|
export type QueryInsertArgs<TName extends TableName> = {
|
|
@@ -303,20 +359,20 @@ export type QueryUpsertArgs<TName extends TableName> = {
|
|
|
303
359
|
};
|
|
304
360
|
|
|
305
361
|
export type QueryTableApi<TName extends TableName> = {
|
|
306
|
-
findMany: <
|
|
362
|
+
findMany: TableFindManyMethod<TName> & (<
|
|
307
363
|
TArgs extends QueryFindManyArgs<TName> | undefined =
|
|
308
364
|
| QueryFindManyArgs<TName>
|
|
309
365
|
| undefined,
|
|
310
366
|
>(
|
|
311
367
|
args?: TArgs,
|
|
312
|
-
) => ApplyFindManyWithAggregateResult<TableFindManyResult<TName>, TArgs
|
|
313
|
-
findFirst: <
|
|
368
|
+
) => ApplyFindManyWithAggregateResult<TableFindManyResult<TName, TArgs>, TArgs>);
|
|
369
|
+
findFirst: TableFindFirstMethod<TName> & (<
|
|
314
370
|
TArgs extends QueryFindFirstArgs<TName> | undefined =
|
|
315
371
|
| QueryFindFirstArgs<TName>
|
|
316
372
|
| undefined,
|
|
317
373
|
>(
|
|
318
374
|
args?: TArgs,
|
|
319
|
-
) => ApplyFindFirstWithAggregateResult<TableFindFirstResult<TName>, TArgs
|
|
375
|
+
) => ApplyFindFirstWithAggregateResult<TableFindFirstResult<TName, TArgs>, TArgs>);
|
|
320
376
|
insert: (args: QueryInsertArgs<TName>) => Promise<Array<TableModel<TName>>>;
|
|
321
377
|
update: (args: QueryUpdateArgs<TName>) => Promise<Array<TableModel<TName>>>;
|
|
322
378
|
upsert: (args: QueryUpsertArgs<TName>) => Promise<Array<TableModel<TName>>>;
|
|
@@ -46,6 +46,14 @@ export function generateTypesQueryRuntimeSection(): string {
|
|
|
46
46
|
? (args?.where as Record<string, unknown>)
|
|
47
47
|
: undefined;
|
|
48
48
|
const whereFilter = buildWhereFilter(table, where, tableName);
|
|
49
|
+
const passthroughArgs =
|
|
50
|
+
where !== undefined && !whereFilter
|
|
51
|
+
? (() => {
|
|
52
|
+
const nextArgs = { ...(args ?? {}) };
|
|
53
|
+
delete nextArgs.where;
|
|
54
|
+
return nextArgs;
|
|
55
|
+
})()
|
|
56
|
+
: args;
|
|
49
57
|
const withValue = args?.with;
|
|
50
58
|
const transformedWithResult =
|
|
51
59
|
withValue === undefined
|
|
@@ -57,11 +65,11 @@ export function generateTypesQueryRuntimeSection(): string {
|
|
|
57
65
|
const transformedWith = transformedWithResult.with;
|
|
58
66
|
const aggregatePlan = transformedWithResult.aggregatePlan;
|
|
59
67
|
if (!whereFilter && transformedWith === withValue && !aggregatePlan) {
|
|
60
|
-
return queryTable.findMany(
|
|
68
|
+
return queryTable.findMany(passthroughArgs);
|
|
61
69
|
}
|
|
62
70
|
|
|
63
71
|
const queryPromise = queryTable.findMany({
|
|
64
|
-
...(
|
|
72
|
+
...(passthroughArgs ?? {}),
|
|
65
73
|
...(whereFilter ? { where: () => whereFilter } : {}),
|
|
66
74
|
...(transformedWith !== undefined ? { with: transformedWith } : {}),
|
|
67
75
|
});
|
|
@@ -79,6 +87,14 @@ export function generateTypesQueryRuntimeSection(): string {
|
|
|
79
87
|
? (args?.where as Record<string, unknown>)
|
|
80
88
|
: undefined;
|
|
81
89
|
const whereFilter = buildWhereFilter(table, where, tableName);
|
|
90
|
+
const passthroughArgs =
|
|
91
|
+
where !== undefined && !whereFilter
|
|
92
|
+
? (() => {
|
|
93
|
+
const nextArgs = { ...(args ?? {}) };
|
|
94
|
+
delete nextArgs.where;
|
|
95
|
+
return nextArgs;
|
|
96
|
+
})()
|
|
97
|
+
: args;
|
|
82
98
|
const withValue = args?.with;
|
|
83
99
|
const transformedWithResult =
|
|
84
100
|
withValue === undefined
|
|
@@ -90,11 +106,11 @@ export function generateTypesQueryRuntimeSection(): string {
|
|
|
90
106
|
const transformedWith = transformedWithResult.with;
|
|
91
107
|
const aggregatePlan = transformedWithResult.aggregatePlan;
|
|
92
108
|
if (!whereFilter && transformedWith === withValue && !aggregatePlan) {
|
|
93
|
-
return queryTable.findFirst(
|
|
109
|
+
return queryTable.findFirst(passthroughArgs);
|
|
94
110
|
}
|
|
95
111
|
|
|
96
112
|
const queryPromise = queryTable.findFirst({
|
|
97
|
-
...(
|
|
113
|
+
...(passthroughArgs ?? {}),
|
|
98
114
|
...(whereFilter ? { where: () => whereFilter } : {}),
|
|
99
115
|
...(transformedWith !== undefined ? { with: transformedWith } : {}),
|
|
100
116
|
});
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|