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 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> : Record<never, never>;
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 = Record<never, never>, TCurrentContext extends Context = Record<never, never>, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, TVisibility extends Visibility = "public"> {
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 & Record<never, never>, U, TArgsValidator, TReturnsValidator, TVisibility>;
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 Record<never, never> ? QueryCtx<TDataModel> : TInitialContext, TCurrentContext extends Record<never, never> ? QueryCtx<TDataModel> : TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility>;
21
- mutation(): ConvexBuilder<TDataModel, "mutation", TInitialContext extends Record<never, never> ? MutationCtx<TDataModel> : TInitialContext, TCurrentContext extends Record<never, never> ? MutationCtx<TDataModel> : TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility>;
22
- action(): ConvexBuilder<TDataModel, "action", TInitialContext extends Record<never, never> ? ActionCtx<TDataModel> : TInitialContext, TCurrentContext extends Record<never, never> ? ActionCtx<TDataModel> : TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility>;
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, Record<never, never>, Record<never, never>, undefined, undefined, "public">;
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
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
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;AAevB,OAAO,EACL,WAAW,EACX,iBAAiB,GAKlB,MAAM,eAAe,CAAC;AAkBvB,MAAM,OAAO,aAAa;IAShB,GAAG,CAKT;IAEF,YACE,GAKC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,QAAQ;QASN,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAQD,UAAU,CACR,UAAqD;QAErD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,GAAG,CACD,UAA0D;QAU1D,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAiC,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QAaH,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAaN,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QAaJ,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QASN,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CACH,SAAiB;QAUjB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAmC;YACjE,CAAC,CAAE,SAA2C,CAAC;QAEjD,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,aAAa,EAAE,eAAe;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,SAAmB;QAUnB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAwC;YACtE,CAAC,CAAE,SAAgD,CAAC;QAEtD,OAAO,IAAI,aAAa,CAQtB;YACA,GAAG,IAAI,CAAC,GAAG;YACX,gBAAgB,EAAE,eAAe;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,SAGsB;QAoBtB,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,UAAU,GACX,GAAG,IAAI,CAAC,GAAG,CAAC;QAEb,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,EAC3B,OAGyB,EACzB,QAAsC,EACtC,EAAE;YACF,IAAI,cAAc,GAAY,OAAO,CAAC;YAEtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;oBAC9B,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;iBACxD,CAAC,CAAC;gBACH,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;YAClC,CAAC;YAED,OAAO,SAAS,CAAC;gBACf,OAAO,EAAE,cAAiC;gBAC1C,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,aAAa,IAAI,EAAE;YACzB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,eAAe;SAClB,CAAC;QAET,MAAM,QAAQ,GAAG,UAAU,KAAK,QAAQ,CAAC;QACzC,MAAM,cAAc,GAAG;YACrB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB;YACrD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB;YAC9D,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB;SACzD,CAAC,YAAY,CAAC,CAAC;QAEhB,OAAO,cAAc,CAAC,MAAM,CAAQ,CAAC;IACvC,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAC3B,OAAgB;IAUhB,OAAO,IAAI,aAAa,CAAC;QACvB,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,QAAQ;KACrB,CAAC,CAAC;AACL,CAAC"}
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 = Record<PropertyKey, any>;
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];
@@ -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,WAAW,EAAE,GAAG,CAAC,CAAC;AAE/C,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,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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluent-convex",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "A fluent API builder for Convex functions with middleware support, inspired by oRPC",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
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> : Record<never, never>;
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 = Record<never, never>,
56
- TCurrentContext extends Context = Record<never, never>,
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 & Record<never, never>,
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 Record<never, never>
144
+ TInitialContext extends EmptyObject
127
145
  ? QueryCtx<TDataModel>
128
146
  : TInitialContext,
129
- TCurrentContext extends Record<never, never>
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
- }) as any;
165
+ });
140
166
  }
141
167
 
142
168
  mutation(): ConvexBuilder<
143
169
  TDataModel,
144
170
  "mutation",
145
- TInitialContext extends Record<never, never>
171
+ TInitialContext extends EmptyObject
146
172
  ? MutationCtx<TDataModel>
147
173
  : TInitialContext,
148
- TCurrentContext extends Record<never, never>
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
- }) as any;
192
+ });
159
193
  }
160
194
 
161
195
  action(): ConvexBuilder<
162
196
  TDataModel,
163
197
  "action",
164
- TInitialContext extends Record<never, never>
198
+ TInitialContext extends EmptyObject
165
199
  ? ActionCtx<TDataModel>
166
200
  : TInitialContext,
167
- TCurrentContext extends Record<never, never>
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
- }) as any;
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 ConvexArgsValidator)
208
- : (validator as ConvexArgsValidator);
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
- }) as any;
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 ConvexReturnsValidator)
229
- : (validator as ConvexReturnsValidator);
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
- }) as any;
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: any = baseCtx;
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
- Record<never, never>,
321
- Record<never, never>,
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 = Record<PropertyKey, any>;
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"