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.
- package/dist/ConvexBuilder.d.ts +4 -4
- package/dist/ConvexBuilder.d.ts.map +1 -1
- package/dist/ConvexBuilder.js.map +1 -1
- package/dist/ConvexBuilderWithFunctionKind.d.ts +11 -16
- package/dist/ConvexBuilderWithFunctionKind.d.ts.map +1 -1
- package/dist/ConvexBuilderWithFunctionKind.js.map +1 -1
- package/dist/ConvexBuilderWithHandler.d.ts +4 -4
- package/dist/ConvexBuilderWithHandler.d.ts.map +1 -1
- package/dist/ConvexBuilderWithHandler.js.map +1 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +0 -1
- package/dist/builder.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ConvexBuilder.ts +2 -10
- package/src/ConvexBuilderWithFunctionKind.ts +20 -77
- package/src/ConvexBuilderWithHandler.ts +3 -17
- package/src/builder.test-d.ts +0 -1
- package/src/builder.ts +0 -1
- package/src/index.ts +0 -9
- package/src/types.ts +11 -5
- package/dist/decorators.d.ts +0 -40
- package/dist/decorators.d.ts.map +0 -1
- package/dist/decorators.js +0 -148
- package/dist/decorators.js.map +0 -1
- package/src/decorators.ts +0 -218
package/dist/ConvexBuilder.d.ts
CHANGED
|
@@ -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
|
|
9
|
-
query(): ConvexBuilderWithFunctionKind<TDataModel, "query", QueryCtx<TDataModel
|
|
10
|
-
mutation(): ConvexBuilderWithFunctionKind<TDataModel, "mutation", MutationCtx<TDataModel
|
|
11
|
-
action(): ConvexBuilderWithFunctionKind<TDataModel, "action", 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,
|
|
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,
|
|
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
|
|
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,
|
|
11
|
-
protected def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator
|
|
12
|
-
constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator
|
|
13
|
-
$context<U extends Context>(): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, U
|
|
14
|
-
middleware<UOutContext extends Context>(middleware: ConvexMiddleware<
|
|
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,
|
|
17
|
-
input<UInput extends ValidatorInput>(validator: UInput): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType,
|
|
18
|
-
returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType,
|
|
19
|
-
handler<TReturn extends
|
|
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":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,
|
|
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;
|
|
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,
|
|
4
|
-
export declare class ConvexBuilderWithHandler<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType
|
|
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
|
|
6
|
+
constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator>);
|
|
7
7
|
private _call;
|
|
8
|
-
use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithHandler<TDataModel, TFunctionType,
|
|
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,
|
|
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":"AAAA,OAAO,EAKL,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAiBvB,MAAM,OAAO,wBAAwB;
|
|
1
|
+
{"version":3,"file":"ConvexBuilderWithHandler.js","sourceRoot":"","sources":["../src/ConvexBuilderWithHandler.ts"],"names":[],"mappings":"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"}
|
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,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,
|
|
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
package/dist/builder.js.map
CHANGED
|
@@ -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;
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
|
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
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
|
|
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
|
|
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
|
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;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,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,YAAY,CAAC,CAAC,SAAS,sBAAsB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAE9E,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;AAE/C,MAAM,MAAM,eAAe,CACzB,eAAe,SAAS,OAAO,EAC/B,cAAc,SAAS,mBAAmB,GAAG,SAAS,EACtD,cAAc,IACZ;IACF,CACE,OAAO,EAAE,eAAe,GACvB,CAAC,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACpE,CAAC;AACF,MAAM,WAAW,gBAAgB,CAC/B,aAAa,SAAS,YAAY,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/ConvexBuilder.ts
CHANGED
|
@@ -13,24 +13,20 @@ import type {
|
|
|
13
13
|
export class ConvexBuilder<
|
|
14
14
|
TDataModel extends GenericDataModel = GenericDataModel,
|
|
15
15
|
> {
|
|
16
|
-
private def: ConvexBuilderDef
|
|
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<
|
|
83
|
-
): ConvexMiddleware<
|
|
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
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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<
|
package/src/builder.test-d.ts
CHANGED
package/src/builder.ts
CHANGED
package/src/index.ts
CHANGED
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;
|
package/dist/decorators.d.ts
DELETED
|
@@ -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
|
package/dist/decorators.d.ts.map
DELETED
|
@@ -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"}
|
package/dist/decorators.js
DELETED
|
@@ -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
|
package/dist/decorators.js.map
DELETED
|
@@ -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
|
-
|