fluent-convex 0.8.0 → 0.8.1

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.
@@ -5,10 +5,10 @@ import type { ConvexMiddleware } from "./middleware";
5
5
  import type { QueryCtx, MutationCtx, ActionCtx, Context, EmptyObject } from "./types";
6
6
  export declare class ConvexBuilder<TDataModel extends GenericDataModel = GenericDataModel> {
7
7
  private def;
8
- constructor(def: ConvexBuilderDef<undefined, undefined, undefined, "public">);
9
- query(): ConvexBuilderWithFunctionKind<TDataModel, "query", QueryCtx<TDataModel>, QueryCtx<TDataModel>>;
10
- mutation(): ConvexBuilderWithFunctionKind<TDataModel, "mutation", MutationCtx<TDataModel>, MutationCtx<TDataModel>>;
11
- action(): ConvexBuilderWithFunctionKind<TDataModel, "action", ActionCtx<TDataModel>, ActionCtx<TDataModel>>;
8
+ constructor(def: ConvexBuilderDef);
9
+ query(): ConvexBuilderWithFunctionKind<TDataModel, "query", QueryCtx<TDataModel>>;
10
+ mutation(): ConvexBuilderWithFunctionKind<TDataModel, "mutation", MutationCtx<TDataModel>>;
11
+ action(): ConvexBuilderWithFunctionKind<TDataModel, "action", ActionCtx<TDataModel>>;
12
12
  $context<U extends Context>(): {
13
13
  middleware<UOutContext extends Context>(middleware: ConvexMiddleware<U, UOutContext>): ConvexMiddleware<U, UOutContext>;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexBuilder.d.ts","sourceRoot":"","sources":["../src/ConvexBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa,CACxB,UAAU,SAAS,gBAAgB,GAAG,gBAAgB;IAEtD,OAAO,CAAC,GAAG,CAA8D;gBAGvE,GAAG,EAAE,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;IAKlE,KAAK,IAAI,6BAA6B,CACpC,UAAU,EACV,OAAO,EACP,QAAQ,CAAC,UAAU,CAAC,EACpB,QAAQ,CAAC,UAAU,CAAC,CACrB;IAYD,QAAQ,IAAI,6BAA6B,CACvC,UAAU,EACV,UAAU,EACV,WAAW,CAAC,UAAU,CAAC,EACvB,WAAW,CAAC,UAAU,CAAC,CACxB;IAYD,MAAM,IAAI,6BAA6B,CACrC,UAAU,EACV,QAAQ,EACR,SAAS,CAAC,UAAU,CAAC,EACrB,SAAS,CAAC,UAAU,CAAC,CACtB;IAYD,QAAQ,CAAC,CAAC,SAAS,OAAO,KAAK;QAC7B,UAAU,CAAC,WAAW,SAAS,OAAO,EACpC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,GAC3C,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;KACrC;IAWD,UAAU,CAAC,WAAW,SAAS,OAAO,EACpC,UAAU,EAAE,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,GACrD,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC7C,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;CAM7C"}
1
+ {"version":3,"file":"ConvexBuilder.d.ts","sourceRoot":"","sources":["../src/ConvexBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa,CACxB,UAAU,SAAS,gBAAgB,GAAG,gBAAgB;IAEtD,OAAO,CAAC,GAAG,CAAmB;gBAElB,GAAG,EAAE,gBAAgB;IAIjC,KAAK,IAAI,6BAA6B,CACpC,UAAU,EACV,OAAO,EACP,QAAQ,CAAC,UAAU,CAAC,CACrB;IAWD,QAAQ,IAAI,6BAA6B,CACvC,UAAU,EACV,UAAU,EACV,WAAW,CAAC,UAAU,CAAC,CACxB;IAWD,MAAM,IAAI,6BAA6B,CACrC,UAAU,EACV,QAAQ,EACR,SAAS,CAAC,UAAU,CAAC,CACtB;IAWD,QAAQ,CAAC,CAAC,SAAS,OAAO,KAAK;QAC7B,UAAU,CAAC,WAAW,SAAS,OAAO,EACpC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,GAC3C,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;KACrC;IAWD,UAAU,CAAC,WAAW,SAAS,OAAO,EACpC,UAAU,EAAE,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,GACrD,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC7C,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;CAM7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexBuilder.js","sourceRoot":"","sources":["../src/ConvexBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAUhF,MAAM,OAAO,aAAa;IAGhB,GAAG,CAA8D;IAEzE,YACE,GAAgE;QAEhE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK;QAMH,OAAO,IAAI,6BAA6B,CAKtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAMN,OAAO,IAAI,6BAA6B,CAKtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QAMJ,OAAO,IAAI,6BAA6B,CAKtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAKN,gFAAgF;QAChF,OAAO;YACL,UAAU,CACR,UAA4C;gBAE5C,OAAO,UAAU,CAAC;YACpB,CAAC;SACF,CAAC;IACJ,CAAC;IAQD,UAAU,CACR,UAAqD;QAErD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"ConvexBuilder.js","sourceRoot":"","sources":["../src/ConvexBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAUhF,MAAM,OAAO,aAAa;IAGhB,GAAG,CAAmB;IAE9B,YAAY,GAAqB;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK;QAKH,OAAO,IAAI,6BAA6B,CAItC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAKN,OAAO,IAAI,6BAA6B,CAItC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QAKJ,OAAO,IAAI,6BAA6B,CAItC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAKN,gFAAgF;QAChF,OAAO;YACL,UAAU,CACR,UAA4C;gBAE5C,OAAO,UAAU,CAAC;YACpB,CAAC;SACF,CAAC;IACJ,CAAC;IAQD,UAAU,CACR,UAAqD;QAErD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
@@ -1,25 +1,20 @@
1
1
  import type { GenericDataModel } from "convex/server";
2
2
  import { ConvexBuilderWithHandler } from "./ConvexBuilderWithHandler";
3
- import { InferredArgs } from "./types";
4
- import { ExpectedReturnType } from "./types";
3
+ import { InferredArgs, InferredHandlerReturn } from "./types";
5
4
  import { ConvexBuilderDef } from "./types";
6
5
  import { CallableBuilder } from "./types";
7
6
  import type { ConvexMiddleware } from "./middleware";
8
- import type { FunctionType, Context, EmptyObject, ConvexArgsValidator, ConvexReturnsValidator, Visibility } from "./types";
7
+ import type { FunctionType, Context, EmptyObject, ConvexArgsValidator, ConvexReturnsValidator } from "./types";
9
8
  import { type ValidatorInput, type ToConvexArgsValidator, type ReturnsValidatorInput, type ToConvexReturnsValidator } from "./zod_support";
10
- export declare class ConvexBuilderWithFunctionKind<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType = FunctionType, TInitialContext extends Context = EmptyObject, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, TVisibility extends Visibility = "public", THasHandler extends boolean = false, THandlerReturn = any> {
11
- protected def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>;
12
- constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>);
13
- $context<U extends Context>(): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, U & EmptyObject, U, TArgsValidator, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
14
- middleware<UOutContext extends Context>(middleware: ConvexMiddleware<TInitialContext, UOutContext>): ConvexMiddleware<TInitialContext, UOutContext>;
9
+ export declare class ConvexBuilderWithFunctionKind<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType = FunctionType, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined> {
10
+ protected def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator>;
11
+ constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator>);
12
+ $context<U extends Context>(): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, U, TArgsValidator, TReturnsValidator>;
13
+ middleware<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexMiddleware<TCurrentContext, UOutContext>;
15
14
  middleware<UInContext extends Context, UOutContext extends Context>(middleware: ConvexMiddleware<UInContext, UOutContext>): ConvexMiddleware<UInContext, UOutContext>;
16
- use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
17
- input<UInput extends ValidatorInput>(validator: UInput): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, ToConvexArgsValidator<UInput>, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
18
- returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, ToConvexReturnsValidator<UReturns>, TVisibility, THasHandler, THandlerReturn>;
19
- handler<TReturn extends [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : any = [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : any>(handlerFn: (context: TCurrentContext, input: InferredArgs<TArgsValidator>) => Promise<TReturn>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility, [
20
- TReturnsValidator
21
- ] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn> & CallableBuilder<TCurrentContext, TArgsValidator, [
22
- TReturnsValidator
23
- ] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn>;
15
+ use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator>;
16
+ input<UInput extends ValidatorInput>(validator: UInput): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TCurrentContext, ToConvexArgsValidator<UInput>, TReturnsValidator>;
17
+ returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TCurrentContext, TArgsValidator, ToConvexReturnsValidator<UReturns>>;
18
+ handler<TReturn extends InferredHandlerReturn<TReturnsValidator, any> = InferredHandlerReturn<TReturnsValidator, any>>(handlerFn: (context: TCurrentContext, input: InferredArgs<TArgsValidator>) => Promise<TReturn>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TCurrentContext, TArgsValidator, TReturnsValidator, InferredHandlerReturn<TReturnsValidator, TReturn>> & CallableBuilder<TCurrentContext, TArgsValidator, InferredHandlerReturn<TReturnsValidator, TReturn>>;
24
19
  }
25
20
  //# sourceMappingURL=ConvexBuilderWithFunctionKind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexBuilderWithFunctionKind.d.ts","sourceRoot":"","sources":["../src/ConvexBuilderWithFunctionKind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConvexBuilderWithFunctionKind.d.ts","sourceRoot":"","sources":["../src/ConvexBuilderWithFunctionKind.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexBuilderWithFunctionKind.js","sourceRoot":"","sources":["../src/ConvexBuilderWithFunctionKind.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AActE,OAAO,EAGL,WAAW,EACX,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAEvB,MAAM,OAAO,6BAA6B;IAW9B,GAAG,CAKX;IAEF,YACE,GAKC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,QAAQ;QAWN,OAAO,IAAI,6BAA6B,CAUtC;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;QAY1D,OAAO,IAAI,6BAA6B,CAUtC;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,CACH,SAAiB;QAYjB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAmC;YACjE,CAAC,CAAE,SAA2C,CAAC;QAEjD,OAAO,IAAI,6BAA6B,CAUtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,aAAa,EAAE,eAAe;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,SAAmB;QAYnB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAwC;YACtE,CAAC,CAAE,SAAgD,CAAC;QAEtD,OAAO,IAAI,6BAA6B,CAUtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,gBAAgB,EAAE,eAAe;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAOL,SAGqB;QAoBrB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,mFAAmF;QACnF,oFAAoF;QACpF,MAAM,UAAU,GAAG,KAAK,EACtB,cAAuB,EACvB,QAAsC,EACtC,EAAE;YACF,OAAO,SAAS,CAAC,cAAiC,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC;QAMF,OAAO,IAAI,wBAAwB,CASjC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,OAAO,EAAE,UAAiB;SAC3B,CAUiE,CAAC;IACrE,CAAC;CACF"}
1
+ {"version":3,"file":"ConvexBuilderWithFunctionKind.js","sourceRoot":"","sources":["../src/ConvexBuilderWithFunctionKind.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAYtE,OAAO,EAGL,WAAW,EACX,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAEvB,MAAM,OAAO,6BAA6B;IAO9B,GAAG,CAIX;IAEF,YACE,GAAuE;QAEvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,QAAQ;QAON,OAAO,IAAI,6BAA6B,CAMtC;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;QAQ1D,OAAO,IAAI,6BAA6B,CAMtC;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,CACH,SAAiB;QAQjB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAmC;YACjE,CAAC,CAAE,SAA2C,CAAC;QAEjD,OAAO,IAAI,6BAA6B,CAMtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,aAAa,EAAE,eAAe;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,SAAmB;QAQnB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAwC;YACtE,CAAC,CAAE,SAAgD,CAAC;QAEtD,OAAO,IAAI,6BAA6B,CAMtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,gBAAgB,EAAE,eAAe;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAML,SAGqB;QAcrB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,mFAAmF;QACnF,oFAAoF;QACpF,MAAM,UAAU,GAAG,KAAK,EACtB,cAAuB,EACvB,QAAsC,EACtC,EAAE;YACF,OAAO,SAAS,CAAC,cAAiC,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC;QAIF,OAAO,IAAI,wBAAwB,CAOjC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,OAAO,EAAE,UAAiB;SAC3B,CAQiE,CAAC;IACrE,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
1
  import { type GenericDataModel, type RegisteredQuery, type RegisteredMutation, type RegisteredAction } from "convex/server";
2
2
  import type { ConvexMiddleware } from "./middleware";
3
- import type { FunctionType, Context, EmptyObject, ConvexArgsValidator, ConvexReturnsValidator, Visibility, ConvexBuilderDef, InferredArgs, CallableBuilder } from "./types";
4
- export declare class ConvexBuilderWithHandler<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", THandlerReturn = any> {
3
+ import type { FunctionType, Context, EmptyObject, ConvexArgsValidator, ConvexReturnsValidator, ConvexBuilderDef, InferredArgs, CallableBuilder } from "./types";
4
+ export declare class ConvexBuilderWithHandler<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType = FunctionType, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, THandlerReturn = any> {
5
5
  private def;
6
- constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>);
6
+ constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator>);
7
7
  private _call;
8
- use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility, THandlerReturn> & CallableBuilder<TCurrentContext & UOutContext, TArgsValidator, THandlerReturn>;
8
+ use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, THandlerReturn> & CallableBuilder<TCurrentContext & UOutContext, TArgsValidator, THandlerReturn>;
9
9
  public(): TFunctionType extends "query" ? RegisteredQuery<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "mutation" ? RegisteredMutation<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "action" ? RegisteredAction<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : never;
10
10
  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;
11
11
  private _register;
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexBuilderWithHandler.d.ts","sourceRoot":"","sources":["../src/ConvexBuilderWithHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAIhB,MAAM,SAAS,CAAC;AAEjB,qBAAa,wBAAwB,CACnC,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,EACzC,cAAc,GAAG,GAAG;IAEpB,OAAO,CAAC,GAAG,CAKT;gBAGA,GAAG,EAAE,gBAAgB,CACnB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAaH,OAAO,CAAC,KAAK;IAyBb,GAAG,CAAC,WAAW,SAAS,OAAO,EAC7B,UAAU,EAAE,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,GACzD,wBAAwB,CACzB,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,GAAG,WAAW,EAC7B,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,cAAc,CACf,GACC,eAAe,CACb,eAAe,GAAG,WAAW,EAC7B,cAAc,EACd,cAAc,CACf;IA8BH,MAAM,IAAI,aAAa,SAAS,OAAO,GACnC,eAAe,CACb,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,UAAU,GAC9B,kBAAkB,CAChB,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,QAAQ,GAC5B,gBAAgB,CACd,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,KAAK;IAIb,QAAQ,IAAI,aAAa,SAAS,OAAO,GACrC,eAAe,CACb,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,UAAU,GAC9B,kBAAkB,CAChB,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,QAAQ,GAC5B,gBAAgB,CACd,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,KAAK;IAIb,OAAO,CAAC,SAAS;CA0DlB"}
1
+ {"version":3,"file":"ConvexBuilderWithHandler.d.ts","sourceRoot":"","sources":["../src/ConvexBuilderWithHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EAEtB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAIhB,MAAM,SAAS,CAAC;AAEjB,qBAAa,wBAAwB,CACnC,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EACtD,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,eAAe,SAAS,OAAO,GAAG,WAAW,EAC7C,cAAc,SAAS,mBAAmB,GAAG,SAAS,GAAG,SAAS,EAClE,iBAAiB,SAAS,sBAAsB,GAAG,SAAS,GAAG,SAAS,EACxE,cAAc,GAAG,GAAG;IAEpB,OAAO,CAAC,GAAG,CAIT;gBAGA,GAAG,EAAE,gBAAgB,CAAC,aAAa,EAAE,cAAc,EAAE,iBAAiB,CAAC;IAazE,OAAO,CAAC,KAAK;IAyBb,GAAG,CAAC,WAAW,SAAS,OAAO,EAC7B,UAAU,EAAE,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,GACzD,wBAAwB,CACzB,UAAU,EACV,aAAa,EACb,eAAe,GAAG,WAAW,EAC7B,cAAc,EACd,iBAAiB,EACjB,cAAc,CACf,GACC,eAAe,CACb,eAAe,GAAG,WAAW,EAC7B,cAAc,EACd,cAAc,CACf;IA0BH,MAAM,IAAI,aAAa,SAAS,OAAO,GACnC,eAAe,CACb,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,UAAU,GAC9B,kBAAkB,CAChB,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,QAAQ,GAC5B,gBAAgB,CACd,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,KAAK;IAIb,QAAQ,IAAI,aAAa,SAAS,OAAO,GACrC,eAAe,CACb,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,UAAU,GAC9B,kBAAkB,CAChB,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,QAAQ,GAC5B,gBAAgB,CACd,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,KAAK;IAIb,OAAO,CAAC,SAAS;CA0DlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexBuilderWithHandler.js","sourceRoot":"","sources":["../src/ConvexBuilderWithHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConvexBuilderWithHandler.js","sourceRoot":"","sources":["../src/ConvexBuilderWithHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,wBAAgB,aAAa,CAC3B,UAAU,SAAS,gBAAgB,KAChC,aAAa,CAAC,UAAU,CAAC,CAK7B"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,wBAAgB,aAAa,CAC3B,UAAU,SAAS,gBAAgB,KAChC,aAAa,CAAC,UAAU,CAAC,CAI7B"}
package/dist/builder.js CHANGED
@@ -2,7 +2,6 @@ import { ConvexBuilder } from "./ConvexBuilder";
2
2
  export function createBuilder() {
3
3
  return new ConvexBuilder({
4
4
  middlewares: [],
5
- visibility: "public",
6
5
  });
7
6
  }
8
7
  //# sourceMappingURL=builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,aAAa;IAG3B,OAAO,IAAI,aAAa,CAAa;QACnC,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,QAAQ;KACrB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,aAAa;IAG3B,OAAO,IAAI,aAAa,CAAa;QACnC,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,5 +2,4 @@ export { createBuilder } from "./builder";
2
2
  export type { ConvexMiddleware, ConvexMiddlewareOptions, AnyConvexMiddleware, } from "./middleware";
3
3
  export type { Context, ConvexArgsValidator, ConvexReturnsValidator, InferArgs, QueryCtx, MutationCtx, ActionCtx, FunctionType, Visibility, } from "./types";
4
4
  export { isZodSchema, toConvexValidator, type ValidatorInput, type ReturnsValidatorInput, } from "./zod_support";
5
- export { input, returns, getMetadata, getMethodMetadataFromClass, makeCallableMethods, makeCallable, } from "./decorators";
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
1
  export { createBuilder } from "./builder";
2
2
  export { isZodSchema, toConvexValidator, } from "./zod_support";
3
- export { input, returns, getMetadata, getMethodMetadataFromClass, makeCallableMethods, makeCallable, } from "./decorators";
4
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAoB1C,OAAO,EACL,WAAW,EACX,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAoB1C,OAAO,EACL,WAAW,EACX,iBAAiB,GAGlB,MAAM,eAAe,CAAC"}
package/dist/types.d.ts CHANGED
@@ -30,15 +30,15 @@ export type Visibility = "public" | "internal";
30
30
  export type CallableBuilder<TCurrentContext extends Context, TArgsValidator extends ConvexArgsValidator | undefined, THandlerReturn> = {
31
31
  (context: TCurrentContext): (args: InferredArgs<TArgsValidator>) => Promise<THandlerReturn>;
32
32
  };
33
- export interface ConvexBuilderDef<TFunctionType extends FunctionType | undefined, TArgsValidator extends ConvexArgsValidator | undefined, TReturnsValidator extends ConvexReturnsValidator | undefined, TVisibility extends Visibility> {
33
+ export interface ConvexBuilderDef<TFunctionType extends FunctionType | undefined = undefined, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined> {
34
34
  functionType?: TFunctionType;
35
35
  middlewares: readonly AnyConvexMiddleware[];
36
36
  argsValidator?: TArgsValidator;
37
37
  returnsValidator?: TReturnsValidator;
38
- visibility: TVisibility;
39
38
  handler?: (context: Context, input: any) => Promise<any>;
40
39
  }
41
40
  export type ExpectedReturnType<TReturnsValidator extends ConvexReturnsValidator | undefined> = TReturnsValidator extends ConvexReturnsValidator ? InferReturns<TReturnsValidator> : any;
41
+ export type InferredHandlerReturn<TReturnsValidator extends ConvexReturnsValidator | undefined, TReturn> = [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn;
42
42
  export type InferredArgs<T extends ConvexArgsValidator | undefined> = T extends ConvexArgsValidator ? InferArgs<T> : EmptyObject;
43
43
  export {};
44
44
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluent-convex",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
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",
@@ -13,24 +13,20 @@ import type {
13
13
  export class ConvexBuilder<
14
14
  TDataModel extends GenericDataModel = GenericDataModel,
15
15
  > {
16
- private def: ConvexBuilderDef<undefined, undefined, undefined, "public">;
16
+ private def: ConvexBuilderDef;
17
17
 
18
- constructor(
19
- def: ConvexBuilderDef<undefined, undefined, undefined, "public">
20
- ) {
18
+ constructor(def: ConvexBuilderDef) {
21
19
  this.def = def;
22
20
  }
23
21
 
24
22
  query(): ConvexBuilderWithFunctionKind<
25
23
  TDataModel,
26
24
  "query",
27
- QueryCtx<TDataModel>,
28
25
  QueryCtx<TDataModel>
29
26
  > {
30
27
  return new ConvexBuilderWithFunctionKind<
31
28
  TDataModel,
32
29
  "query",
33
- QueryCtx<TDataModel>,
34
30
  QueryCtx<TDataModel>
35
31
  >({
36
32
  ...this.def,
@@ -41,13 +37,11 @@ export class ConvexBuilder<
41
37
  mutation(): ConvexBuilderWithFunctionKind<
42
38
  TDataModel,
43
39
  "mutation",
44
- MutationCtx<TDataModel>,
45
40
  MutationCtx<TDataModel>
46
41
  > {
47
42
  return new ConvexBuilderWithFunctionKind<
48
43
  TDataModel,
49
44
  "mutation",
50
- MutationCtx<TDataModel>,
51
45
  MutationCtx<TDataModel>
52
46
  >({
53
47
  ...this.def,
@@ -58,13 +52,11 @@ export class ConvexBuilder<
58
52
  action(): ConvexBuilderWithFunctionKind<
59
53
  TDataModel,
60
54
  "action",
61
- ActionCtx<TDataModel>,
62
55
  ActionCtx<TDataModel>
63
56
  > {
64
57
  return new ConvexBuilderWithFunctionKind<
65
58
  TDataModel,
66
59
  "action",
67
- ActionCtx<TDataModel>,
68
60
  ActionCtx<TDataModel>
69
61
  >({
70
62
  ...this.def,
@@ -1,7 +1,6 @@
1
1
  import type { GenericDataModel } from "convex/server";
2
2
  import { ConvexBuilderWithHandler } from "./ConvexBuilderWithHandler";
3
- import { InferredArgs } from "./types";
4
- import { ExpectedReturnType } from "./types";
3
+ import { InferredArgs, InferredHandlerReturn } from "./types";
5
4
  import { ConvexBuilderDef } from "./types";
6
5
  import { CallableBuilder } from "./types";
7
6
  import type { ConvexMiddleware, AnyConvexMiddleware } from "./middleware";
@@ -11,7 +10,6 @@ import type {
11
10
  EmptyObject,
12
11
  ConvexArgsValidator,
13
12
  ConvexReturnsValidator,
14
- Visibility,
15
13
  } from "./types";
16
14
  import {
17
15
  type ValidatorInput,
@@ -25,28 +23,18 @@ import {
25
23
  export class ConvexBuilderWithFunctionKind<
26
24
  TDataModel extends GenericDataModel = GenericDataModel,
27
25
  TFunctionType extends FunctionType = FunctionType,
28
- TInitialContext extends Context = EmptyObject,
29
26
  TCurrentContext extends Context = EmptyObject,
30
27
  TArgsValidator extends ConvexArgsValidator | undefined = undefined,
31
28
  TReturnsValidator extends ConvexReturnsValidator | undefined = undefined,
32
- TVisibility extends Visibility = "public",
33
- THasHandler extends boolean = false,
34
- THandlerReturn = any,
35
29
  > {
36
30
  protected def: ConvexBuilderDef<
37
31
  TFunctionType,
38
32
  TArgsValidator,
39
- TReturnsValidator,
40
- TVisibility
33
+ TReturnsValidator
41
34
  >;
42
35
 
43
36
  constructor(
44
- def: ConvexBuilderDef<
45
- TFunctionType,
46
- TArgsValidator,
47
- TReturnsValidator,
48
- TVisibility
49
- >
37
+ def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator>
50
38
  ) {
51
39
  this.def = def;
52
40
  }
@@ -54,24 +42,16 @@ export class ConvexBuilderWithFunctionKind<
54
42
  $context<U extends Context>(): ConvexBuilderWithFunctionKind<
55
43
  TDataModel,
56
44
  TFunctionType,
57
- U & EmptyObject,
58
45
  U,
59
46
  TArgsValidator,
60
- TReturnsValidator,
61
- TVisibility,
62
- THasHandler,
63
- THandlerReturn
47
+ TReturnsValidator
64
48
  > {
65
49
  return new ConvexBuilderWithFunctionKind<
66
50
  TDataModel,
67
51
  TFunctionType,
68
- U & EmptyObject,
69
52
  U,
70
53
  TArgsValidator,
71
- TReturnsValidator,
72
- TVisibility,
73
- THasHandler,
74
- THandlerReturn
54
+ TReturnsValidator
75
55
  >({
76
56
  ...this.def,
77
57
  middlewares: [],
@@ -79,8 +59,8 @@ export class ConvexBuilderWithFunctionKind<
79
59
  }
80
60
 
81
61
  middleware<UOutContext extends Context>(
82
- middleware: ConvexMiddleware<TInitialContext, UOutContext>
83
- ): ConvexMiddleware<TInitialContext, UOutContext>;
62
+ middleware: ConvexMiddleware<TCurrentContext, UOutContext>
63
+ ): ConvexMiddleware<TCurrentContext, UOutContext>;
84
64
  middleware<UInContext extends Context, UOutContext extends Context>(
85
65
  middleware: ConvexMiddleware<UInContext, UOutContext>
86
66
  ): ConvexMiddleware<UInContext, UOutContext>;
@@ -95,24 +75,16 @@ export class ConvexBuilderWithFunctionKind<
95
75
  ): ConvexBuilderWithFunctionKind<
96
76
  TDataModel,
97
77
  TFunctionType,
98
- TInitialContext,
99
78
  TCurrentContext & UOutContext,
100
79
  TArgsValidator,
101
- TReturnsValidator,
102
- TVisibility,
103
- THasHandler,
104
- THandlerReturn
80
+ TReturnsValidator
105
81
  > {
106
82
  return new ConvexBuilderWithFunctionKind<
107
83
  TDataModel,
108
84
  TFunctionType,
109
- TInitialContext,
110
85
  TCurrentContext & UOutContext,
111
86
  TArgsValidator,
112
- TReturnsValidator,
113
- TVisibility,
114
- THasHandler,
115
- THandlerReturn
87
+ TReturnsValidator
116
88
  >({
117
89
  ...this.def,
118
90
  middlewares: [...this.def.middlewares, middleware as AnyConvexMiddleware],
@@ -124,13 +96,9 @@ export class ConvexBuilderWithFunctionKind<
124
96
  ): ConvexBuilderWithFunctionKind<
125
97
  TDataModel,
126
98
  TFunctionType,
127
- TInitialContext,
128
99
  TCurrentContext,
129
100
  ToConvexArgsValidator<UInput>,
130
- TReturnsValidator,
131
- TVisibility,
132
- THasHandler,
133
- THandlerReturn
101
+ TReturnsValidator
134
102
  > {
135
103
  const convexValidator = isZodSchema(validator)
136
104
  ? (toConvexValidator(validator) as ToConvexArgsValidator<UInput>)
@@ -139,13 +107,9 @@ export class ConvexBuilderWithFunctionKind<
139
107
  return new ConvexBuilderWithFunctionKind<
140
108
  TDataModel,
141
109
  TFunctionType,
142
- TInitialContext,
143
110
  TCurrentContext,
144
111
  ToConvexArgsValidator<UInput>,
145
- TReturnsValidator,
146
- TVisibility,
147
- THasHandler,
148
- THandlerReturn
112
+ TReturnsValidator
149
113
  >({
150
114
  ...this.def,
151
115
  argsValidator: convexValidator,
@@ -157,13 +121,9 @@ export class ConvexBuilderWithFunctionKind<
157
121
  ): ConvexBuilderWithFunctionKind<
158
122
  TDataModel,
159
123
  TFunctionType,
160
- TInitialContext,
161
124
  TCurrentContext,
162
125
  TArgsValidator,
163
- ToConvexReturnsValidator<UReturns>,
164
- TVisibility,
165
- THasHandler,
166
- THandlerReturn
126
+ ToConvexReturnsValidator<UReturns>
167
127
  > {
168
128
  const convexValidator = isZodSchema(validator)
169
129
  ? (toConvexValidator(validator) as ToConvexReturnsValidator<UReturns>)
@@ -172,13 +132,9 @@ export class ConvexBuilderWithFunctionKind<
172
132
  return new ConvexBuilderWithFunctionKind<
173
133
  TDataModel,
174
134
  TFunctionType,
175
- TInitialContext,
176
135
  TCurrentContext,
177
136
  TArgsValidator,
178
- ToConvexReturnsValidator<UReturns>,
179
- TVisibility,
180
- THasHandler,
181
- THandlerReturn
137
+ ToConvexReturnsValidator<UReturns>
182
138
  >({
183
139
  ...this.def,
184
140
  returnsValidator: convexValidator,
@@ -186,11 +142,10 @@ export class ConvexBuilderWithFunctionKind<
186
142
  }
187
143
 
188
144
  handler<
189
- TReturn extends [TReturnsValidator] extends [ConvexReturnsValidator]
190
- ? ExpectedReturnType<TReturnsValidator>
191
- : any = [TReturnsValidator] extends [ConvexReturnsValidator]
192
- ? ExpectedReturnType<TReturnsValidator>
193
- : any,
145
+ TReturn extends InferredHandlerReturn<
146
+ TReturnsValidator,
147
+ any
148
+ > = InferredHandlerReturn<TReturnsValidator, any>,
194
149
  >(
195
150
  handlerFn: (
196
151
  context: TCurrentContext,
@@ -199,21 +154,15 @@ export class ConvexBuilderWithFunctionKind<
199
154
  ): ConvexBuilderWithHandler<
200
155
  TDataModel,
201
156
  TFunctionType,
202
- TInitialContext,
203
157
  TCurrentContext,
204
158
  TArgsValidator,
205
159
  TReturnsValidator,
206
- TVisibility,
207
- [TReturnsValidator] extends [ConvexReturnsValidator]
208
- ? ExpectedReturnType<TReturnsValidator>
209
- : TReturn
160
+ InferredHandlerReturn<TReturnsValidator, TReturn>
210
161
  > &
211
162
  CallableBuilder<
212
163
  TCurrentContext,
213
164
  TArgsValidator,
214
- [TReturnsValidator] extends [ConvexReturnsValidator]
215
- ? ExpectedReturnType<TReturnsValidator>
216
- : TReturn
165
+ InferredHandlerReturn<TReturnsValidator, TReturn>
217
166
  > {
218
167
  if (this.def.handler) {
219
168
  throw new Error(
@@ -231,18 +180,14 @@ export class ConvexBuilderWithFunctionKind<
231
180
  return handlerFn(transformedCtx as TCurrentContext, baseArgs);
232
181
  };
233
182
 
234
- type InferredReturn = [TReturnsValidator] extends [ConvexReturnsValidator]
235
- ? ExpectedReturnType<TReturnsValidator>
236
- : TReturn;
183
+ type InferredReturn = InferredHandlerReturn<TReturnsValidator, TReturn>;
237
184
 
238
185
  return new ConvexBuilderWithHandler<
239
186
  TDataModel,
240
187
  TFunctionType,
241
- TInitialContext,
242
188
  TCurrentContext,
243
189
  TArgsValidator,
244
190
  TReturnsValidator,
245
- TVisibility,
246
191
  InferredReturn
247
192
  >({
248
193
  ...this.def,
@@ -250,11 +195,9 @@ export class ConvexBuilderWithFunctionKind<
250
195
  }) as ConvexBuilderWithHandler<
251
196
  TDataModel,
252
197
  TFunctionType,
253
- TInitialContext,
254
198
  TCurrentContext,
255
199
  TArgsValidator,
256
200
  TReturnsValidator,
257
- TVisibility,
258
201
  InferredReturn
259
202
  > &
260
203
  CallableBuilder<TCurrentContext, TArgsValidator, InferredReturn>;
@@ -28,28 +28,20 @@ import type {
28
28
 
29
29
  export class ConvexBuilderWithHandler<
30
30
  TDataModel extends GenericDataModel = GenericDataModel,
31
- TFunctionType extends FunctionType | undefined = undefined,
32
- TInitialContext extends Context = EmptyObject,
31
+ TFunctionType extends FunctionType = FunctionType,
33
32
  TCurrentContext extends Context = EmptyObject,
34
33
  TArgsValidator extends ConvexArgsValidator | undefined = undefined,
35
34
  TReturnsValidator extends ConvexReturnsValidator | undefined = undefined,
36
- TVisibility extends Visibility = "public",
37
35
  THandlerReturn = any,
38
36
  > {
39
37
  private def: ConvexBuilderDef<
40
38
  TFunctionType,
41
39
  TArgsValidator,
42
- TReturnsValidator,
43
- TVisibility
40
+ TReturnsValidator
44
41
  >;
45
42
 
46
43
  constructor(
47
- def: ConvexBuilderDef<
48
- TFunctionType,
49
- TArgsValidator,
50
- TReturnsValidator,
51
- TVisibility
52
- >
44
+ def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator>
53
45
  ) {
54
46
  this.def = def;
55
47
 
@@ -92,11 +84,9 @@ export class ConvexBuilderWithHandler<
92
84
  ): ConvexBuilderWithHandler<
93
85
  TDataModel,
94
86
  TFunctionType,
95
- TInitialContext,
96
87
  TCurrentContext & UOutContext,
97
88
  TArgsValidator,
98
89
  TReturnsValidator,
99
- TVisibility,
100
90
  THandlerReturn
101
91
  > &
102
92
  CallableBuilder<
@@ -107,11 +97,9 @@ export class ConvexBuilderWithHandler<
107
97
  return new ConvexBuilderWithHandler<
108
98
  TDataModel,
109
99
  TFunctionType,
110
- TInitialContext,
111
100
  TCurrentContext & UOutContext,
112
101
  TArgsValidator,
113
102
  TReturnsValidator,
114
- TVisibility,
115
103
  THandlerReturn
116
104
  >({
117
105
  ...this.def,
@@ -119,11 +107,9 @@ export class ConvexBuilderWithHandler<
119
107
  }) as ConvexBuilderWithHandler<
120
108
  TDataModel,
121
109
  TFunctionType,
122
- TInitialContext,
123
110
  TCurrentContext & UOutContext,
124
111
  TArgsValidator,
125
112
  TReturnsValidator,
126
- TVisibility,
127
113
  THandlerReturn
128
114
  > &
129
115
  CallableBuilder<
@@ -9,7 +9,6 @@ import {
9
9
  type DataModelFromSchemaDefinition,
10
10
  } from "convex/server";
11
11
  import { createBuilder } from "./builder";
12
- import { input, returns } from "./decorators";
13
12
  import type { QueryCtx, MutationCtx } from "./types";
14
13
 
15
14
  const schema = defineSchema({
package/src/builder.ts CHANGED
@@ -6,6 +6,5 @@ export function createBuilder<
6
6
  >(): ConvexBuilder<TDataModel> {
7
7
  return new ConvexBuilder<TDataModel>({
8
8
  middlewares: [],
9
- visibility: "public",
10
9
  });
11
10
  }
package/src/index.ts CHANGED
@@ -24,12 +24,3 @@ export {
24
24
  type ValidatorInput,
25
25
  type ReturnsValidatorInput,
26
26
  } from "./zod_support";
27
-
28
- export {
29
- input,
30
- returns,
31
- getMetadata,
32
- getMethodMetadataFromClass,
33
- makeCallableMethods,
34
- makeCallable,
35
- } from "./decorators";
package/src/types.ts CHANGED
@@ -74,16 +74,14 @@ export type CallableBuilder<
74
74
  ): (args: InferredArgs<TArgsValidator>) => Promise<THandlerReturn>;
75
75
  };
76
76
  export interface ConvexBuilderDef<
77
- TFunctionType extends FunctionType | undefined,
78
- TArgsValidator extends ConvexArgsValidator | undefined,
79
- TReturnsValidator extends ConvexReturnsValidator | undefined,
80
- TVisibility extends Visibility,
77
+ TFunctionType extends FunctionType | undefined = undefined,
78
+ TArgsValidator extends ConvexArgsValidator | undefined = undefined,
79
+ TReturnsValidator extends ConvexReturnsValidator | undefined = undefined,
81
80
  > {
82
81
  functionType?: TFunctionType;
83
82
  middlewares: readonly AnyConvexMiddleware[];
84
83
  argsValidator?: TArgsValidator;
85
84
  returnsValidator?: TReturnsValidator;
86
- visibility: TVisibility;
87
85
  handler?: (context: Context, input: any) => Promise<any>;
88
86
  }
89
87
  export type ExpectedReturnType<
@@ -91,5 +89,13 @@ export type ExpectedReturnType<
91
89
  > = TReturnsValidator extends ConvexReturnsValidator
92
90
  ? InferReturns<TReturnsValidator>
93
91
  : any;
92
+
93
+ export type InferredHandlerReturn<
94
+ TReturnsValidator extends ConvexReturnsValidator | undefined,
95
+ TReturn,
96
+ > = [TReturnsValidator] extends [ConvexReturnsValidator]
97
+ ? ExpectedReturnType<TReturnsValidator>
98
+ : TReturn;
99
+
94
100
  export type InferredArgs<T extends ConvexArgsValidator | undefined> =
95
101
  T extends ConvexArgsValidator ? InferArgs<T> : EmptyObject;
@@ -1,40 +0,0 @@
1
- import type { ConvexArgsValidator, ConvexReturnsValidator } from "./types";
2
- import type { ValidatorInput, ReturnsValidatorInput } from "./zod_support";
3
- interface CallableMethodMetadata {
4
- inputValidator?: ConvexArgsValidator;
5
- inputValidatorOriginal?: ValidatorInput;
6
- returnsValidator?: ConvexReturnsValidator;
7
- returnsValidatorOriginal?: ReturnsValidatorInput;
8
- }
9
- /**
10
- * Decorator to specify input validation for a callable method
11
- * Compatible with both legacy (esbuild) and modern decorator syntax
12
- */
13
- export declare function input<UInput extends ValidatorInput>(validator: UInput): any;
14
- /**
15
- * Decorator to specify return validation for a callable method
16
- * Compatible with both legacy (esbuild) and modern decorator syntax
17
- */
18
- export declare function returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): any;
19
- /**
20
- * Get metadata for a specific method
21
- */
22
- export declare function getMetadata(target: any, propertyKey: string | symbol): CallableMethodMetadata;
23
- /**
24
- * Get metadata for a method from a class constructor
25
- * This is the public API for accessing decorator metadata
26
- */
27
- export declare function getMethodMetadataFromClass<T extends new (...args: any[]) => any>(ModelClass: T, methodName: string | symbol): CallableMethodMetadata;
28
- /**
29
- * Create a proxy that automatically makes all decorated methods callable
30
- * Usage: const callableModel = makeCallableMethods(new MyQueryModel(context));
31
- * Then: await callableModel.listNumbers({ count: 10 });
32
- */
33
- export declare function makeCallableMethods<T extends object>(instance: T): T;
34
- /**
35
- * Make a method callable with validation
36
- * This wraps the original method to validate inputs and optionally outputs
37
- */
38
- export declare function makeCallable<T extends object>(instance: T, methodName: keyof T): (...args: any[]) => Promise<any>;
39
- export {};
40
- //# sourceMappingURL=decorators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAO3E,UAAU,sBAAsB;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,wBAAwB,CAAC,EAAE,qBAAqB,CAAC;CAClD;AA6BD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,SAAS,cAAc,EACjD,SAAS,EAAE,MAAM,GAChB,GAAG,CAuBL;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,QAAQ,SAAS,qBAAqB,EAC5D,SAAS,EAAE,QAAQ,GAClB,GAAG,CAyBL;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,sBAAsB,CAExB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC9E,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,sBAAsB,CAExB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAgCpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,MAAM,CAAC,GAClB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAwClC"}
@@ -1,148 +0,0 @@
1
- import { isZodSchema, toConvexValidator } from "./zod_support";
2
- // Metadata stored on decorated methods
3
- // Using WeakMap for legacy decorator compatibility with esbuild
4
- const methodMetadataMap = new WeakMap();
5
- // Get metadata from a method (legacy decorator support)
6
- function getMethodMetadata(target, propertyKey) {
7
- const prototype = typeof target === "function" ? target.prototype : target;
8
- const metadataMap = methodMetadataMap.get(prototype);
9
- if (!metadataMap)
10
- return {};
11
- return metadataMap.get(propertyKey) || {};
12
- }
13
- // Set metadata on a method (legacy decorator support)
14
- function setMethodMetadata(target, propertyKey, metadata) {
15
- const prototype = typeof target === "function" ? target.prototype : target;
16
- let metadataMap = methodMetadataMap.get(prototype);
17
- if (!metadataMap) {
18
- metadataMap = new Map();
19
- methodMetadataMap.set(prototype, metadataMap);
20
- }
21
- const existing = metadataMap.get(propertyKey) || {};
22
- metadataMap.set(propertyKey, { ...existing, ...metadata });
23
- }
24
- /**
25
- * Decorator to specify input validation for a callable method
26
- * Compatible with both legacy (esbuild) and modern decorator syntax
27
- */
28
- export function input(validator) {
29
- return function (target, propertyKey, descriptor) {
30
- // Handle both legacy (3 args) and modern (2 args) decorator calls
31
- if (descriptor === undefined) {
32
- // Modern decorator - get descriptor from target
33
- descriptor = Object.getOwnPropertyDescriptor(target, propertyKey) || {};
34
- }
35
- const convexValidator = isZodSchema(validator)
36
- ? toConvexValidator(validator)
37
- : validator;
38
- setMethodMetadata(target, propertyKey, {
39
- inputValidator: convexValidator,
40
- inputValidatorOriginal: validator,
41
- });
42
- return descriptor;
43
- };
44
- }
45
- /**
46
- * Decorator to specify return validation for a callable method
47
- * Compatible with both legacy (esbuild) and modern decorator syntax
48
- */
49
- export function returns(validator) {
50
- return function (target, propertyKey, descriptor) {
51
- // Handle both legacy (3 args) and modern (2 args) decorator calls
52
- if (descriptor === undefined) {
53
- // Modern decorator - get descriptor from target
54
- descriptor = Object.getOwnPropertyDescriptor(target, propertyKey) || {};
55
- }
56
- // For returns validators, we need GenericValidator, not PropertyValidators
57
- // If it's a Zod schema, convert it; otherwise assume it's already a GenericValidator
58
- const convexValidator = isZodSchema(validator)
59
- ? toConvexValidator(validator)
60
- : validator;
61
- setMethodMetadata(target, propertyKey, {
62
- returnsValidator: convexValidator,
63
- returnsValidatorOriginal: validator,
64
- });
65
- return descriptor;
66
- };
67
- }
68
- /**
69
- * Get metadata for a specific method
70
- */
71
- export function getMetadata(target, propertyKey) {
72
- return getMethodMetadata(target, propertyKey);
73
- }
74
- /**
75
- * Get metadata for a method from a class constructor
76
- * This is the public API for accessing decorator metadata
77
- */
78
- export function getMethodMetadataFromClass(ModelClass, methodName) {
79
- return getMethodMetadata(ModelClass.prototype, methodName);
80
- }
81
- /**
82
- * Create a proxy that automatically makes all decorated methods callable
83
- * Usage: const callableModel = makeCallableMethods(new MyQueryModel(context));
84
- * Then: await callableModel.listNumbers({ count: 10 });
85
- */
86
- export function makeCallableMethods(instance) {
87
- const callableMethods = new Map();
88
- const prototype = Object.getPrototypeOf(instance);
89
- // Find all methods on the prototype and check if they have metadata
90
- const propertyNames = Object.getOwnPropertyNames(prototype);
91
- for (const propName of propertyNames) {
92
- if (propName !== "constructor") {
93
- const metadata = getMethodMetadata(prototype, propName);
94
- // If method has metadata, make it callable
95
- if (metadata.inputValidator || metadata.returnsValidator) {
96
- callableMethods.set(propName, makeCallable(instance, propName));
97
- }
98
- }
99
- }
100
- return new Proxy(instance, {
101
- get(target, prop) {
102
- // Return callable version if available
103
- if (callableMethods.has(prop)) {
104
- return callableMethods.get(prop);
105
- }
106
- // Otherwise return original property
107
- return target[prop];
108
- },
109
- });
110
- }
111
- /**
112
- * Make a method callable with validation
113
- * This wraps the original method to validate inputs and optionally outputs
114
- */
115
- export function makeCallable(instance, methodName) {
116
- const originalMethod = instance[methodName];
117
- if (typeof originalMethod !== "function") {
118
- throw new Error(`Method '${String(methodName)}' is not a function on ${instance.constructor.name}`);
119
- }
120
- // Get metadata from the prototype
121
- const prototype = Object.getPrototypeOf(instance);
122
- const metadata = getMethodMetadata(prototype, methodName);
123
- return async (...args) => {
124
- // Validate input if validator is provided
125
- if (metadata.inputValidatorOriginal) {
126
- const input = args[0] || {};
127
- if (isZodSchema(metadata.inputValidatorOriginal)) {
128
- // Use Zod's parse for runtime validation
129
- const parsed = metadata.inputValidatorOriginal.parse(input);
130
- args[0] = parsed;
131
- }
132
- // For Convex validators, we skip runtime validation
133
- // as they're primarily for type checking and Convex handles validation
134
- }
135
- // Call the original method
136
- const result = await originalMethod.apply(instance, args);
137
- // Validate return value if validator is provided
138
- if (metadata.returnsValidatorOriginal) {
139
- if (isZodSchema(metadata.returnsValidatorOriginal)) {
140
- // Use Zod's parse for runtime validation
141
- return metadata.returnsValidatorOriginal.parse(result);
142
- }
143
- // For Convex validators, we skip runtime validation
144
- }
145
- return result;
146
- };
147
- }
148
- //# sourceMappingURL=decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
package/src/decorators.ts DELETED
@@ -1,218 +0,0 @@
1
- import type {
2
- ConvexArgsValidator,
3
- ConvexReturnsValidator,
4
- } from "./types";
5
- import type { ValidatorInput, ReturnsValidatorInput } from "./zod_support";
6
- import { isZodSchema, toConvexValidator } from "./zod_support";
7
-
8
- // Metadata stored on decorated methods
9
- // Using WeakMap for legacy decorator compatibility with esbuild
10
- const methodMetadataMap = new WeakMap<object, Map<string | symbol, CallableMethodMetadata>>();
11
-
12
- interface CallableMethodMetadata {
13
- inputValidator?: ConvexArgsValidator;
14
- inputValidatorOriginal?: ValidatorInput; // Store original for runtime validation
15
- returnsValidator?: ConvexReturnsValidator;
16
- returnsValidatorOriginal?: ReturnsValidatorInput; // Store original for runtime validation
17
- }
18
-
19
- // Get metadata from a method (legacy decorator support)
20
- function getMethodMetadata(
21
- target: any,
22
- propertyKey: string | symbol,
23
- ): CallableMethodMetadata {
24
- const prototype = typeof target === "function" ? target.prototype : target;
25
- const metadataMap = methodMetadataMap.get(prototype);
26
- if (!metadataMap) return {};
27
- return metadataMap.get(propertyKey) || {};
28
- }
29
-
30
- // Set metadata on a method (legacy decorator support)
31
- function setMethodMetadata(
32
- target: any,
33
- propertyKey: string | symbol,
34
- metadata: CallableMethodMetadata,
35
- ): void {
36
- const prototype = typeof target === "function" ? target.prototype : target;
37
- let metadataMap = methodMetadataMap.get(prototype);
38
- if (!metadataMap) {
39
- metadataMap = new Map();
40
- methodMetadataMap.set(prototype, metadataMap);
41
- }
42
- const existing = metadataMap.get(propertyKey) || {};
43
- metadataMap.set(propertyKey, { ...existing, ...metadata });
44
- }
45
-
46
- /**
47
- * Decorator to specify input validation for a callable method
48
- * Compatible with both legacy (esbuild) and modern decorator syntax
49
- */
50
- export function input<UInput extends ValidatorInput>(
51
- validator: UInput,
52
- ): any {
53
- return function (
54
- target: any,
55
- propertyKey: string | symbol,
56
- descriptor?: PropertyDescriptor,
57
- ) {
58
- // Handle both legacy (3 args) and modern (2 args) decorator calls
59
- if (descriptor === undefined) {
60
- // Modern decorator - get descriptor from target
61
- descriptor = Object.getOwnPropertyDescriptor(target, propertyKey) || {};
62
- }
63
-
64
- const convexValidator = isZodSchema(validator)
65
- ? toConvexValidator(validator)
66
- : (validator as ConvexArgsValidator);
67
-
68
- setMethodMetadata(target, propertyKey, {
69
- inputValidator: convexValidator,
70
- inputValidatorOriginal: validator,
71
- });
72
-
73
- return descriptor;
74
- };
75
- }
76
-
77
- /**
78
- * Decorator to specify return validation for a callable method
79
- * Compatible with both legacy (esbuild) and modern decorator syntax
80
- */
81
- export function returns<UReturns extends ReturnsValidatorInput>(
82
- validator: UReturns,
83
- ): any {
84
- return function (
85
- target: any,
86
- propertyKey: string | symbol,
87
- descriptor?: PropertyDescriptor,
88
- ) {
89
- // Handle both legacy (3 args) and modern (2 args) decorator calls
90
- if (descriptor === undefined) {
91
- // Modern decorator - get descriptor from target
92
- descriptor = Object.getOwnPropertyDescriptor(target, propertyKey) || {};
93
- }
94
-
95
- // For returns validators, we need GenericValidator, not PropertyValidators
96
- // If it's a Zod schema, convert it; otherwise assume it's already a GenericValidator
97
- const convexValidator: ConvexReturnsValidator = isZodSchema(validator)
98
- ? (toConvexValidator(validator) as ConvexReturnsValidator)
99
- : (validator as ConvexReturnsValidator);
100
-
101
- setMethodMetadata(target, propertyKey, {
102
- returnsValidator: convexValidator,
103
- returnsValidatorOriginal: validator,
104
- });
105
-
106
- return descriptor;
107
- };
108
- }
109
-
110
- /**
111
- * Get metadata for a specific method
112
- */
113
- export function getMetadata(
114
- target: any,
115
- propertyKey: string | symbol,
116
- ): CallableMethodMetadata {
117
- return getMethodMetadata(target, propertyKey);
118
- }
119
-
120
- /**
121
- * Get metadata for a method from a class constructor
122
- * This is the public API for accessing decorator metadata
123
- */
124
- export function getMethodMetadataFromClass<T extends new (...args: any[]) => any>(
125
- ModelClass: T,
126
- methodName: string | symbol,
127
- ): CallableMethodMetadata {
128
- return getMethodMetadata(ModelClass.prototype, methodName);
129
- }
130
-
131
- /**
132
- * Create a proxy that automatically makes all decorated methods callable
133
- * Usage: const callableModel = makeCallableMethods(new MyQueryModel(context));
134
- * Then: await callableModel.listNumbers({ count: 10 });
135
- */
136
- export function makeCallableMethods<T extends object>(instance: T): T {
137
- const callableMethods = new Map<
138
- string | symbol,
139
- (...args: any[]) => Promise<any>
140
- >();
141
- const prototype = Object.getPrototypeOf(instance);
142
-
143
- // Find all methods on the prototype and check if they have metadata
144
- const propertyNames = Object.getOwnPropertyNames(prototype);
145
- for (const propName of propertyNames) {
146
- if (propName !== "constructor") {
147
- const metadata = getMethodMetadata(prototype, propName);
148
- // If method has metadata, make it callable
149
- if (metadata.inputValidator || metadata.returnsValidator) {
150
- callableMethods.set(
151
- propName,
152
- makeCallable(instance, propName as keyof T),
153
- );
154
- }
155
- }
156
- }
157
-
158
- return new Proxy(instance, {
159
- get(target, prop) {
160
- // Return callable version if available
161
- if (callableMethods.has(prop)) {
162
- return callableMethods.get(prop);
163
- }
164
- // Otherwise return original property
165
- return (target as any)[prop];
166
- },
167
- });
168
- }
169
-
170
- /**
171
- * Make a method callable with validation
172
- * This wraps the original method to validate inputs and optionally outputs
173
- */
174
- export function makeCallable<T extends object>(
175
- instance: T,
176
- methodName: keyof T,
177
- ): (...args: any[]) => Promise<any> {
178
- const originalMethod = (instance as any)[methodName];
179
-
180
- if (typeof originalMethod !== "function") {
181
- throw new Error(
182
- `Method '${String(methodName)}' is not a function on ${instance.constructor.name}`,
183
- );
184
- }
185
-
186
- // Get metadata from the prototype
187
- const prototype = Object.getPrototypeOf(instance);
188
- const metadata = getMethodMetadata(prototype, methodName as string | symbol);
189
-
190
- return async (...args: any[]) => {
191
- // Validate input if validator is provided
192
- if (metadata.inputValidatorOriginal) {
193
- const input = args[0] || {};
194
- if (isZodSchema(metadata.inputValidatorOriginal)) {
195
- // Use Zod's parse for runtime validation
196
- const parsed = metadata.inputValidatorOriginal.parse(input);
197
- args[0] = parsed;
198
- }
199
- // For Convex validators, we skip runtime validation
200
- // as they're primarily for type checking and Convex handles validation
201
- }
202
-
203
- // Call the original method
204
- const result = await originalMethod.apply(instance, args);
205
-
206
- // Validate return value if validator is provided
207
- if (metadata.returnsValidatorOriginal) {
208
- if (isZodSchema(metadata.returnsValidatorOriginal)) {
209
- // Use Zod's parse for runtime validation
210
- return metadata.returnsValidatorOriginal.parse(result);
211
- }
212
- // For Convex validators, we skip runtime validation
213
- }
214
-
215
- return result;
216
- };
217
- }
218
-