vovk 3.0.0-draft.260 → 3.0.0-draft.261
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/cjs/createVovkApp.js +1 -1
- package/cjs/utils/createDecorator.js +2 -1
- package/cjs/utils/createLLMTools.d.ts +1 -1
- package/cjs/utils/createLLMTools.js +1 -1
- package/cjs/utils/withStandard.d.ts +1 -51
- package/cjs/utils/withValidationLibrary.d.ts +45 -44
- package/cjs/utils/withValidationLibrary.js +25 -18
- package/mjs/createVovkApp.js +1 -1
- package/mjs/utils/createDecorator.js +2 -1
- package/mjs/utils/createLLMTools.d.ts +1 -1
- package/mjs/utils/createLLMTools.js +1 -1
- package/mjs/utils/withStandard.d.ts +1 -51
- package/mjs/utils/withValidationLibrary.d.ts +45 -44
- package/mjs/utils/withValidationLibrary.js +25 -18
- package/package.json +1 -1
package/cjs/createVovkApp.js
CHANGED
|
@@ -16,7 +16,7 @@ const toKebabCase = (str) => str
|
|
|
16
16
|
.replace(/^-/, ''); // Remove leading hyphen
|
|
17
17
|
const assignSchema = ({ controller, propertyKey, path, options, httpMethod, vovkApp, }) => {
|
|
18
18
|
if (typeof window !== 'undefined') {
|
|
19
|
-
throw new Error('
|
|
19
|
+
throw new Error('HTTP decorators can be used on server-side only. You have probably imported a controller on the client-side.');
|
|
20
20
|
}
|
|
21
21
|
if (!isClass(controller)) {
|
|
22
22
|
let decoratorName = httpMethod.toLowerCase();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createDecorator = createDecorator;
|
|
4
|
+
const withValidationLibrary_1 = require("./withValidationLibrary");
|
|
4
5
|
function createDecorator(handler, initHandler) {
|
|
5
6
|
return function decoratorCreator(...args) {
|
|
6
7
|
return function decorator(target, propertyKey) {
|
|
@@ -19,7 +20,7 @@ function createDecorator(handler, initHandler) {
|
|
|
19
20
|
controller[propertyKey] = method;
|
|
20
21
|
method._controller = controller;
|
|
21
22
|
method._sourceMethod = sourceMethod;
|
|
22
|
-
method.fn =
|
|
23
|
+
method.fn = (0, withValidationLibrary_1.createFn)(method); // TODO use VovkTypedMethod
|
|
23
24
|
method.models = originalMethod.models;
|
|
24
25
|
// TODO define internal method type
|
|
25
26
|
originalMethod._controller = controller;
|
|
@@ -51,7 +51,7 @@ const createLLMTool = ({ moduleName, handlerName, caller, module, init, meta, on
|
|
|
51
51
|
return {
|
|
52
52
|
type: 'function',
|
|
53
53
|
execute,
|
|
54
|
-
name: `${moduleName}
|
|
54
|
+
name: `${moduleName}_${handlerName}`,
|
|
55
55
|
description: schema.openapi?.['x-tool-description'] ??
|
|
56
56
|
([schema.openapi?.summary ?? '', schema.openapi?.description ?? ''].filter(Boolean).join('\n') || handlerName),
|
|
57
57
|
parameters: Object.keys(parametersProperties).length
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
-
import { KnownAny, VovkRequest,
|
|
2
|
+
import { KnownAny, VovkRequest, VovkValidationType } from '../types';
|
|
3
3
|
import { withValidationLibrary } from './withValidationLibrary';
|
|
4
4
|
export declare function withStandard<T extends (req: REQ, params: PARAMS extends StandardSchemaV1 ? StandardSchemaV1.InferInput<PARAMS> : Record<string, string>) => KnownAny, BODY extends StandardSchemaV1, QUERY extends StandardSchemaV1, PARAMS extends StandardSchemaV1, OUTPUT extends StandardSchemaV1, ITERATION extends StandardSchemaV1, REQ extends VovkRequest<KnownAny, KnownAny, KnownAny> = VovkRequest<BODY extends StandardSchemaV1 ? StandardSchemaV1.InferInput<BODY> : undefined, QUERY extends StandardSchemaV1 ? StandardSchemaV1.InferInput<QUERY> : undefined, PARAMS extends StandardSchemaV1 ? StandardSchemaV1.InferInput<PARAMS> : undefined>, IS_FORM extends boolean = false>({ isForm, body, query, params, output, iteration, handle, toJSONSchema, disableServerSideValidation, skipSchemaEmission, validateEachIteration, }: {
|
|
5
5
|
isForm?: IS_FORM;
|
|
@@ -32,54 +32,4 @@ export declare function withStandard<T extends (req: REQ, params: PARAMS extends
|
|
|
32
32
|
output: OUTPUT;
|
|
33
33
|
iteration: ITERATION;
|
|
34
34
|
};
|
|
35
|
-
} & {
|
|
36
|
-
fn: {
|
|
37
|
-
<RETURN_TYPE = ReturnType<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>>>(input?: ((undefined extends BODY | undefined ? undefined extends QUERY | undefined ? undefined extends PARAMS | undefined ? true : false : false : false) extends true ? {
|
|
38
|
-
disableClientValidation?: boolean;
|
|
39
|
-
} & (undefined extends BODY | undefined ? {
|
|
40
|
-
body?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"] | undefined;
|
|
41
|
-
} : {
|
|
42
|
-
body: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"];
|
|
43
|
-
}) & (undefined extends QUERY | undefined ? {
|
|
44
|
-
query?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"] | undefined;
|
|
45
|
-
} : {
|
|
46
|
-
query: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"];
|
|
47
|
-
}) & (undefined extends PARAMS | undefined ? {
|
|
48
|
-
params?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"] | undefined;
|
|
49
|
-
} : {
|
|
50
|
-
params: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"];
|
|
51
|
-
}) & {
|
|
52
|
-
meta?: {
|
|
53
|
-
[key: string]: any;
|
|
54
|
-
__disableClientValidation?: boolean;
|
|
55
|
-
};
|
|
56
|
-
} : never) | undefined): (undefined extends BODY | undefined ? undefined extends QUERY | undefined ? undefined extends PARAMS | undefined ? true : false : false : false) extends true ? RETURN_TYPE : never;
|
|
57
|
-
<RETURN_TYPE = ReturnType<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>>>(input: {
|
|
58
|
-
disableClientValidation?: boolean;
|
|
59
|
-
} & (undefined extends BODY | undefined ? {
|
|
60
|
-
body?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"] | undefined;
|
|
61
|
-
} : {
|
|
62
|
-
body: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"];
|
|
63
|
-
}) & (undefined extends QUERY | undefined ? {
|
|
64
|
-
query?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"] | undefined;
|
|
65
|
-
} : {
|
|
66
|
-
query: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"];
|
|
67
|
-
}) & (undefined extends PARAMS | undefined ? {
|
|
68
|
-
params?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"] | undefined;
|
|
69
|
-
} : {
|
|
70
|
-
params: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"];
|
|
71
|
-
}) & {
|
|
72
|
-
meta?: {
|
|
73
|
-
[key: string]: any;
|
|
74
|
-
__disableClientValidation?: boolean;
|
|
75
|
-
};
|
|
76
|
-
}): RETURN_TYPE;
|
|
77
|
-
};
|
|
78
|
-
models: {
|
|
79
|
-
body: BODY | undefined;
|
|
80
|
-
query: QUERY | undefined;
|
|
81
|
-
params: PARAMS | undefined;
|
|
82
|
-
output: OUTPUT | undefined;
|
|
83
|
-
iteration: ITERATION | undefined;
|
|
84
|
-
};
|
|
85
35
|
};
|
|
@@ -4,6 +4,51 @@ type Meta = {
|
|
|
4
4
|
__disableClientValidation?: boolean;
|
|
5
5
|
[key: string]: KnownAny;
|
|
6
6
|
};
|
|
7
|
+
export declare function createFn<T extends VovkTypedMethod<(req: KnownAny, params: KnownAny) => KnownAny>, H extends T & {
|
|
8
|
+
schema: VovkHandlerSchema;
|
|
9
|
+
models: {
|
|
10
|
+
body?: KnownAny;
|
|
11
|
+
query?: KnownAny;
|
|
12
|
+
params?: KnownAny;
|
|
13
|
+
output?: KnownAny;
|
|
14
|
+
iteration?: KnownAny;
|
|
15
|
+
};
|
|
16
|
+
}>(handler: H): {
|
|
17
|
+
<RETURN_TYPE = ReturnType<T>>(input?: ("body" extends keyof H["models"] ? undefined extends H["models"]["body"] ? "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true) extends true ? {
|
|
18
|
+
disableClientValidation?: boolean;
|
|
19
|
+
} & (undefined extends H["models"]["body"] ? {
|
|
20
|
+
body?: T["__types"]["body"];
|
|
21
|
+
} : {
|
|
22
|
+
body: T["__types"]["body"];
|
|
23
|
+
}) & (undefined extends H["models"]["query"] ? {
|
|
24
|
+
query?: T["__types"]["query"];
|
|
25
|
+
} : {
|
|
26
|
+
query: T["__types"]["query"];
|
|
27
|
+
}) & (undefined extends H["models"]["params"] ? {
|
|
28
|
+
params?: T["__types"]["params"];
|
|
29
|
+
} : {
|
|
30
|
+
params: T["__types"]["params"];
|
|
31
|
+
}) & {
|
|
32
|
+
meta?: Meta;
|
|
33
|
+
} : never): ("body" extends keyof H["models"] ? undefined extends H["models"]["body"] ? "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true) extends true ? RETURN_TYPE : never;
|
|
34
|
+
<RETURN_TYPE = ReturnType<T>>(input: {
|
|
35
|
+
disableClientValidation?: boolean;
|
|
36
|
+
} & (undefined extends H["models"]["body"] ? {
|
|
37
|
+
body?: T["__types"]["body"];
|
|
38
|
+
} : {
|
|
39
|
+
body: T["__types"]["body"];
|
|
40
|
+
}) & (undefined extends H["models"]["query"] ? {
|
|
41
|
+
query?: T["__types"]["query"];
|
|
42
|
+
} : {
|
|
43
|
+
query: T["__types"]["query"];
|
|
44
|
+
}) & (undefined extends H["models"]["params"] ? {
|
|
45
|
+
params?: T["__types"]["params"];
|
|
46
|
+
} : {
|
|
47
|
+
params: T["__types"]["params"];
|
|
48
|
+
}) & {
|
|
49
|
+
meta?: Meta;
|
|
50
|
+
}): RETURN_TYPE;
|
|
51
|
+
};
|
|
7
52
|
export declare function withValidationLibrary<T extends VovkTypedMethod<(req: KnownAny, params: KnownAny) => KnownAny>, BODY_MODEL, QUERY_MODEL, PARAMS_MODEL, OUTPUT_MODEL, ITERATION_MODEL, IS_FORM extends boolean = false>({ isForm, disableServerSideValidation, skipSchemaEmission, validateEachIteration, body, query, params, output, iteration, handle, toJSONSchema, validate, }: {
|
|
8
53
|
isForm?: IS_FORM;
|
|
9
54
|
disableServerSideValidation?: boolean | VovkValidationType[];
|
|
@@ -33,49 +78,5 @@ export declare function withValidationLibrary<T extends VovkTypedMethod<(req: Kn
|
|
|
33
78
|
output: OUTPUT_MODEL;
|
|
34
79
|
iteration: ITERATION_MODEL;
|
|
35
80
|
};
|
|
36
|
-
} & {
|
|
37
|
-
fn: {
|
|
38
|
-
<RETURN_TYPE = ReturnType<T>>(input?: (undefined extends BODY_MODEL | undefined ? undefined extends QUERY_MODEL | undefined ? undefined extends PARAMS_MODEL | undefined ? true : false : false : false) extends true ? {
|
|
39
|
-
disableClientValidation?: boolean;
|
|
40
|
-
} & (undefined extends BODY_MODEL | undefined ? {
|
|
41
|
-
body?: T["__types"]["body"];
|
|
42
|
-
} : {
|
|
43
|
-
body: T["__types"]["body"];
|
|
44
|
-
}) & (undefined extends QUERY_MODEL | undefined ? {
|
|
45
|
-
query?: T["__types"]["query"];
|
|
46
|
-
} : {
|
|
47
|
-
query: T["__types"]["query"];
|
|
48
|
-
}) & (undefined extends PARAMS_MODEL | undefined ? {
|
|
49
|
-
params?: T["__types"]["params"];
|
|
50
|
-
} : {
|
|
51
|
-
params: T["__types"]["params"];
|
|
52
|
-
}) & {
|
|
53
|
-
meta?: Meta;
|
|
54
|
-
} : never): (undefined extends BODY_MODEL | undefined ? undefined extends QUERY_MODEL | undefined ? undefined extends PARAMS_MODEL | undefined ? true : false : false : false) extends true ? RETURN_TYPE : never;
|
|
55
|
-
<RETURN_TYPE = ReturnType<T>>(input: {
|
|
56
|
-
disableClientValidation?: boolean;
|
|
57
|
-
} & (undefined extends BODY_MODEL | undefined ? {
|
|
58
|
-
body?: T["__types"]["body"];
|
|
59
|
-
} : {
|
|
60
|
-
body: T["__types"]["body"];
|
|
61
|
-
}) & (undefined extends QUERY_MODEL | undefined ? {
|
|
62
|
-
query?: T["__types"]["query"];
|
|
63
|
-
} : {
|
|
64
|
-
query: T["__types"]["query"];
|
|
65
|
-
}) & (undefined extends PARAMS_MODEL | undefined ? {
|
|
66
|
-
params?: T["__types"]["params"];
|
|
67
|
-
} : {
|
|
68
|
-
params: T["__types"]["params"];
|
|
69
|
-
}) & {
|
|
70
|
-
meta?: Meta;
|
|
71
|
-
}): RETURN_TYPE;
|
|
72
|
-
};
|
|
73
|
-
models: {
|
|
74
|
-
body: typeof body;
|
|
75
|
-
query: typeof query;
|
|
76
|
-
params: typeof params;
|
|
77
|
-
output: typeof output;
|
|
78
|
-
iteration: typeof iteration;
|
|
79
|
-
};
|
|
80
81
|
};
|
|
81
82
|
export {};
|
|
@@ -3,12 +3,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createFn = createFn;
|
|
6
7
|
exports.withValidationLibrary = withValidationLibrary;
|
|
7
8
|
const HttpException_1 = require("../HttpException");
|
|
8
9
|
const types_1 = require("../types");
|
|
9
10
|
const reqMeta_1 = __importDefault(require("./reqMeta"));
|
|
10
11
|
const setHandlerSchema_1 = require("./setHandlerSchema");
|
|
11
12
|
const validationTypes = ['body', 'query', 'params', 'output', 'iteration'];
|
|
13
|
+
// Extract the createFn function with all necessary types
|
|
14
|
+
function createFn(handler) {
|
|
15
|
+
function fn(input) {
|
|
16
|
+
const fakeReq = {
|
|
17
|
+
vovk: {
|
|
18
|
+
body: () => Promise.resolve((input?.body ?? {})),
|
|
19
|
+
query: () => (input?.query ?? {}),
|
|
20
|
+
params: () => (input?.params ?? {}),
|
|
21
|
+
meta: (meta) => (0, reqMeta_1.default)(fakeReq, meta),
|
|
22
|
+
form: () => {
|
|
23
|
+
throw new Error('Form data is not supported in this context yet.');
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
fakeReq.vovk.meta({ __disableClientValidation: input?.disableClientValidation, ...(input?.meta ?? {}) });
|
|
28
|
+
return handler(fakeReq, (input?.params ?? {}));
|
|
29
|
+
}
|
|
30
|
+
return fn;
|
|
31
|
+
}
|
|
12
32
|
function withValidationLibrary({ isForm, disableServerSideValidation, skipSchemaEmission, validateEachIteration, body, query, params, output, iteration, handle, toJSONSchema, validate, }) {
|
|
13
33
|
const disableServerSideValidationKeys = disableServerSideValidation === false
|
|
14
34
|
? []
|
|
@@ -76,21 +96,8 @@ function withValidationLibrary({ isForm, disableServerSideValidation, skipSchema
|
|
|
76
96
|
}
|
|
77
97
|
return outputHandler(req, handlerParams);
|
|
78
98
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
vovk: {
|
|
82
|
-
body: () => Promise.resolve((input?.body ?? {})),
|
|
83
|
-
query: () => (input?.query ?? {}),
|
|
84
|
-
params: () => (input?.params ?? {}),
|
|
85
|
-
meta: (meta) => (0, reqMeta_1.default)(fakeReq, meta),
|
|
86
|
-
form: () => {
|
|
87
|
-
throw new Error('Form data is not supported in this context.');
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
fakeReq.vovk.meta({ __disableClientValidation: input?.disableClientValidation, ...(input?.meta ?? {}) });
|
|
92
|
-
return resultHandler(fakeReq, (input?.params ?? {}));
|
|
93
|
-
}
|
|
99
|
+
// Use the createFn function
|
|
100
|
+
const fn = createFn(resultHandler);
|
|
94
101
|
const models = {};
|
|
95
102
|
if (body !== undefined)
|
|
96
103
|
models.body = body;
|
|
@@ -102,7 +109,7 @@ function withValidationLibrary({ isForm, disableServerSideValidation, skipSchema
|
|
|
102
109
|
models.output = output;
|
|
103
110
|
if (iteration !== undefined)
|
|
104
111
|
models.iteration = iteration;
|
|
105
|
-
|
|
112
|
+
Object.assign(resultHandler, { fn, models });
|
|
106
113
|
if (toJSONSchema) {
|
|
107
114
|
const getJsonSchema = (model, type) => Object.assign(toJSONSchema(model, { type }), type === 'body' && isForm ? { 'x-formData': isForm } : {});
|
|
108
115
|
const validation = {};
|
|
@@ -121,7 +128,7 @@ function withValidationLibrary({ isForm, disableServerSideValidation, skipSchema
|
|
|
121
128
|
if (iteration && !skipSchemaEmissionKeys.includes('iteration')) {
|
|
122
129
|
validation.iteration = getJsonSchema(iteration, 'iteration');
|
|
123
130
|
}
|
|
124
|
-
(0, setHandlerSchema_1.setHandlerSchema)(
|
|
131
|
+
(0, setHandlerSchema_1.setHandlerSchema)(resultHandler, { validation });
|
|
125
132
|
}
|
|
126
|
-
return
|
|
133
|
+
return resultHandler;
|
|
127
134
|
}
|
package/mjs/createVovkApp.js
CHANGED
|
@@ -16,7 +16,7 @@ const toKebabCase = (str) => str
|
|
|
16
16
|
.replace(/^-/, ''); // Remove leading hyphen
|
|
17
17
|
const assignSchema = ({ controller, propertyKey, path, options, httpMethod, vovkApp, }) => {
|
|
18
18
|
if (typeof window !== 'undefined') {
|
|
19
|
-
throw new Error('
|
|
19
|
+
throw new Error('HTTP decorators can be used on server-side only. You have probably imported a controller on the client-side.');
|
|
20
20
|
}
|
|
21
21
|
if (!isClass(controller)) {
|
|
22
22
|
let decoratorName = httpMethod.toLowerCase();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createDecorator = createDecorator;
|
|
4
|
+
const withValidationLibrary_1 = require("./withValidationLibrary");
|
|
4
5
|
function createDecorator(handler, initHandler) {
|
|
5
6
|
return function decoratorCreator(...args) {
|
|
6
7
|
return function decorator(target, propertyKey) {
|
|
@@ -19,7 +20,7 @@ function createDecorator(handler, initHandler) {
|
|
|
19
20
|
controller[propertyKey] = method;
|
|
20
21
|
method._controller = controller;
|
|
21
22
|
method._sourceMethod = sourceMethod;
|
|
22
|
-
method.fn =
|
|
23
|
+
method.fn = (0, withValidationLibrary_1.createFn)(method); // TODO use VovkTypedMethod
|
|
23
24
|
method.models = originalMethod.models;
|
|
24
25
|
// TODO define internal method type
|
|
25
26
|
originalMethod._controller = controller;
|
|
@@ -51,7 +51,7 @@ const createLLMTool = ({ moduleName, handlerName, caller, module, init, meta, on
|
|
|
51
51
|
return {
|
|
52
52
|
type: 'function',
|
|
53
53
|
execute,
|
|
54
|
-
name: `${moduleName}
|
|
54
|
+
name: `${moduleName}_${handlerName}`,
|
|
55
55
|
description: schema.openapi?.['x-tool-description'] ??
|
|
56
56
|
([schema.openapi?.summary ?? '', schema.openapi?.description ?? ''].filter(Boolean).join('\n') || handlerName),
|
|
57
57
|
parameters: Object.keys(parametersProperties).length
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
-
import { KnownAny, VovkRequest,
|
|
2
|
+
import { KnownAny, VovkRequest, VovkValidationType } from '../types';
|
|
3
3
|
import { withValidationLibrary } from './withValidationLibrary';
|
|
4
4
|
export declare function withStandard<T extends (req: REQ, params: PARAMS extends StandardSchemaV1 ? StandardSchemaV1.InferInput<PARAMS> : Record<string, string>) => KnownAny, BODY extends StandardSchemaV1, QUERY extends StandardSchemaV1, PARAMS extends StandardSchemaV1, OUTPUT extends StandardSchemaV1, ITERATION extends StandardSchemaV1, REQ extends VovkRequest<KnownAny, KnownAny, KnownAny> = VovkRequest<BODY extends StandardSchemaV1 ? StandardSchemaV1.InferInput<BODY> : undefined, QUERY extends StandardSchemaV1 ? StandardSchemaV1.InferInput<QUERY> : undefined, PARAMS extends StandardSchemaV1 ? StandardSchemaV1.InferInput<PARAMS> : undefined>, IS_FORM extends boolean = false>({ isForm, body, query, params, output, iteration, handle, toJSONSchema, disableServerSideValidation, skipSchemaEmission, validateEachIteration, }: {
|
|
5
5
|
isForm?: IS_FORM;
|
|
@@ -32,54 +32,4 @@ export declare function withStandard<T extends (req: REQ, params: PARAMS extends
|
|
|
32
32
|
output: OUTPUT;
|
|
33
33
|
iteration: ITERATION;
|
|
34
34
|
};
|
|
35
|
-
} & {
|
|
36
|
-
fn: {
|
|
37
|
-
<RETURN_TYPE = ReturnType<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>>>(input?: ((undefined extends BODY | undefined ? undefined extends QUERY | undefined ? undefined extends PARAMS | undefined ? true : false : false : false) extends true ? {
|
|
38
|
-
disableClientValidation?: boolean;
|
|
39
|
-
} & (undefined extends BODY | undefined ? {
|
|
40
|
-
body?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"] | undefined;
|
|
41
|
-
} : {
|
|
42
|
-
body: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"];
|
|
43
|
-
}) & (undefined extends QUERY | undefined ? {
|
|
44
|
-
query?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"] | undefined;
|
|
45
|
-
} : {
|
|
46
|
-
query: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"];
|
|
47
|
-
}) & (undefined extends PARAMS | undefined ? {
|
|
48
|
-
params?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"] | undefined;
|
|
49
|
-
} : {
|
|
50
|
-
params: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"];
|
|
51
|
-
}) & {
|
|
52
|
-
meta?: {
|
|
53
|
-
[key: string]: any;
|
|
54
|
-
__disableClientValidation?: boolean;
|
|
55
|
-
};
|
|
56
|
-
} : never) | undefined): (undefined extends BODY | undefined ? undefined extends QUERY | undefined ? undefined extends PARAMS | undefined ? true : false : false : false) extends true ? RETURN_TYPE : never;
|
|
57
|
-
<RETURN_TYPE = ReturnType<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>>>(input: {
|
|
58
|
-
disableClientValidation?: boolean;
|
|
59
|
-
} & (undefined extends BODY | undefined ? {
|
|
60
|
-
body?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"] | undefined;
|
|
61
|
-
} : {
|
|
62
|
-
body: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["body"];
|
|
63
|
-
}) & (undefined extends QUERY | undefined ? {
|
|
64
|
-
query?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"] | undefined;
|
|
65
|
-
} : {
|
|
66
|
-
query: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["query"];
|
|
67
|
-
}) & (undefined extends PARAMS | undefined ? {
|
|
68
|
-
params?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"] | undefined;
|
|
69
|
-
} : {
|
|
70
|
-
params: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM extends true ? true : any>["__types"]["params"];
|
|
71
|
-
}) & {
|
|
72
|
-
meta?: {
|
|
73
|
-
[key: string]: any;
|
|
74
|
-
__disableClientValidation?: boolean;
|
|
75
|
-
};
|
|
76
|
-
}): RETURN_TYPE;
|
|
77
|
-
};
|
|
78
|
-
models: {
|
|
79
|
-
body: BODY | undefined;
|
|
80
|
-
query: QUERY | undefined;
|
|
81
|
-
params: PARAMS | undefined;
|
|
82
|
-
output: OUTPUT | undefined;
|
|
83
|
-
iteration: ITERATION | undefined;
|
|
84
|
-
};
|
|
85
35
|
};
|
|
@@ -4,6 +4,51 @@ type Meta = {
|
|
|
4
4
|
__disableClientValidation?: boolean;
|
|
5
5
|
[key: string]: KnownAny;
|
|
6
6
|
};
|
|
7
|
+
export declare function createFn<T extends VovkTypedMethod<(req: KnownAny, params: KnownAny) => KnownAny>, H extends T & {
|
|
8
|
+
schema: VovkHandlerSchema;
|
|
9
|
+
models: {
|
|
10
|
+
body?: KnownAny;
|
|
11
|
+
query?: KnownAny;
|
|
12
|
+
params?: KnownAny;
|
|
13
|
+
output?: KnownAny;
|
|
14
|
+
iteration?: KnownAny;
|
|
15
|
+
};
|
|
16
|
+
}>(handler: H): {
|
|
17
|
+
<RETURN_TYPE = ReturnType<T>>(input?: ("body" extends keyof H["models"] ? undefined extends H["models"]["body"] ? "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true) extends true ? {
|
|
18
|
+
disableClientValidation?: boolean;
|
|
19
|
+
} & (undefined extends H["models"]["body"] ? {
|
|
20
|
+
body?: T["__types"]["body"];
|
|
21
|
+
} : {
|
|
22
|
+
body: T["__types"]["body"];
|
|
23
|
+
}) & (undefined extends H["models"]["query"] ? {
|
|
24
|
+
query?: T["__types"]["query"];
|
|
25
|
+
} : {
|
|
26
|
+
query: T["__types"]["query"];
|
|
27
|
+
}) & (undefined extends H["models"]["params"] ? {
|
|
28
|
+
params?: T["__types"]["params"];
|
|
29
|
+
} : {
|
|
30
|
+
params: T["__types"]["params"];
|
|
31
|
+
}) & {
|
|
32
|
+
meta?: Meta;
|
|
33
|
+
} : never): ("body" extends keyof H["models"] ? undefined extends H["models"]["body"] ? "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "query" extends keyof H["models"] ? undefined extends H["models"]["query"] ? "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true : false : "params" extends keyof H["models"] ? undefined extends H["models"]["params"] ? true : false : true) extends true ? RETURN_TYPE : never;
|
|
34
|
+
<RETURN_TYPE = ReturnType<T>>(input: {
|
|
35
|
+
disableClientValidation?: boolean;
|
|
36
|
+
} & (undefined extends H["models"]["body"] ? {
|
|
37
|
+
body?: T["__types"]["body"];
|
|
38
|
+
} : {
|
|
39
|
+
body: T["__types"]["body"];
|
|
40
|
+
}) & (undefined extends H["models"]["query"] ? {
|
|
41
|
+
query?: T["__types"]["query"];
|
|
42
|
+
} : {
|
|
43
|
+
query: T["__types"]["query"];
|
|
44
|
+
}) & (undefined extends H["models"]["params"] ? {
|
|
45
|
+
params?: T["__types"]["params"];
|
|
46
|
+
} : {
|
|
47
|
+
params: T["__types"]["params"];
|
|
48
|
+
}) & {
|
|
49
|
+
meta?: Meta;
|
|
50
|
+
}): RETURN_TYPE;
|
|
51
|
+
};
|
|
7
52
|
export declare function withValidationLibrary<T extends VovkTypedMethod<(req: KnownAny, params: KnownAny) => KnownAny>, BODY_MODEL, QUERY_MODEL, PARAMS_MODEL, OUTPUT_MODEL, ITERATION_MODEL, IS_FORM extends boolean = false>({ isForm, disableServerSideValidation, skipSchemaEmission, validateEachIteration, body, query, params, output, iteration, handle, toJSONSchema, validate, }: {
|
|
8
53
|
isForm?: IS_FORM;
|
|
9
54
|
disableServerSideValidation?: boolean | VovkValidationType[];
|
|
@@ -33,49 +78,5 @@ export declare function withValidationLibrary<T extends VovkTypedMethod<(req: Kn
|
|
|
33
78
|
output: OUTPUT_MODEL;
|
|
34
79
|
iteration: ITERATION_MODEL;
|
|
35
80
|
};
|
|
36
|
-
} & {
|
|
37
|
-
fn: {
|
|
38
|
-
<RETURN_TYPE = ReturnType<T>>(input?: (undefined extends BODY_MODEL | undefined ? undefined extends QUERY_MODEL | undefined ? undefined extends PARAMS_MODEL | undefined ? true : false : false : false) extends true ? {
|
|
39
|
-
disableClientValidation?: boolean;
|
|
40
|
-
} & (undefined extends BODY_MODEL | undefined ? {
|
|
41
|
-
body?: T["__types"]["body"];
|
|
42
|
-
} : {
|
|
43
|
-
body: T["__types"]["body"];
|
|
44
|
-
}) & (undefined extends QUERY_MODEL | undefined ? {
|
|
45
|
-
query?: T["__types"]["query"];
|
|
46
|
-
} : {
|
|
47
|
-
query: T["__types"]["query"];
|
|
48
|
-
}) & (undefined extends PARAMS_MODEL | undefined ? {
|
|
49
|
-
params?: T["__types"]["params"];
|
|
50
|
-
} : {
|
|
51
|
-
params: T["__types"]["params"];
|
|
52
|
-
}) & {
|
|
53
|
-
meta?: Meta;
|
|
54
|
-
} : never): (undefined extends BODY_MODEL | undefined ? undefined extends QUERY_MODEL | undefined ? undefined extends PARAMS_MODEL | undefined ? true : false : false : false) extends true ? RETURN_TYPE : never;
|
|
55
|
-
<RETURN_TYPE = ReturnType<T>>(input: {
|
|
56
|
-
disableClientValidation?: boolean;
|
|
57
|
-
} & (undefined extends BODY_MODEL | undefined ? {
|
|
58
|
-
body?: T["__types"]["body"];
|
|
59
|
-
} : {
|
|
60
|
-
body: T["__types"]["body"];
|
|
61
|
-
}) & (undefined extends QUERY_MODEL | undefined ? {
|
|
62
|
-
query?: T["__types"]["query"];
|
|
63
|
-
} : {
|
|
64
|
-
query: T["__types"]["query"];
|
|
65
|
-
}) & (undefined extends PARAMS_MODEL | undefined ? {
|
|
66
|
-
params?: T["__types"]["params"];
|
|
67
|
-
} : {
|
|
68
|
-
params: T["__types"]["params"];
|
|
69
|
-
}) & {
|
|
70
|
-
meta?: Meta;
|
|
71
|
-
}): RETURN_TYPE;
|
|
72
|
-
};
|
|
73
|
-
models: {
|
|
74
|
-
body: typeof body;
|
|
75
|
-
query: typeof query;
|
|
76
|
-
params: typeof params;
|
|
77
|
-
output: typeof output;
|
|
78
|
-
iteration: typeof iteration;
|
|
79
|
-
};
|
|
80
81
|
};
|
|
81
82
|
export {};
|
|
@@ -3,12 +3,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createFn = createFn;
|
|
6
7
|
exports.withValidationLibrary = withValidationLibrary;
|
|
7
8
|
const HttpException_1 = require("../HttpException");
|
|
8
9
|
const types_1 = require("../types");
|
|
9
10
|
const reqMeta_1 = __importDefault(require("./reqMeta"));
|
|
10
11
|
const setHandlerSchema_1 = require("./setHandlerSchema");
|
|
11
12
|
const validationTypes = ['body', 'query', 'params', 'output', 'iteration'];
|
|
13
|
+
// Extract the createFn function with all necessary types
|
|
14
|
+
function createFn(handler) {
|
|
15
|
+
function fn(input) {
|
|
16
|
+
const fakeReq = {
|
|
17
|
+
vovk: {
|
|
18
|
+
body: () => Promise.resolve((input?.body ?? {})),
|
|
19
|
+
query: () => (input?.query ?? {}),
|
|
20
|
+
params: () => (input?.params ?? {}),
|
|
21
|
+
meta: (meta) => (0, reqMeta_1.default)(fakeReq, meta),
|
|
22
|
+
form: () => {
|
|
23
|
+
throw new Error('Form data is not supported in this context yet.');
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
fakeReq.vovk.meta({ __disableClientValidation: input?.disableClientValidation, ...(input?.meta ?? {}) });
|
|
28
|
+
return handler(fakeReq, (input?.params ?? {}));
|
|
29
|
+
}
|
|
30
|
+
return fn;
|
|
31
|
+
}
|
|
12
32
|
function withValidationLibrary({ isForm, disableServerSideValidation, skipSchemaEmission, validateEachIteration, body, query, params, output, iteration, handle, toJSONSchema, validate, }) {
|
|
13
33
|
const disableServerSideValidationKeys = disableServerSideValidation === false
|
|
14
34
|
? []
|
|
@@ -76,21 +96,8 @@ function withValidationLibrary({ isForm, disableServerSideValidation, skipSchema
|
|
|
76
96
|
}
|
|
77
97
|
return outputHandler(req, handlerParams);
|
|
78
98
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
vovk: {
|
|
82
|
-
body: () => Promise.resolve((input?.body ?? {})),
|
|
83
|
-
query: () => (input?.query ?? {}),
|
|
84
|
-
params: () => (input?.params ?? {}),
|
|
85
|
-
meta: (meta) => (0, reqMeta_1.default)(fakeReq, meta),
|
|
86
|
-
form: () => {
|
|
87
|
-
throw new Error('Form data is not supported in this context.');
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
fakeReq.vovk.meta({ __disableClientValidation: input?.disableClientValidation, ...(input?.meta ?? {}) });
|
|
92
|
-
return resultHandler(fakeReq, (input?.params ?? {}));
|
|
93
|
-
}
|
|
99
|
+
// Use the createFn function
|
|
100
|
+
const fn = createFn(resultHandler);
|
|
94
101
|
const models = {};
|
|
95
102
|
if (body !== undefined)
|
|
96
103
|
models.body = body;
|
|
@@ -102,7 +109,7 @@ function withValidationLibrary({ isForm, disableServerSideValidation, skipSchema
|
|
|
102
109
|
models.output = output;
|
|
103
110
|
if (iteration !== undefined)
|
|
104
111
|
models.iteration = iteration;
|
|
105
|
-
|
|
112
|
+
Object.assign(resultHandler, { fn, models });
|
|
106
113
|
if (toJSONSchema) {
|
|
107
114
|
const getJsonSchema = (model, type) => Object.assign(toJSONSchema(model, { type }), type === 'body' && isForm ? { 'x-formData': isForm } : {});
|
|
108
115
|
const validation = {};
|
|
@@ -121,7 +128,7 @@ function withValidationLibrary({ isForm, disableServerSideValidation, skipSchema
|
|
|
121
128
|
if (iteration && !skipSchemaEmissionKeys.includes('iteration')) {
|
|
122
129
|
validation.iteration = getJsonSchema(iteration, 'iteration');
|
|
123
130
|
}
|
|
124
|
-
(0, setHandlerSchema_1.setHandlerSchema)(
|
|
131
|
+
(0, setHandlerSchema_1.setHandlerSchema)(resultHandler, { validation });
|
|
125
132
|
}
|
|
126
|
-
return
|
|
133
|
+
return resultHandler;
|
|
127
134
|
}
|