express-zod-api 9.0.0-beta2 → 9.0.0-beta4
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/CHANGELOG.md +94 -0
- package/README.md +10 -9
- package/dist/api-response.d.ts +15 -6
- package/dist/api-response.js +0 -9
- package/dist/api-response.js.map +1 -1
- package/dist/client-helpers.d.ts +0 -1
- package/dist/client-helpers.js +1 -10
- package/dist/client-helpers.js.map +1 -1
- package/dist/client.js +7 -6
- package/dist/client.js.map +1 -1
- package/dist/common-helpers.d.ts +2 -1
- package/dist/common-helpers.js +10 -1
- package/dist/common-helpers.js.map +1 -1
- package/dist/endpoint.d.ts +28 -25
- package/dist/endpoint.js +46 -26
- package/dist/endpoint.js.map +1 -1
- package/dist/endpoints-factory.d.ts +4 -5
- package/dist/endpoints-factory.js +0 -3
- package/dist/endpoints-factory.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/io-schema.d.ts +1 -1
- package/dist/mime.d.ts +0 -1
- package/dist/mock.d.ts +2 -2
- package/dist/open-api-helpers.d.ts +2 -2
- package/dist/open-api-helpers.js +15 -15
- package/dist/open-api-helpers.js.map +1 -1
- package/dist/open-api.d.ts +3 -0
- package/dist/open-api.js +13 -2
- package/dist/open-api.js.map +1 -1
- package/dist/result-handler.d.ts +12 -8
- package/dist/result-handler.js +18 -18
- package/dist/result-handler.js.map +1 -1
- package/dist-esm/api-response.js +1 -7
- package/dist-esm/api-response.js.map +1 -1
- package/dist-esm/client-helpers.js +0 -8
- package/dist-esm/client-helpers.js.map +1 -1
- package/dist-esm/client.js +8 -7
- package/dist-esm/client.js.map +1 -1
- package/dist-esm/common-helpers.js +8 -0
- package/dist-esm/common-helpers.js.map +1 -1
- package/dist-esm/endpoint.js +48 -28
- package/dist-esm/endpoint.js.map +1 -1
- package/dist-esm/endpoints-factory.js +0 -3
- package/dist-esm/endpoints-factory.js.map +1 -1
- package/dist-esm/index.js +0 -1
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/open-api-helpers.js +12 -12
- package/dist-esm/open-api-helpers.js.map +1 -1
- package/dist-esm/open-api.js +14 -3
- package/dist-esm/open-api.js.map +1 -1
- package/dist-esm/package.json +1 -1
- package/dist-esm/result-handler.js +17 -17
- package/dist-esm/result-handler.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
## Version 9
|
|
4
4
|
|
|
5
|
+
### v9.0.0-beta4
|
|
6
|
+
|
|
7
|
+
- This release contains the feature from version [8.11.0](#v8110).
|
|
8
|
+
- **BREAKING** changes:
|
|
9
|
+
- `createApiResponse()` method is removed. Read the release notes to v8.11.0 for migration strategy.
|
|
10
|
+
- Potentially **BREAKING** changes:
|
|
11
|
+
- The following changes correspond to the entities that are not supposed to be used directly, however they are public.
|
|
12
|
+
- `Endpoint::constructor()`
|
|
13
|
+
- `mimeTypes` property is removed from the argument.
|
|
14
|
+
- `Endpoint` public methods replaced:
|
|
15
|
+
- `getPositiveStatusCode()` —> `getStatusCode("positive")`
|
|
16
|
+
- `getNegativeStatusCode()` —> `getStatusCode("negative")`
|
|
17
|
+
- `getInputSchema()` —> `getSchema("input")`
|
|
18
|
+
- `getOutputSchema()` —> `getSchema("output")`
|
|
19
|
+
- `getPositiveResponseSchema()` —> `getSchema("positive")`
|
|
20
|
+
- `getNegativeResponseSchema()` —> `getSchema("negative")`
|
|
21
|
+
- `getInputMimeTypes()` —> `getMimeTypes("input")`
|
|
22
|
+
- `getPositiveMimeTypes()` —> `getMimeTypes("positive")`
|
|
23
|
+
- `getNegativeMimeTypes()` —> `getMimeTypes("negative")`
|
|
24
|
+
|
|
25
|
+
### v9.0.0-beta3
|
|
26
|
+
|
|
27
|
+
- This release contains the feature from version [8.10.0](#v8100).
|
|
28
|
+
|
|
5
29
|
### v9.0.0-beta2
|
|
6
30
|
|
|
7
31
|
- Potentially **BREAKING** changes:
|
|
@@ -39,6 +63,7 @@ response.status(statusCode);
|
|
|
39
63
|
|
|
40
64
|
### v9.0.0-beta1
|
|
41
65
|
|
|
66
|
+
- This release is based on version 8.9.4.
|
|
42
67
|
- Potentially **BREAKING** changes:
|
|
43
68
|
- Fixed issue #820, reported and resolved by [@McMerph](https://github.com/McMerph).
|
|
44
69
|
- Request `body` is no longer considered as an input source for `DELETE` request.
|
|
@@ -56,6 +81,75 @@ inputSources: { delete: ["body", "query", "params"] }
|
|
|
56
81
|
|
|
57
82
|
## Version 8
|
|
58
83
|
|
|
84
|
+
### v8.11.0
|
|
85
|
+
|
|
86
|
+
- Feature #824, proposed by [@McMerph](https://github.com/McMerph).
|
|
87
|
+
- In your custom `ResultHandler` you can now specify the status codes used for positive and negative responses.
|
|
88
|
+
- This declarative information is used for generating a better documentation on your API.
|
|
89
|
+
- Declaring API Response for `ResultHandler` made easier.
|
|
90
|
+
- When responding with JSON, `getPositiveResponse` and `getNegativeResponse` can now just return the schema.
|
|
91
|
+
- For any customizations on MIME types and status codes those methods of your custom `ResultHandler` implementation
|
|
92
|
+
should return object with corresponding optional properties: `mimeType` (or `mimeTypes`) and `statusCode`.
|
|
93
|
+
- `mimeType` overrides `mimeTypes` when both are specified.
|
|
94
|
+
- The `createApiResponse()` method is deprecated and will be removed in next major release.
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
// JSON responding ResultHandler Example
|
|
98
|
+
// before
|
|
99
|
+
createResultHandler({
|
|
100
|
+
getPositiveResponse: (output: IOSchema) =>
|
|
101
|
+
createApiResponse(z.object({ data: output })),
|
|
102
|
+
getNegativeResponse: () => createApiResponse(z.object({ error: z.string() })),
|
|
103
|
+
});
|
|
104
|
+
// after
|
|
105
|
+
createResultHandler({
|
|
106
|
+
getPositiveResponse: (output: IOSchema) => z.object({ data: output }),
|
|
107
|
+
getNegativeResponse: () => z.object({ error: z.string() }),
|
|
108
|
+
});
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
// Example on customizing MIME types and status codes
|
|
113
|
+
// before
|
|
114
|
+
createResultHandler({
|
|
115
|
+
getPositiveResponse: () => createApiResponse(z.file().binary(), "image/*"),
|
|
116
|
+
getNegativeResponse: () => createApiResponse(z.string(), "text/plain"),
|
|
117
|
+
});
|
|
118
|
+
// after
|
|
119
|
+
createResultHandler({
|
|
120
|
+
getPositiveResponse: () => ({
|
|
121
|
+
schema: z.file().binary(),
|
|
122
|
+
mimeType: "image/*",
|
|
123
|
+
statusCode: 201,
|
|
124
|
+
}),
|
|
125
|
+
getNegativeResponse: () => ({
|
|
126
|
+
schema: z.string(),
|
|
127
|
+
mimeType: "text/plain",
|
|
128
|
+
statusCode: 403,
|
|
129
|
+
}),
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### v8.10.0
|
|
134
|
+
|
|
135
|
+
- Feature #845, proposed by [@lazylace37](https://github.com/lazylace37).
|
|
136
|
+
- Equipping the generated documentation with automatically generated and unique `operationId`.
|
|
137
|
+
- The `operationId` consists of method, path and optional numeric suffix.
|
|
138
|
+
|
|
139
|
+
```yaml
|
|
140
|
+
before:
|
|
141
|
+
paths:
|
|
142
|
+
/v1/user/retrieve:
|
|
143
|
+
get:
|
|
144
|
+
responses:
|
|
145
|
+
after:
|
|
146
|
+
paths:
|
|
147
|
+
/v1/user/retrieve:
|
|
148
|
+
get:
|
|
149
|
+
operationId: GetV1UserRetrieve
|
|
150
|
+
responses:
|
|
151
|
+
```
|
|
152
|
+
|
|
59
153
|
### v8.9.4
|
|
60
154
|
|
|
61
155
|
- `openapi3-ts` version is 3.2.0.
|
package/README.md
CHANGED
|
@@ -501,7 +501,6 @@ You can create your own result handler by using this example as a template:
|
|
|
501
501
|
```typescript
|
|
502
502
|
import {
|
|
503
503
|
createResultHandler,
|
|
504
|
-
createApiResponse,
|
|
505
504
|
IOSchema,
|
|
506
505
|
z,
|
|
507
506
|
getStatusCodeFromError,
|
|
@@ -509,12 +508,11 @@ import {
|
|
|
509
508
|
} from "express-zod-api";
|
|
510
509
|
|
|
511
510
|
export const yourResultHandler = createResultHandler({
|
|
512
|
-
getPositiveResponse: (output: IOSchema) =>
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
getNegativeResponse: () => createApiResponse(z.object({ error: z.string() })),
|
|
511
|
+
getPositiveResponse: (output: IOSchema) => ({
|
|
512
|
+
schema: z.object({ data: output }),
|
|
513
|
+
mimeType: "application/json", // optinal, or mimeTypes for array
|
|
514
|
+
}),
|
|
515
|
+
getNegativeResponse: () => z.object({ error: z.string() }),
|
|
518
516
|
handler: ({ error, input, output, request, response, logger }) => {
|
|
519
517
|
if (!error) {
|
|
520
518
|
// your implementation
|
|
@@ -554,8 +552,11 @@ The response schema generally may be just `z.string()`, but I made more specific
|
|
|
554
552
|
```typescript
|
|
555
553
|
const fileStreamingEndpointsFactory = new EndpointsFactory(
|
|
556
554
|
createResultHandler({
|
|
557
|
-
getPositiveResponse: () =>
|
|
558
|
-
|
|
555
|
+
getPositiveResponse: () => ({
|
|
556
|
+
schema: z.file().binary(),
|
|
557
|
+
mimeType: "image/*",
|
|
558
|
+
}),
|
|
559
|
+
getNegativeResponse: () => ({ schema: z.string(), mimeType: "text/plain" }),
|
|
559
560
|
handler: ({ response, error, output }) => {
|
|
560
561
|
if (error) {
|
|
561
562
|
response.status(400).send(error.message);
|
package/dist/api-response.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export interface ApiResponse<S extends z.ZodTypeAny> {
|
|
3
|
+
schema: S;
|
|
4
|
+
/**
|
|
5
|
+
* @default 200 for a positive response
|
|
6
|
+
* @default 400 for a negative response
|
|
7
|
+
* */
|
|
8
|
+
statusCode?: number;
|
|
9
|
+
/**
|
|
10
|
+
* @default "application/json"
|
|
11
|
+
* @override mimeTypes
|
|
12
|
+
* */
|
|
13
|
+
mimeType?: string;
|
|
14
|
+
/** @default [ "application/json" ] */
|
|
15
|
+
mimeTypes?: [string, ...string[]];
|
|
16
|
+
}
|
package/dist/api-response.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createApiResponse = void 0;
|
|
4
|
-
const mime_1 = require("./mime");
|
|
5
|
-
const createApiResponse = (schema, mimeTypes = mime_1.mimeJson) => {
|
|
6
|
-
return {
|
|
7
|
-
schema,
|
|
8
|
-
mimeTypes: typeof mimeTypes === "string" ? [mimeTypes] : mimeTypes,
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
exports.createApiResponse = createApiResponse;
|
|
12
3
|
//# sourceMappingURL=api-response.js.map
|
package/dist/api-response.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-response.js","sourceRoot":"","sources":["../src/api-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-response.js","sourceRoot":"","sources":["../src/api-response.ts"],"names":[],"mappings":""}
|
package/dist/client-helpers.d.ts
CHANGED
|
@@ -21,4 +21,3 @@ export declare const makePublicExtendedInterface: (name: string, extender: ts.He
|
|
|
21
21
|
export declare const makeTypeParams: (params: Record<string, ts.Identifier>) => ts.TypeParameterDeclaration[];
|
|
22
22
|
export declare const makeImplementationCallFn: (params: string[], args: ts.Expression[]) => ts.ArrowFunction;
|
|
23
23
|
export declare const makeObjectKeysReducer: (obj: string, exp: ts.Expression, initial: ts.Expression) => ts.CallExpression;
|
|
24
|
-
export declare const cleanId: (path: string, method: string, suffix: string) => string;
|
package/dist/client-helpers.js
CHANGED
|
@@ -3,7 +3,7 @@ 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.
|
|
6
|
+
exports.makeObjectKeysReducer = exports.makeImplementationCallFn = exports.makeTypeParams = exports.makePublicExtendedInterface = exports.makeAnyPromise = exports.makeIndexedPromise = exports.makePublicClass = exports.makePublicReadonlyProp = exports.makePublicType = exports.makePublicLiteralType = exports.makeConst = exports.makeQuotedProp = exports.makeEmptyInitializingConstructor = exports.makeRecord = exports.makeParams = exports.makeParam = exports.parametricIndexNode = exports.makeTemplate = exports.protectedReadonlyModifier = exports.publicReadonlyModifier = exports.exportModifier = exports.f = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
8
|
exports.f = typescript_1.default.factory;
|
|
9
9
|
exports.exportModifier = [exports.f.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)];
|
|
@@ -68,13 +68,4 @@ const makeObjectKeysReducer = (obj, exp, initial) => exports.f.createCallExpress
|
|
|
68
68
|
initial,
|
|
69
69
|
]);
|
|
70
70
|
exports.makeObjectKeysReducer = makeObjectKeysReducer;
|
|
71
|
-
const cleanId = (path, method, suffix) => {
|
|
72
|
-
return [method]
|
|
73
|
-
.concat(path.split("/"))
|
|
74
|
-
.concat(suffix)
|
|
75
|
-
.flatMap((entry) => entry.split(/[^A-Z0-9]/gi))
|
|
76
|
-
.map((entry) => entry.slice(0, 1).toUpperCase() + entry.slice(1).toLowerCase())
|
|
77
|
-
.join("");
|
|
78
|
-
};
|
|
79
|
-
exports.cleanId = cleanId;
|
|
80
71
|
//# sourceMappingURL=client-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-helpers.js","sourceRoot":"","sources":["../src/client-helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client-helpers.js","sourceRoot":"","sources":["../src/client-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Client = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
8
|
const client_helpers_1 = require("./client-helpers");
|
|
9
|
+
const common_helpers_1 = require("./common-helpers");
|
|
9
10
|
const method_1 = require("./method");
|
|
10
11
|
const mime_1 = require("./mime");
|
|
11
12
|
const routing_walker_1 = require("./routing-walker");
|
|
@@ -19,17 +20,17 @@ class Client {
|
|
|
19
20
|
(0, routing_walker_1.walkRouting)({
|
|
20
21
|
routing,
|
|
21
22
|
onEndpoint: (endpoint, path, method) => {
|
|
22
|
-
const inputId = (0,
|
|
23
|
-
const responseId = (0,
|
|
23
|
+
const inputId = (0, common_helpers_1.makeCleanId)(path, method, "input");
|
|
24
|
+
const responseId = (0, common_helpers_1.makeCleanId)(path, method, "response");
|
|
24
25
|
const input = (0, zts_1.zodToTs)({
|
|
25
|
-
schema: endpoint.
|
|
26
|
+
schema: endpoint.getSchema("input"),
|
|
26
27
|
isResponse: false,
|
|
27
28
|
});
|
|
28
29
|
const response = (0, zts_1.zodToTs)({
|
|
29
30
|
isResponse: true,
|
|
30
31
|
schema: endpoint
|
|
31
|
-
.
|
|
32
|
-
.or(endpoint.
|
|
32
|
+
.getSchema("positive")
|
|
33
|
+
.or(endpoint.getSchema("negative")),
|
|
33
34
|
});
|
|
34
35
|
const inputAlias = (0, zts_helpers_1.createTypeAlias)(input, inputId);
|
|
35
36
|
const responseAlias = (0, zts_helpers_1.createTypeAlias)(response, responseId);
|
|
@@ -40,7 +41,7 @@ class Client {
|
|
|
40
41
|
this.registry[`${method} ${path}`] = {
|
|
41
42
|
in: inputId,
|
|
42
43
|
out: responseId,
|
|
43
|
-
isJson: endpoint.
|
|
44
|
+
isJson: endpoint.getMimeTypes("positive").includes(mime_1.mimeJson),
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
},
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/common-helpers.d.ts
CHANGED
|
@@ -32,7 +32,8 @@ export declare function hasUpload(schema: z.ZodTypeAny): boolean;
|
|
|
32
32
|
* @desc isNullable() and isOptional() validate the schema's input
|
|
33
33
|
* @desc They always return true in case of coercion, which should be taken into account when depicting response
|
|
34
34
|
*/
|
|
35
|
-
export declare const hasCoercion: (schema: z.
|
|
35
|
+
export declare const hasCoercion: (schema: z.ZodTypeAny) => boolean;
|
|
36
|
+
export declare const makeCleanId: (path: string, method: string, suffix?: string) => string;
|
|
36
37
|
export declare const tryToTransform: ({ effect, sample, }: {
|
|
37
38
|
effect: z.Effect<any> & {
|
|
38
39
|
type: "transform";
|
package/dist/common-helpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.errToObj = exports.tryToTransform = exports.hasCoercion = exports.hasUpload = exports.hasTopLevelTransformingEffect = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.makeErrorFromAnything = exports.isValidDate = exports.isLoggerConfig = exports.getInput = exports.getActualMethod = exports.defaultInputSources = exports.routePathParamsRegex = void 0;
|
|
3
|
+
exports.errToObj = exports.tryToTransform = exports.makeCleanId = exports.hasCoercion = exports.hasUpload = exports.hasTopLevelTransformingEffect = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.makeErrorFromAnything = exports.isValidDate = exports.isLoggerConfig = exports.getInput = exports.getActualMethod = exports.defaultInputSources = exports.routePathParamsRegex = void 0;
|
|
4
4
|
const http_errors_1 = require("http-errors");
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const config_type_1 = require("./config-type");
|
|
@@ -180,6 +180,15 @@ const hasCoercion = (schema) => "coerce" in schema._def && typeof schema._def.co
|
|
|
180
180
|
? schema._def.coerce
|
|
181
181
|
: false;
|
|
182
182
|
exports.hasCoercion = hasCoercion;
|
|
183
|
+
const makeCleanId = (path, method, suffix) => {
|
|
184
|
+
return [method]
|
|
185
|
+
.concat(path.split("/"))
|
|
186
|
+
.concat(suffix || [])
|
|
187
|
+
.flatMap((entry) => entry.split(/[^A-Z0-9]/gi))
|
|
188
|
+
.map((entry) => entry.slice(0, 1).toUpperCase() + entry.slice(1).toLowerCase())
|
|
189
|
+
.join("");
|
|
190
|
+
};
|
|
191
|
+
exports.makeCleanId = makeCleanId;
|
|
183
192
|
const tryToTransform = ({ effect, sample, }) => {
|
|
184
193
|
try {
|
|
185
194
|
return typeof effect.transform(sample, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":";;;AACA,6CAAwC;AACxC,6BAAwB;AACxB,+CAMuB;AACvB,qCAAuE;AAEvE,yCAAqC;AAErC,iCAAuC;AACvC,mDAA4C;AAO5C,uDAAuD;AAC1C,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAExD,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,WAAW,GACf,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,oBAAa,CAAC;IAC7E,OAAO,OAAO,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3C,CAAC;AAEY,QAAA,mBAAmB,GAAiB;IAC/C,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IACxB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IACjC,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACvB,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACzB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;CAC5B,CAAC;AACF,MAAM,mBAAmB,GAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE,CAClD,OAAO,CAAC,MAAM,CAAC,WAAW,EAAwB,CAAC;AADxC,QAAA,eAAe,mBACyB;AAErD,SAAgB,QAAQ,CACtB,OAAgB,EAChB,eAA6C;IAE7C,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO,EAAE,CAAC;KACX;IACD,IAAI,KAAK,GAAG,mBAAmB,CAAC;IAChC,IAAI,MAAM,IAAI,2BAAmB,EAAE;QACjC,KAAK,GAAG,2BAAmB,CAAC,MAAM,CAAC,CAAC;KACrC;IACD,IAAI,eAAe,IAAI,MAAM,IAAI,eAAe,EAAE;QAChD,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;KAC1C;IACD,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACxE,MAAM,CACL,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,KAAK;QACR,GAAG,OAAO,CAAC,IAAI,CAAC;KACjB,CAAC,EACF,EAAE,CACH,CAAC;AACN,CAAC;AAxBD,4BAwBC;AAED,SAAgB,cAAc,CAAC,MAAW;IACxC,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,IAAI,MAAM;QACjB,OAAO,IAAI,MAAM;QACjB,MAAM,CAAC,IAAI,CAAC,0BAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAChD,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,CAClC,CAAC;AACJ,CAAC;AARD,wCAQC;AAED,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC;AAFD,kCAEC;AAID,SAAgB,qBAAqB,CAAI,OAAU;IACjD,OAAO,OAAO,YAAY,KAAK;QAC7B,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,KAAK,CACP,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAChE,CAAC;AACR,CAAC;AAND,sDAMC;AAED,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE;QAC/B,OAAO,KAAK,CAAC,MAAM;aAChB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CACzB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACjE;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;IACD,IAAI,KAAK,YAAY,8BAAqB,EAAE;QAC1C,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,OAAO,SAAS,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;KAC9D;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAbD,kDAaC;AAED,SAAgB,sBAAsB,CAAC,KAAY;IACjD,IAAI,KAAK,YAAY,uBAAS,EAAE;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;IACD,IAAI,KAAK,YAAY,6BAAoB,EAAE;QACzC,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AARD,wDAQC;AAGM,MAAM,WAAW,GAAG,CACzB,MAAS,EACT,aAAsB,EACT,EAAE;IACf,MAAM,QAAQ,GAAG,IAAA,kBAAO,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,OAAO,EAAE,CAAC;KACX;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,MAAM,CACjB,aAAa,CAAC,OAAO;YACnB,CAAC,CAAC,aAAa;gBACb,CAAC,CAAC,aAAa,CAAC,IAAI;gBACpB,CAAC,CAAC,OAAO;YACX,CAAC,CAAC,EAAE,CACP,CAAC;IACJ,CAAC,EAAE,EAA+B,CAAC,CAAC;AACtC,CAAC,CAAC;AAlBW,QAAA,WAAW,eAkBtB;AAEK,MAAM,YAAY,GAAG,CAC1B,CAAM,EACN,CAAM,EAC+D,EAAE;IACvE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAClB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAClB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE;QACrB,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SAC7B;KACF;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB;AAEF,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,4BAAoB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAND,gDAMC;AAED,MAAM,UAAU,GAAG,CAAC,GAAc,EAAE,EAAE,CACpC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;AAEpD,SAAgB,6BAA6B,CAAC,MAAgB;IAC5D,IAAI,MAAM,YAAY,OAAC,CAAC,UAAU,EAAE;QAClC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;YAC5C,OAAO,IAAI,CAAC;SACb;KACF;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,QAAQ,EAAE;QAChC,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;KACtE;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,eAAe,EAAE;QACvC,OAAO,UAAU,CACf,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CACzE,CAAC;KACH;IACD,OAAO,KAAK,CAAC,CAAC,iBAAiB;AACjC,CAAC;AAfD,sEAeC;AAED,SAAgB,SAAS,CAAC,MAAoB;IAC5C,IAAI,MAAM,YAAY,yBAAS,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,SAAS,EAAE;QACjC,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAe,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;KAC7E;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,QAAQ,EAAE;QAChC,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;KAClD;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,eAAe,EAAE;QACvC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;KACzE;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,WAAW,IAAI,MAAM,YAAY,OAAC,CAAC,WAAW,EAAE;QACtE,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KACnC;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,UAAU,IAAI,MAAM,YAAY,OAAC,CAAC,cAAc,EAAE;QACxE,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtC;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,SAAS,EAAE;QACjC,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,QAAQ,EAAE;QAChC,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;IACD,IAAI,MAAM,YAAY,OAAC,CAAC,UAAU,EAAE;QAClC,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AA7BD,8BA6BC;AAED;;;GAGG;AACI,MAAM,WAAW,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoint.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Request, Response } from "express";
|
|
2
2
|
import { Logger } from "winston";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { ApiResponse } from "./api-response";
|
|
5
4
|
import { CommonConfig } from "./config-type";
|
|
6
5
|
import { FlatObject } from "./common-helpers";
|
|
7
6
|
import { IOSchema } from "./io-schema";
|
|
@@ -15,6 +14,10 @@ export type Handler<IN, OUT, OPT> = (params: {
|
|
|
15
14
|
options: OPT;
|
|
16
15
|
logger: Logger;
|
|
17
16
|
}) => Promise<OUT>;
|
|
17
|
+
type DescriptionVariant = "short" | "long";
|
|
18
|
+
type IOVariant = "input" | "output";
|
|
19
|
+
type ResponseVariant = "positive" | "negative";
|
|
20
|
+
type MimeVariant = Extract<IOVariant, "input"> | ResponseVariant;
|
|
18
21
|
export declare abstract class AbstractEndpoint {
|
|
19
22
|
abstract execute(params: {
|
|
20
23
|
request: Request;
|
|
@@ -22,24 +25,20 @@ export declare abstract class AbstractEndpoint {
|
|
|
22
25
|
logger: Logger;
|
|
23
26
|
config: CommonConfig;
|
|
24
27
|
}): Promise<void>;
|
|
25
|
-
abstract getDescription(variant:
|
|
28
|
+
abstract getDescription(variant: DescriptionVariant): string | undefined;
|
|
26
29
|
abstract getMethods(): Method[];
|
|
27
|
-
abstract
|
|
28
|
-
abstract
|
|
29
|
-
abstract
|
|
30
|
-
abstract
|
|
31
|
-
abstract getInputMimeTypes(): string[];
|
|
32
|
-
abstract getPositiveMimeTypes(): string[];
|
|
33
|
-
abstract getNegativeMimeTypes(): string[];
|
|
30
|
+
abstract getSchema(variant: IOVariant): IOSchema;
|
|
31
|
+
abstract getSchema(variant: ResponseVariant): z.ZodTypeAny;
|
|
32
|
+
abstract getMimeTypes(variant: MimeVariant): string[];
|
|
33
|
+
abstract getStatusCode(variant: ResponseVariant): number;
|
|
34
34
|
abstract getSecurity(): LogicalContainer<Security>;
|
|
35
35
|
abstract getScopes(): string[];
|
|
36
36
|
abstract getTags(): string[];
|
|
37
37
|
abstract _setSiblingMethods(methods: Method[]): void;
|
|
38
38
|
}
|
|
39
|
-
type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends
|
|
39
|
+
type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends z.ZodTypeAny, NEG extends z.ZodTypeAny, SCO extends string, TAG extends string> = {
|
|
40
40
|
middlewares: AnyMiddlewareDef[];
|
|
41
41
|
inputSchema: IN;
|
|
42
|
-
mimeTypes: string[];
|
|
43
42
|
outputSchema: OUT;
|
|
44
43
|
handler: Handler<z.output<IN>, z.input<OUT>, OPT>;
|
|
45
44
|
resultHandler: ResultHandlerDefinition<POS, NEG>;
|
|
@@ -54,34 +53,38 @@ type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatOb
|
|
|
54
53
|
} | {
|
|
55
54
|
tag?: TAG;
|
|
56
55
|
}) & MethodsDefinition<M>;
|
|
57
|
-
export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends
|
|
56
|
+
export declare class Endpoint<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends z.ZodTypeAny, NEG extends z.ZodTypeAny, SCO extends string, TAG extends string> extends AbstractEndpoint {
|
|
58
57
|
#private;
|
|
59
|
-
protected readonly descriptions: Record<
|
|
58
|
+
protected readonly descriptions: Record<DescriptionVariant, string | undefined>;
|
|
60
59
|
protected readonly methods: M[];
|
|
61
60
|
protected siblingMethods: Method[];
|
|
62
61
|
protected readonly middlewares: AnyMiddlewareDef[];
|
|
63
|
-
protected readonly
|
|
64
|
-
protected readonly
|
|
65
|
-
protected readonly outputSchema: OUT;
|
|
62
|
+
protected readonly mimeTypes: Record<MimeVariant, string[]>;
|
|
63
|
+
protected readonly statusCodes: Record<ResponseVariant, number>;
|
|
66
64
|
protected readonly handler: Handler<z.output<IN>, z.input<OUT>, OPT>;
|
|
67
65
|
protected readonly resultHandler: ResultHandlerDefinition<POS, NEG>;
|
|
66
|
+
protected readonly schemas: {
|
|
67
|
+
input: IN;
|
|
68
|
+
output: OUT;
|
|
69
|
+
positive: POS;
|
|
70
|
+
negative: NEG;
|
|
71
|
+
};
|
|
68
72
|
protected readonly scopes: SCO[];
|
|
69
73
|
protected readonly tags: TAG[];
|
|
70
|
-
constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, shortDescription,
|
|
74
|
+
constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, shortDescription, ...rest }: EndpointProps<IN, OUT, OPT, M, POS, NEG, SCO, TAG>);
|
|
71
75
|
/**
|
|
72
76
|
* @desc Sets the other methods supported by the same path. Used by Routing in DependsOnMethod case, for options.
|
|
73
77
|
* @deprecated This method is for internal needs of the library, please avoid using it.
|
|
74
78
|
* */
|
|
75
79
|
_setSiblingMethods(methods: Method[]): void;
|
|
76
|
-
getDescription(variant:
|
|
80
|
+
getDescription(variant: DescriptionVariant): string | undefined;
|
|
77
81
|
getMethods(): M[];
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
getNegativeMimeTypes(): string[];
|
|
82
|
+
getSchema(variant: "input"): IN;
|
|
83
|
+
getSchema(variant: "output"): OUT;
|
|
84
|
+
getSchema(variant: "positive"): POS;
|
|
85
|
+
getSchema(variant: "negative"): NEG;
|
|
86
|
+
getMimeTypes(variant: MimeVariant): string[];
|
|
87
|
+
getStatusCode(variant: ResponseVariant): number;
|
|
85
88
|
getSecurity(): LogicalContainer<Security<string, string>>;
|
|
86
89
|
getScopes(): SCO[];
|
|
87
90
|
getTags(): TAG[];
|
package/dist/endpoint.js
CHANGED
|
@@ -11,17 +11,27 @@ const zod_1 = require("zod");
|
|
|
11
11
|
const errors_1 = require("./errors");
|
|
12
12
|
const common_helpers_1 = require("./common-helpers");
|
|
13
13
|
const logical_container_1 = require("./logical-container");
|
|
14
|
+
const mime_1 = require("./mime");
|
|
14
15
|
const result_handler_1 = require("./result-handler");
|
|
16
|
+
const getMimeTypesFromApiResponse = (subject, fallback = [mime_1.mimeJson]) => {
|
|
17
|
+
if (subject instanceof zod_1.z.ZodType) {
|
|
18
|
+
return fallback;
|
|
19
|
+
}
|
|
20
|
+
const { mimeTypes, mimeType } = subject;
|
|
21
|
+
return mimeType ? [mimeType] : mimeTypes || fallback;
|
|
22
|
+
};
|
|
15
23
|
class AbstractEndpoint {
|
|
16
24
|
}
|
|
17
25
|
exports.AbstractEndpoint = AbstractEndpoint;
|
|
18
26
|
class Endpoint extends AbstractEndpoint {
|
|
19
|
-
constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, shortDescription,
|
|
27
|
+
constructor({ middlewares, inputSchema, outputSchema, handler, resultHandler, description, shortDescription, ...rest }) {
|
|
20
28
|
super();
|
|
21
29
|
_Endpoint_instances.add(this);
|
|
22
30
|
this.methods = [];
|
|
23
31
|
this.siblingMethods = [];
|
|
24
32
|
this.middlewares = [];
|
|
33
|
+
this.scopes = [];
|
|
34
|
+
this.tags = [];
|
|
25
35
|
[
|
|
26
36
|
{ name: "input schema", schema: inputSchema },
|
|
27
37
|
{ name: "output schema", schema: outputSchema },
|
|
@@ -31,14 +41,36 @@ class Endpoint extends AbstractEndpoint {
|
|
|
31
41
|
}
|
|
32
42
|
});
|
|
33
43
|
this.middlewares = middlewares;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
const apiResponse = {
|
|
45
|
+
positive: resultHandler.getPositiveResponse(outputSchema),
|
|
46
|
+
negative: resultHandler.getNegativeResponse(),
|
|
47
|
+
};
|
|
48
|
+
this.mimeTypes = {
|
|
49
|
+
input: (0, common_helpers_1.hasUpload)(inputSchema) ? [mime_1.mimeMultipart] : [mime_1.mimeJson],
|
|
50
|
+
positive: getMimeTypesFromApiResponse(apiResponse.positive),
|
|
51
|
+
negative: getMimeTypesFromApiResponse(apiResponse.negative),
|
|
52
|
+
};
|
|
53
|
+
this.schemas = {
|
|
54
|
+
input: inputSchema,
|
|
55
|
+
output: outputSchema,
|
|
56
|
+
positive: apiResponse.positive instanceof zod_1.z.ZodType
|
|
57
|
+
? apiResponse.positive
|
|
58
|
+
: apiResponse.positive.schema,
|
|
59
|
+
negative: apiResponse.negative instanceof zod_1.z.ZodType
|
|
60
|
+
? apiResponse.negative
|
|
61
|
+
: apiResponse.negative.schema,
|
|
62
|
+
};
|
|
63
|
+
this.statusCodes = {
|
|
64
|
+
positive: apiResponse.positive instanceof zod_1.z.ZodType
|
|
65
|
+
? result_handler_1.defaultStatusCodes.positive
|
|
66
|
+
: apiResponse.positive.statusCode || result_handler_1.defaultStatusCodes.positive,
|
|
67
|
+
negative: apiResponse.negative instanceof zod_1.z.ZodType
|
|
68
|
+
? result_handler_1.defaultStatusCodes.negative
|
|
69
|
+
: apiResponse.negative.statusCode || result_handler_1.defaultStatusCodes.negative,
|
|
70
|
+
};
|
|
37
71
|
this.handler = handler;
|
|
38
72
|
this.resultHandler = resultHandler;
|
|
39
73
|
this.descriptions = { long: description, short: shortDescription };
|
|
40
|
-
this.scopes = [];
|
|
41
|
-
this.tags = [];
|
|
42
74
|
if ("scopes" in rest && rest.scopes) {
|
|
43
75
|
this.scopes.push(...rest.scopes);
|
|
44
76
|
}
|
|
@@ -71,26 +103,14 @@ class Endpoint extends AbstractEndpoint {
|
|
|
71
103
|
getMethods() {
|
|
72
104
|
return this.methods;
|
|
73
105
|
}
|
|
74
|
-
|
|
75
|
-
return this.
|
|
76
|
-
}
|
|
77
|
-
getOutputSchema() {
|
|
78
|
-
return this.outputSchema;
|
|
79
|
-
}
|
|
80
|
-
getPositiveResponseSchema() {
|
|
81
|
-
return this.resultHandler.getPositiveResponse(this.outputSchema).schema;
|
|
82
|
-
}
|
|
83
|
-
getNegativeResponseSchema() {
|
|
84
|
-
return this.resultHandler.getNegativeResponse().schema;
|
|
85
|
-
}
|
|
86
|
-
getInputMimeTypes() {
|
|
87
|
-
return this.mimeTypes;
|
|
106
|
+
getSchema(variant) {
|
|
107
|
+
return this.schemas[variant];
|
|
88
108
|
}
|
|
89
|
-
|
|
90
|
-
return this.
|
|
109
|
+
getMimeTypes(variant) {
|
|
110
|
+
return this.mimeTypes[variant];
|
|
91
111
|
}
|
|
92
|
-
|
|
93
|
-
return this.
|
|
112
|
+
getStatusCode(variant) {
|
|
113
|
+
return this.statusCodes[variant];
|
|
94
114
|
}
|
|
95
115
|
getSecurity() {
|
|
96
116
|
return this.middlewares.reduce((acc, middleware) => middleware.security ? (0, logical_container_1.combineContainers)(acc, middleware.security) : acc, { and: [] });
|
|
@@ -164,7 +184,7 @@ _Endpoint_instances = new WeakSet(), _Endpoint_getDefaultCorsHeaders = function
|
|
|
164
184
|
};
|
|
165
185
|
}, _Endpoint_parseOutput = async function _Endpoint_parseOutput(output) {
|
|
166
186
|
try {
|
|
167
|
-
return await this.
|
|
187
|
+
return await this.schemas.output.parseAsync(output);
|
|
168
188
|
}
|
|
169
189
|
catch (e) {
|
|
170
190
|
if (e instanceof zod_1.z.ZodError) {
|
|
@@ -206,7 +226,7 @@ _Endpoint_instances = new WeakSet(), _Endpoint_getDefaultCorsHeaders = function
|
|
|
206
226
|
}, _Endpoint_parseAndRunHandler = async function _Endpoint_parseAndRunHandler({ input, options, logger, }) {
|
|
207
227
|
let finalInput; // final input types transformations for handler
|
|
208
228
|
try {
|
|
209
|
-
finalInput = (await this.
|
|
229
|
+
finalInput = (await this.schemas.input.parseAsync(input));
|
|
210
230
|
}
|
|
211
231
|
catch (e) {
|
|
212
232
|
if (e instanceof zod_1.z.ZodError) {
|