fluent-convex 0.4.2 → 0.4.3
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 +9 -9
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/builder.ts +100 -34
- package/src/types.ts +8 -1
package/dist/builder.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type RegisteredQuery, type RegisteredMutation, type RegisteredAction, type GenericDataModel, type DataModelFromSchemaDefinition, type SchemaDefinition } from "convex/server";
|
|
2
2
|
import type { ConvexMiddleware, AnyConvexMiddleware } from "./middleware";
|
|
3
|
-
import type { Context, ConvexArgsValidator, ConvexReturnsValidator, InferArgs, FunctionType, Visibility, QueryCtx, MutationCtx, ActionCtx } from "./types";
|
|
3
|
+
import type { Context, ConvexArgsValidator, ConvexReturnsValidator, InferArgs, FunctionType, Visibility, QueryCtx, MutationCtx, ActionCtx, EmptyObject } from "./types";
|
|
4
4
|
import { type ValidatorInput, type ReturnsValidatorInput, type ToConvexArgsValidator, type ToConvexReturnsValidator } from "./zod_support";
|
|
5
|
-
type InferredArgs<T extends ConvexArgsValidator | undefined> = T extends ConvexArgsValidator ? InferArgs<T> :
|
|
5
|
+
type InferredArgs<T extends ConvexArgsValidator | undefined> = T extends ConvexArgsValidator ? InferArgs<T> : EmptyObject;
|
|
6
6
|
interface ConvexBuilderDef<TFunctionType extends FunctionType | undefined, TArgsValidator extends ConvexArgsValidator | undefined, TReturnsValidator extends ConvexReturnsValidator | undefined, TVisibility extends Visibility> {
|
|
7
7
|
functionType?: TFunctionType;
|
|
8
8
|
middlewares: readonly AnyConvexMiddleware[];
|
|
@@ -10,16 +10,16 @@ interface ConvexBuilderDef<TFunctionType extends FunctionType | undefined, TArgs
|
|
|
10
10
|
returnsValidator?: TReturnsValidator;
|
|
11
11
|
visibility: TVisibility;
|
|
12
12
|
}
|
|
13
|
-
export declare class ConvexBuilder<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType | undefined = undefined, TInitialContext extends Context =
|
|
13
|
+
export declare class ConvexBuilder<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType | undefined = undefined, TInitialContext extends Context = EmptyObject, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, TVisibility extends Visibility = "public"> {
|
|
14
14
|
private def;
|
|
15
15
|
constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>);
|
|
16
|
-
$context<U extends Context>(): ConvexBuilder<TDataModel, TFunctionType, U &
|
|
17
|
-
middleware<UInContext extends Context, UOutContext extends Context>(middleware: ConvexMiddleware<UInContext, UOutContext>): ConvexMiddleware<UInContext, UOutContext>;
|
|
16
|
+
$context<U extends Context>(): ConvexBuilder<TDataModel, TFunctionType, U & EmptyObject, U, TArgsValidator, TReturnsValidator, TVisibility>;
|
|
18
17
|
middleware<UOutContext extends Context>(middleware: ConvexMiddleware<TInitialContext, UOutContext>): ConvexMiddleware<TInitialContext, UOutContext>;
|
|
18
|
+
middleware<UInContext extends Context, UOutContext extends Context>(middleware: ConvexMiddleware<UInContext, UOutContext>): ConvexMiddleware<UInContext, UOutContext>;
|
|
19
19
|
use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilder<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility>;
|
|
20
|
-
query(): ConvexBuilder<TDataModel, "query", TInitialContext extends
|
|
21
|
-
mutation(): ConvexBuilder<TDataModel, "mutation", TInitialContext extends
|
|
22
|
-
action(): ConvexBuilder<TDataModel, "action", TInitialContext extends
|
|
20
|
+
query(): ConvexBuilder<TDataModel, "query", TInitialContext extends EmptyObject ? QueryCtx<TDataModel> : TInitialContext, TCurrentContext extends EmptyObject ? QueryCtx<TDataModel> : TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility>;
|
|
21
|
+
mutation(): ConvexBuilder<TDataModel, "mutation", TInitialContext extends EmptyObject ? MutationCtx<TDataModel> : TInitialContext, TCurrentContext extends EmptyObject ? MutationCtx<TDataModel> : TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility>;
|
|
22
|
+
action(): ConvexBuilder<TDataModel, "action", TInitialContext extends EmptyObject ? ActionCtx<TDataModel> : TInitialContext, TCurrentContext extends EmptyObject ? ActionCtx<TDataModel> : TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility>;
|
|
23
23
|
internal(): ConvexBuilder<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, TReturnsValidator, "internal">;
|
|
24
24
|
input<UInput extends ValidatorInput>(validator: UInput): ConvexBuilder<TDataModel, TFunctionType, TInitialContext, TCurrentContext, ToConvexArgsValidator<UInput>, TReturnsValidator, TVisibility>;
|
|
25
25
|
returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): ConvexBuilder<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, ToConvexReturnsValidator<UReturns>, TVisibility>;
|
|
@@ -28,6 +28,6 @@ export declare class ConvexBuilder<TDataModel extends GenericDataModel = Generic
|
|
|
28
28
|
input: InferredArgs<TArgsValidator>;
|
|
29
29
|
}) => Promise<TReturn>): TFunctionType extends "query" ? RegisteredQuery<TVisibility, InferredArgs<TArgsValidator>, Promise<TReturn>> : TFunctionType extends "mutation" ? RegisteredMutation<TVisibility, InferredArgs<TArgsValidator>, Promise<TReturn>> : TFunctionType extends "action" ? RegisteredAction<TVisibility, InferredArgs<TArgsValidator>, Promise<TReturn>> : never;
|
|
30
30
|
}
|
|
31
|
-
export declare function createBuilder<TSchema extends SchemaDefinition<any, boolean>>(_schema: TSchema): ConvexBuilder<DataModelFromSchemaDefinition<TSchema>, undefined,
|
|
31
|
+
export declare function createBuilder<TSchema extends SchemaDefinition<any, boolean>>(_schema: TSchema): ConvexBuilder<DataModelFromSchemaDefinition<TSchema>, undefined, EmptyObject, EmptyObject, undefined, undefined, "public">;
|
|
32
32
|
export {};
|
|
33
33
|
//# 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,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EACV,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,
|
|
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,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EACV,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EAEZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AAEvB,KAAK,YAAY,CAAC,CAAC,SAAS,mBAAmB,GAAG,SAAS,IACzD,CAAC,SAAS,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAE7D,UAAU,gBAAgB,CACxB,aAAa,SAAS,YAAY,GAAG,SAAS,EAC9C,cAAc,SAAS,mBAAmB,GAAG,SAAS,EACtD,iBAAiB,SAAS,sBAAsB,GAAG,SAAS,EAC5D,WAAW,SAAS,UAAU;IAE9B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC5C,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,qBAAa,aAAa,CACxB,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EACtD,aAAa,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC1D,eAAe,SAAS,OAAO,GAAG,WAAW,EAC7C,eAAe,SAAS,OAAO,GAAG,WAAW,EAC7C,cAAc,SAAS,mBAAmB,GAAG,SAAS,GAAG,SAAS,EAClE,iBAAiB,SAAS,sBAAsB,GAAG,SAAS,GAAG,SAAS,EACxE,WAAW,SAAS,UAAU,GAAG,QAAQ;IAEzC,OAAO,CAAC,GAAG,CAKT;gBAGA,GAAG,EAAE,gBAAgB,CACnB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAKH,QAAQ,CAAC,CAAC,SAAS,OAAO,KAAK,aAAa,CAC1C,UAAU,EACV,aAAa,EACb,CAAC,GAAG,WAAW,EACf,CAAC,EACD,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAeD,UAAU,CAAC,WAAW,SAAS,OAAO,EACpC,UAAU,EAAE,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,GACzD,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC;IACjD,UAAU,CAAC,UAAU,SAAS,OAAO,EAAE,WAAW,SAAS,OAAO,EAChE,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,GACpD,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC;IAO5C,GAAG,CAAC,WAAW,SAAS,OAAO,EAC7B,UAAU,EAAE,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,GACzD,aAAa,CACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,GAAG,WAAW,EAC7B,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAeD,KAAK,IAAI,aAAa,CACpB,UAAU,EACV,OAAO,EACP,eAAe,SAAS,WAAW,GAC/B,QAAQ,CAAC,UAAU,CAAC,GACpB,eAAe,EACnB,eAAe,SAAS,WAAW,GAC/B,QAAQ,CAAC,UAAU,CAAC,GACpB,eAAe,EACnB,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAeD,QAAQ,IAAI,aAAa,CACvB,UAAU,EACV,UAAU,EACV,eAAe,SAAS,WAAW,GAC/B,WAAW,CAAC,UAAU,CAAC,GACvB,eAAe,EACnB,eAAe,SAAS,WAAW,GAC/B,WAAW,CAAC,UAAU,CAAC,GACvB,eAAe,EACnB,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAeD,MAAM,IAAI,aAAa,CACrB,UAAU,EACV,QAAQ,EACR,eAAe,SAAS,WAAW,GAC/B,SAAS,CAAC,UAAU,CAAC,GACrB,eAAe,EACnB,eAAe,SAAS,WAAW,GAC/B,SAAS,CAAC,UAAU,CAAC,GACrB,eAAe,EACnB,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAeD,QAAQ,IAAI,aAAa,CACvB,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,UAAU,CACX;IAeD,KAAK,CAAC,MAAM,SAAS,cAAc,EACjC,SAAS,EAAE,MAAM,GAChB,aAAa,CACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,qBAAqB,CAAC,MAAM,CAAC,EAC7B,iBAAiB,EACjB,WAAW,CACZ;IAmBD,OAAO,CAAC,QAAQ,SAAS,qBAAqB,EAC5C,SAAS,EAAE,QAAQ,GAClB,aAAa,CACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,wBAAwB,CAAC,QAAQ,CAAC,EAClC,WAAW,CACZ;IAmBD,OAAO,CAAC,OAAO,EACb,SAAS,EAAE,CAAC,OAAO,EAAE;QACnB,OAAO,EAAE,eAAe,CAAC;QACzB,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;KACrC,KAAK,OAAO,CAAC,OAAO,CAAC,GACrB,aAAa,SAAS,OAAO,GAC5B,eAAe,CACb,WAAW,EACX,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,OAAO,CAAC,CACjB,GACD,aAAa,SAAS,UAAU,GAC9B,kBAAkB,CAChB,WAAW,EACX,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,OAAO,CAAC,CACjB,GACD,aAAa,SAAS,QAAQ,GAC5B,gBAAgB,CACd,WAAW,EACX,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,OAAO,CAAC,CACjB,GACD,KAAK;CAqDd;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAC1E,OAAO,EAAE,OAAO,GACf,aAAa,CACd,6BAA6B,CAAC,OAAO,CAAC,EACtC,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAKA"}
|
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,GAItB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { PropertyValidators, GenericValidator } from "convex/values";
|
|
2
2
|
import type { GenericActionCtx, GenericMutationCtx, GenericQueryCtx, GenericDataModel } from "convex/server";
|
|
3
|
-
export type Context =
|
|
3
|
+
export type Context = object;
|
|
4
4
|
export type ConvexArgsValidator = PropertyValidators | GenericValidator;
|
|
5
5
|
export type ConvexReturnsValidator = GenericValidator;
|
|
6
6
|
type ValidatorType<T> = T extends GenericValidator ? T["type"] : never;
|
|
7
|
+
export type EmptyObject = Record<never, never>;
|
|
8
|
+
export type MaybeDefaultContext<TExisting extends Context, TFallback extends Context> = TExisting extends EmptyObject ? TFallback : TExisting;
|
|
7
9
|
type OptionalKeys<T extends Record<PropertyKey, any>> = {
|
|
8
10
|
[K in keyof T]: T[K] extends GenericValidator ? T[K]["isOptional"] extends "optional" ? K : never : never;
|
|
9
11
|
}[keyof T];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AACxE,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEtD,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE/C,MAAM,MAAM,mBAAmB,CAC7B,SAAS,SAAS,OAAO,EACzB,SAAS,SAAS,OAAO,IACvB,SAAS,SAAS,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GACzC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,UAAU,GACnC,CAAC,GACD,KAAK,GACP,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GACzC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,UAAU,GACnC,KAAK,GACL,CAAC,GACH,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI;KACrD,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GAClD,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAC/B,KAAK;CACV,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI;KACrD,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,mBAAmB,IACjD,CAAC,SAAS,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE/C,MAAM,MAAM,QAAQ,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,IACxE,eAAe,CAAC,SAAS,CAAC,CAAC;AAC7B,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,IAC3E,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAChC,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,IACzE,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAE9B,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC3D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC"}
|
package/package.json
CHANGED
package/src/builder.ts
CHANGED
|
@@ -23,6 +23,8 @@ import type {
|
|
|
23
23
|
QueryCtx,
|
|
24
24
|
MutationCtx,
|
|
25
25
|
ActionCtx,
|
|
26
|
+
EmptyObject,
|
|
27
|
+
MaybeDefaultContext,
|
|
26
28
|
} from "./types";
|
|
27
29
|
import {
|
|
28
30
|
isZodSchema,
|
|
@@ -34,7 +36,7 @@ import {
|
|
|
34
36
|
} from "./zod_support";
|
|
35
37
|
|
|
36
38
|
type InferredArgs<T extends ConvexArgsValidator | undefined> =
|
|
37
|
-
T extends ConvexArgsValidator ? InferArgs<T> :
|
|
39
|
+
T extends ConvexArgsValidator ? InferArgs<T> : EmptyObject;
|
|
38
40
|
|
|
39
41
|
interface ConvexBuilderDef<
|
|
40
42
|
TFunctionType extends FunctionType | undefined,
|
|
@@ -52,8 +54,8 @@ interface ConvexBuilderDef<
|
|
|
52
54
|
export class ConvexBuilder<
|
|
53
55
|
TDataModel extends GenericDataModel = GenericDataModel,
|
|
54
56
|
TFunctionType extends FunctionType | undefined = undefined,
|
|
55
|
-
TInitialContext extends Context =
|
|
56
|
-
TCurrentContext extends Context =
|
|
57
|
+
TInitialContext extends Context = EmptyObject,
|
|
58
|
+
TCurrentContext extends Context = EmptyObject,
|
|
57
59
|
TArgsValidator extends ConvexArgsValidator | undefined = undefined,
|
|
58
60
|
TReturnsValidator extends ConvexReturnsValidator | undefined = undefined,
|
|
59
61
|
TVisibility extends Visibility = "public",
|
|
@@ -79,24 +81,32 @@ export class ConvexBuilder<
|
|
|
79
81
|
$context<U extends Context>(): ConvexBuilder<
|
|
80
82
|
TDataModel,
|
|
81
83
|
TFunctionType,
|
|
82
|
-
U &
|
|
84
|
+
U & EmptyObject,
|
|
83
85
|
U,
|
|
84
86
|
TArgsValidator,
|
|
85
87
|
TReturnsValidator,
|
|
86
88
|
TVisibility
|
|
87
89
|
> {
|
|
88
|
-
return new ConvexBuilder
|
|
90
|
+
return new ConvexBuilder<
|
|
91
|
+
TDataModel,
|
|
92
|
+
TFunctionType,
|
|
93
|
+
U & EmptyObject,
|
|
94
|
+
U,
|
|
95
|
+
TArgsValidator,
|
|
96
|
+
TReturnsValidator,
|
|
97
|
+
TVisibility
|
|
98
|
+
>({
|
|
89
99
|
...this.def,
|
|
90
100
|
middlewares: [],
|
|
91
101
|
});
|
|
92
102
|
}
|
|
93
103
|
|
|
94
|
-
middleware<UInContext extends Context, UOutContext extends Context>(
|
|
95
|
-
middleware: ConvexMiddleware<UInContext, UOutContext>
|
|
96
|
-
): ConvexMiddleware<UInContext, UOutContext>;
|
|
97
104
|
middleware<UOutContext extends Context>(
|
|
98
105
|
middleware: ConvexMiddleware<TInitialContext, UOutContext>
|
|
99
106
|
): ConvexMiddleware<TInitialContext, UOutContext>;
|
|
107
|
+
middleware<UInContext extends Context, UOutContext extends Context>(
|
|
108
|
+
middleware: ConvexMiddleware<UInContext, UOutContext>
|
|
109
|
+
): ConvexMiddleware<UInContext, UOutContext>;
|
|
100
110
|
middleware<UInContext extends Context, UOutContext extends Context>(
|
|
101
111
|
middleware: ConvexMiddleware<UInContext, UOutContext>
|
|
102
112
|
): ConvexMiddleware<UInContext, UOutContext> {
|
|
@@ -114,67 +124,99 @@ export class ConvexBuilder<
|
|
|
114
124
|
TReturnsValidator,
|
|
115
125
|
TVisibility
|
|
116
126
|
> {
|
|
117
|
-
return new ConvexBuilder
|
|
127
|
+
return new ConvexBuilder<
|
|
128
|
+
TDataModel,
|
|
129
|
+
TFunctionType,
|
|
130
|
+
TInitialContext,
|
|
131
|
+
TCurrentContext & UOutContext,
|
|
132
|
+
TArgsValidator,
|
|
133
|
+
TReturnsValidator,
|
|
134
|
+
TVisibility
|
|
135
|
+
>({
|
|
118
136
|
...this.def,
|
|
119
|
-
middlewares: [...this.def.middlewares, middleware],
|
|
137
|
+
middlewares: [...this.def.middlewares, middleware as AnyConvexMiddleware],
|
|
120
138
|
});
|
|
121
139
|
}
|
|
122
140
|
|
|
123
141
|
query(): ConvexBuilder<
|
|
124
142
|
TDataModel,
|
|
125
143
|
"query",
|
|
126
|
-
TInitialContext extends
|
|
144
|
+
TInitialContext extends EmptyObject
|
|
127
145
|
? QueryCtx<TDataModel>
|
|
128
146
|
: TInitialContext,
|
|
129
|
-
TCurrentContext extends
|
|
147
|
+
TCurrentContext extends EmptyObject
|
|
130
148
|
? QueryCtx<TDataModel>
|
|
131
149
|
: TCurrentContext,
|
|
132
150
|
TArgsValidator,
|
|
133
151
|
TReturnsValidator,
|
|
134
152
|
TVisibility
|
|
135
153
|
> {
|
|
136
|
-
return new ConvexBuilder
|
|
154
|
+
return new ConvexBuilder<
|
|
155
|
+
TDataModel,
|
|
156
|
+
"query",
|
|
157
|
+
MaybeDefaultContext<TInitialContext, QueryCtx<TDataModel>>,
|
|
158
|
+
MaybeDefaultContext<TCurrentContext, QueryCtx<TDataModel>>,
|
|
159
|
+
TArgsValidator,
|
|
160
|
+
TReturnsValidator,
|
|
161
|
+
TVisibility
|
|
162
|
+
>({
|
|
137
163
|
...this.def,
|
|
138
164
|
functionType: "query",
|
|
139
|
-
})
|
|
165
|
+
});
|
|
140
166
|
}
|
|
141
167
|
|
|
142
168
|
mutation(): ConvexBuilder<
|
|
143
169
|
TDataModel,
|
|
144
170
|
"mutation",
|
|
145
|
-
TInitialContext extends
|
|
171
|
+
TInitialContext extends EmptyObject
|
|
146
172
|
? MutationCtx<TDataModel>
|
|
147
173
|
: TInitialContext,
|
|
148
|
-
TCurrentContext extends
|
|
174
|
+
TCurrentContext extends EmptyObject
|
|
149
175
|
? MutationCtx<TDataModel>
|
|
150
176
|
: TCurrentContext,
|
|
151
177
|
TArgsValidator,
|
|
152
178
|
TReturnsValidator,
|
|
153
179
|
TVisibility
|
|
154
180
|
> {
|
|
155
|
-
return new ConvexBuilder
|
|
181
|
+
return new ConvexBuilder<
|
|
182
|
+
TDataModel,
|
|
183
|
+
"mutation",
|
|
184
|
+
MaybeDefaultContext<TInitialContext, MutationCtx<TDataModel>>,
|
|
185
|
+
MaybeDefaultContext<TCurrentContext, MutationCtx<TDataModel>>,
|
|
186
|
+
TArgsValidator,
|
|
187
|
+
TReturnsValidator,
|
|
188
|
+
TVisibility
|
|
189
|
+
>({
|
|
156
190
|
...this.def,
|
|
157
191
|
functionType: "mutation",
|
|
158
|
-
})
|
|
192
|
+
});
|
|
159
193
|
}
|
|
160
194
|
|
|
161
195
|
action(): ConvexBuilder<
|
|
162
196
|
TDataModel,
|
|
163
197
|
"action",
|
|
164
|
-
TInitialContext extends
|
|
198
|
+
TInitialContext extends EmptyObject
|
|
165
199
|
? ActionCtx<TDataModel>
|
|
166
200
|
: TInitialContext,
|
|
167
|
-
TCurrentContext extends
|
|
201
|
+
TCurrentContext extends EmptyObject
|
|
168
202
|
? ActionCtx<TDataModel>
|
|
169
203
|
: TCurrentContext,
|
|
170
204
|
TArgsValidator,
|
|
171
205
|
TReturnsValidator,
|
|
172
206
|
TVisibility
|
|
173
207
|
> {
|
|
174
|
-
return new ConvexBuilder
|
|
208
|
+
return new ConvexBuilder<
|
|
209
|
+
TDataModel,
|
|
210
|
+
"action",
|
|
211
|
+
MaybeDefaultContext<TInitialContext, ActionCtx<TDataModel>>,
|
|
212
|
+
MaybeDefaultContext<TCurrentContext, ActionCtx<TDataModel>>,
|
|
213
|
+
TArgsValidator,
|
|
214
|
+
TReturnsValidator,
|
|
215
|
+
TVisibility
|
|
216
|
+
>({
|
|
175
217
|
...this.def,
|
|
176
218
|
functionType: "action",
|
|
177
|
-
})
|
|
219
|
+
});
|
|
178
220
|
}
|
|
179
221
|
|
|
180
222
|
internal(): ConvexBuilder<
|
|
@@ -186,7 +228,15 @@ export class ConvexBuilder<
|
|
|
186
228
|
TReturnsValidator,
|
|
187
229
|
"internal"
|
|
188
230
|
> {
|
|
189
|
-
return new ConvexBuilder
|
|
231
|
+
return new ConvexBuilder<
|
|
232
|
+
TDataModel,
|
|
233
|
+
TFunctionType,
|
|
234
|
+
TInitialContext,
|
|
235
|
+
TCurrentContext,
|
|
236
|
+
TArgsValidator,
|
|
237
|
+
TReturnsValidator,
|
|
238
|
+
"internal"
|
|
239
|
+
>({
|
|
190
240
|
...this.def,
|
|
191
241
|
visibility: "internal",
|
|
192
242
|
});
|
|
@@ -204,13 +254,21 @@ export class ConvexBuilder<
|
|
|
204
254
|
TVisibility
|
|
205
255
|
> {
|
|
206
256
|
const convexValidator = isZodSchema(validator)
|
|
207
|
-
? (toConvexValidator(validator) as
|
|
208
|
-
: (validator as
|
|
257
|
+
? (toConvexValidator(validator) as ToConvexArgsValidator<UInput>)
|
|
258
|
+
: (validator as ToConvexArgsValidator<UInput>);
|
|
209
259
|
|
|
210
|
-
return new ConvexBuilder
|
|
260
|
+
return new ConvexBuilder<
|
|
261
|
+
TDataModel,
|
|
262
|
+
TFunctionType,
|
|
263
|
+
TInitialContext,
|
|
264
|
+
TCurrentContext,
|
|
265
|
+
ToConvexArgsValidator<UInput>,
|
|
266
|
+
TReturnsValidator,
|
|
267
|
+
TVisibility
|
|
268
|
+
>({
|
|
211
269
|
...this.def,
|
|
212
270
|
argsValidator: convexValidator,
|
|
213
|
-
})
|
|
271
|
+
});
|
|
214
272
|
}
|
|
215
273
|
|
|
216
274
|
returns<UReturns extends ReturnsValidatorInput>(
|
|
@@ -225,13 +283,21 @@ export class ConvexBuilder<
|
|
|
225
283
|
TVisibility
|
|
226
284
|
> {
|
|
227
285
|
const convexValidator = isZodSchema(validator)
|
|
228
|
-
? (toConvexValidator(validator) as
|
|
229
|
-
: (validator as
|
|
286
|
+
? (toConvexValidator(validator) as ToConvexReturnsValidator<UReturns>)
|
|
287
|
+
: (validator as ToConvexReturnsValidator<UReturns>);
|
|
230
288
|
|
|
231
|
-
return new ConvexBuilder
|
|
289
|
+
return new ConvexBuilder<
|
|
290
|
+
TDataModel,
|
|
291
|
+
TFunctionType,
|
|
292
|
+
TInitialContext,
|
|
293
|
+
TCurrentContext,
|
|
294
|
+
TArgsValidator,
|
|
295
|
+
ToConvexReturnsValidator<UReturns>,
|
|
296
|
+
TVisibility
|
|
297
|
+
>({
|
|
232
298
|
...this.def,
|
|
233
299
|
returnsValidator: convexValidator,
|
|
234
|
-
})
|
|
300
|
+
});
|
|
235
301
|
}
|
|
236
302
|
|
|
237
303
|
handler<TReturn>(
|
|
@@ -279,7 +345,7 @@ export class ConvexBuilder<
|
|
|
279
345
|
| ActionCtx<TDataModel>,
|
|
280
346
|
baseArgs: InferredArgs<TArgsValidator>
|
|
281
347
|
) => {
|
|
282
|
-
let currentContext:
|
|
348
|
+
let currentContext: Context = baseCtx;
|
|
283
349
|
|
|
284
350
|
for (const middleware of middlewares) {
|
|
285
351
|
const result = await middleware({
|
|
@@ -317,8 +383,8 @@ export function createBuilder<TSchema extends SchemaDefinition<any, boolean>>(
|
|
|
317
383
|
): ConvexBuilder<
|
|
318
384
|
DataModelFromSchemaDefinition<TSchema>,
|
|
319
385
|
undefined,
|
|
320
|
-
|
|
321
|
-
|
|
386
|
+
EmptyObject,
|
|
387
|
+
EmptyObject,
|
|
322
388
|
undefined,
|
|
323
389
|
undefined,
|
|
324
390
|
"public"
|
package/src/types.ts
CHANGED
|
@@ -6,13 +6,20 @@ import type {
|
|
|
6
6
|
GenericDataModel,
|
|
7
7
|
} from "convex/server";
|
|
8
8
|
|
|
9
|
-
export type Context =
|
|
9
|
+
export type Context = object;
|
|
10
10
|
|
|
11
11
|
export type ConvexArgsValidator = PropertyValidators | GenericValidator;
|
|
12
12
|
export type ConvexReturnsValidator = GenericValidator;
|
|
13
13
|
|
|
14
14
|
type ValidatorType<T> = T extends GenericValidator ? T["type"] : never;
|
|
15
15
|
|
|
16
|
+
export type EmptyObject = Record<never, never>;
|
|
17
|
+
|
|
18
|
+
export type MaybeDefaultContext<
|
|
19
|
+
TExisting extends Context,
|
|
20
|
+
TFallback extends Context,
|
|
21
|
+
> = TExisting extends EmptyObject ? TFallback : TExisting;
|
|
22
|
+
|
|
16
23
|
type OptionalKeys<T extends Record<PropertyKey, any>> = {
|
|
17
24
|
[K in keyof T]: T[K] extends GenericValidator
|
|
18
25
|
? T[K]["isOptional"] extends "optional"
|