fluent-convex 0.5.2 → 0.7.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/builder.d.ts +8 -4
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +1 -1
- package/dist/builder.js.map +1 -1
- package/package.json +1 -1
- package/src/builder.test-d.ts +2 -1
- package/src/builder.ts +26 -13
- package/src/experimental.test-d.ts +2 -1
package/dist/builder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RegisteredQuery, type RegisteredMutation, type RegisteredAction, type GenericDataModel
|
|
1
|
+
import { type RegisteredQuery, type RegisteredMutation, type RegisteredAction, type GenericDataModel } from "convex/server";
|
|
2
2
|
import type { ConvexMiddleware, AnyConvexMiddleware } from "./middleware";
|
|
3
3
|
import type { Context, ConvexArgsValidator, ConvexReturnsValidator, InferArgs, InferReturns, FunctionType, Visibility, QueryCtx, MutationCtx, ActionCtx, EmptyObject } from "./types";
|
|
4
4
|
import { type ValidatorInput, type ReturnsValidatorInput, type ToConvexArgsValidator, type ToConvexReturnsValidator } from "./zod_support";
|
|
@@ -33,10 +33,14 @@ export declare class ConvexBuilderWithFunctionKind<TDataModel extends GenericDat
|
|
|
33
33
|
use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
|
|
34
34
|
input<UInput extends ValidatorInput>(validator: UInput): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, ToConvexArgsValidator<UInput>, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
|
|
35
35
|
returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, ToConvexReturnsValidator<UReturns>, TVisibility, THasHandler, THandlerReturn>;
|
|
36
|
-
handler<TReturn extends ExpectedReturnType<TReturnsValidator> = ExpectedReturnType<TReturnsValidator
|
|
36
|
+
handler<TReturn extends [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : any = [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : any>(handlerFn: (options: {
|
|
37
37
|
context: TCurrentContext;
|
|
38
38
|
input: InferredArgs<TArgsValidator>;
|
|
39
|
-
}) => Promise<TReturn>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility,
|
|
39
|
+
}) => Promise<TReturn>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility, [
|
|
40
|
+
TReturnsValidator
|
|
41
|
+
] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn> & CallableBuilder<TCurrentContext, TArgsValidator, [
|
|
42
|
+
TReturnsValidator
|
|
43
|
+
] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn>;
|
|
40
44
|
}
|
|
41
45
|
type CallableBuilder<TCurrentContext extends Context, TArgsValidator extends ConvexArgsValidator | undefined, THandlerReturn> = {
|
|
42
46
|
(context: TCurrentContext): (args: InferredArgs<TArgsValidator>) => Promise<THandlerReturn>;
|
|
@@ -50,6 +54,6 @@ export declare class ConvexBuilderWithHandler<TDataModel extends GenericDataMode
|
|
|
50
54
|
internal(): TFunctionType extends "query" ? RegisteredQuery<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "mutation" ? RegisteredMutation<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "action" ? RegisteredAction<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : never;
|
|
51
55
|
private _register;
|
|
52
56
|
}
|
|
53
|
-
export declare function createBuilder<
|
|
57
|
+
export declare function createBuilder<TDataModel extends GenericDataModel>(): ConvexBuilder<TDataModel>;
|
|
54
58
|
export {};
|
|
55
59
|
//# sourceMappingURL=builder.d.ts.map
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAOrB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/builder.js
CHANGED
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,qBAAqB,
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/builder.test-d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
defineTable,
|
|
7
7
|
type RegisteredQuery,
|
|
8
8
|
type RegisteredMutation,
|
|
9
|
+
type DataModelFromSchemaDefinition,
|
|
9
10
|
} from "convex/server";
|
|
10
11
|
import { createBuilder } from "./builder";
|
|
11
12
|
import { input, returns } from "./decorators";
|
|
@@ -17,7 +18,7 @@ const schema = defineSchema({
|
|
|
17
18
|
}),
|
|
18
19
|
});
|
|
19
20
|
|
|
20
|
-
const convex = createBuilder(
|
|
21
|
+
const convex = createBuilder<DataModelFromSchemaDefinition<typeof schema>>();
|
|
21
22
|
|
|
22
23
|
describe("ConvexBuilder Type Tests", () => {
|
|
23
24
|
describe("input validation", () => {
|
package/src/builder.ts
CHANGED
|
@@ -9,8 +9,6 @@ import {
|
|
|
9
9
|
actionGeneric,
|
|
10
10
|
internalActionGeneric,
|
|
11
11
|
type GenericDataModel,
|
|
12
|
-
type DataModelFromSchemaDefinition,
|
|
13
|
-
type SchemaDefinition,
|
|
14
12
|
} from "convex/server";
|
|
15
13
|
import type { ConvexMiddleware, AnyConvexMiddleware } from "./middleware";
|
|
16
14
|
import type {
|
|
@@ -312,8 +310,11 @@ export class ConvexBuilderWithFunctionKind<
|
|
|
312
310
|
}
|
|
313
311
|
|
|
314
312
|
handler<
|
|
315
|
-
TReturn extends
|
|
316
|
-
ExpectedReturnType<TReturnsValidator>
|
|
313
|
+
TReturn extends [TReturnsValidator] extends [ConvexReturnsValidator]
|
|
314
|
+
? ExpectedReturnType<TReturnsValidator>
|
|
315
|
+
: any = [TReturnsValidator] extends [ConvexReturnsValidator]
|
|
316
|
+
? ExpectedReturnType<TReturnsValidator>
|
|
317
|
+
: any,
|
|
317
318
|
>(
|
|
318
319
|
handlerFn: (options: {
|
|
319
320
|
context: TCurrentContext;
|
|
@@ -327,9 +328,17 @@ export class ConvexBuilderWithFunctionKind<
|
|
|
327
328
|
TArgsValidator,
|
|
328
329
|
TReturnsValidator,
|
|
329
330
|
TVisibility,
|
|
330
|
-
|
|
331
|
+
[TReturnsValidator] extends [ConvexReturnsValidator]
|
|
332
|
+
? ExpectedReturnType<TReturnsValidator>
|
|
333
|
+
: TReturn
|
|
331
334
|
> &
|
|
332
|
-
CallableBuilder<
|
|
335
|
+
CallableBuilder<
|
|
336
|
+
TCurrentContext,
|
|
337
|
+
TArgsValidator,
|
|
338
|
+
[TReturnsValidator] extends [ConvexReturnsValidator]
|
|
339
|
+
? ExpectedReturnType<TReturnsValidator>
|
|
340
|
+
: TReturn
|
|
341
|
+
> {
|
|
333
342
|
if (this.def.handler) {
|
|
334
343
|
throw new Error(
|
|
335
344
|
"Handler already defined. Only one handler can be set per function chain."
|
|
@@ -349,6 +358,10 @@ export class ConvexBuilderWithFunctionKind<
|
|
|
349
358
|
});
|
|
350
359
|
};
|
|
351
360
|
|
|
361
|
+
type InferredReturn = [TReturnsValidator] extends [ConvexReturnsValidator]
|
|
362
|
+
? ExpectedReturnType<TReturnsValidator>
|
|
363
|
+
: TReturn;
|
|
364
|
+
|
|
352
365
|
return new ConvexBuilderWithHandler<
|
|
353
366
|
TDataModel,
|
|
354
367
|
TFunctionType,
|
|
@@ -357,7 +370,7 @@ export class ConvexBuilderWithFunctionKind<
|
|
|
357
370
|
TArgsValidator,
|
|
358
371
|
TReturnsValidator,
|
|
359
372
|
TVisibility,
|
|
360
|
-
|
|
373
|
+
InferredReturn
|
|
361
374
|
>({
|
|
362
375
|
...this.def,
|
|
363
376
|
handler: rawHandler as any,
|
|
@@ -369,9 +382,9 @@ export class ConvexBuilderWithFunctionKind<
|
|
|
369
382
|
TArgsValidator,
|
|
370
383
|
TReturnsValidator,
|
|
371
384
|
TVisibility,
|
|
372
|
-
|
|
385
|
+
InferredReturn
|
|
373
386
|
> &
|
|
374
|
-
CallableBuilder<TCurrentContext, TArgsValidator,
|
|
387
|
+
CallableBuilder<TCurrentContext, TArgsValidator, InferredReturn>;
|
|
375
388
|
}
|
|
376
389
|
}
|
|
377
390
|
|
|
@@ -599,10 +612,10 @@ export class ConvexBuilderWithHandler<
|
|
|
599
612
|
}
|
|
600
613
|
}
|
|
601
614
|
|
|
602
|
-
export function createBuilder<
|
|
603
|
-
|
|
604
|
-
): ConvexBuilder<
|
|
605
|
-
return new ConvexBuilder({
|
|
615
|
+
export function createBuilder<
|
|
616
|
+
TDataModel extends GenericDataModel,
|
|
617
|
+
>(): ConvexBuilder<TDataModel> {
|
|
618
|
+
return new ConvexBuilder<TDataModel>({
|
|
606
619
|
middlewares: [],
|
|
607
620
|
visibility: "public",
|
|
608
621
|
});
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
GenericDataModel,
|
|
12
12
|
ApiFromModules,
|
|
13
13
|
queryGeneric,
|
|
14
|
+
type DataModelFromSchemaDefinition,
|
|
14
15
|
} from "convex/server";
|
|
15
16
|
import { createBuilder } from "./builder";
|
|
16
17
|
|
|
@@ -20,7 +21,7 @@ const schema = defineSchema({
|
|
|
20
21
|
}),
|
|
21
22
|
});
|
|
22
23
|
|
|
23
|
-
const convex = createBuilder(
|
|
24
|
+
const convex = createBuilder<DataModelFromSchemaDefinition<typeof schema>>();
|
|
24
25
|
|
|
25
26
|
// Base types
|
|
26
27
|
type TArgs = { count: number };
|