express-zod-api 6.1.4 → 7.0.0
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 +29 -0
- package/README.md +4 -53
- package/SECURITY.md +3 -2
- package/dist/common-helpers.d.ts +0 -7
- package/dist/common-helpers.js +1 -3
- package/dist/common-helpers.js.map +1 -1
- package/dist/endpoint.d.ts +1 -4
- package/dist/endpoint.js.map +1 -1
- package/dist/endpoints-factory.d.ts +11 -11
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/result-handler.d.ts +12 -12
- package/dist/result-handler.js +1 -1
- package/dist/result-handler.js.map +1 -1
- package/dist/startup-logo.js +1 -1
- package/dist-esm/common-helpers.js +0 -1
- package/dist-esm/common-helpers.js.map +1 -1
- package/dist-esm/endpoint.js +1 -1
- package/dist-esm/endpoint.js.map +1 -1
- package/dist-esm/index.js +1 -2
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/package.json +1 -1
- package/dist-esm/result-handler.js +2 -2
- package/dist-esm/result-handler.js.map +1 -1
- package/dist-esm/startup-logo.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Version 7
|
|
4
|
+
|
|
5
|
+
### v7.0.0
|
|
6
|
+
|
|
7
|
+
- The deprecated methods and utility types have been removed:
|
|
8
|
+
- `markOutput(), EndpointInput<>, EndpointOutput<>, EndpointResponse<>`.
|
|
9
|
+
- In case you've been using these entities for informing the Frontend on types of your endpoints, here is what you
|
|
10
|
+
need to do in order to migrate:
|
|
11
|
+
- Replace `markOutput(output)` with just `output` in your custom result handlers;
|
|
12
|
+
- Replace the type signature of `getPositiveResponse()` method of your custom result handlers:
|
|
13
|
+
- from `getPositiveResponse: <OUT extends IOSchema>(output: OUT) => {...}`
|
|
14
|
+
- to `getPositiveResponse: (output: IOSchema) => {...}`
|
|
15
|
+
- Replace usage of the utility types to the generated Frontend Client:
|
|
16
|
+
- See Readme file on how to do it.
|
|
17
|
+
|
|
3
18
|
## Version 6
|
|
4
19
|
|
|
20
|
+
### v6.2.1
|
|
21
|
+
|
|
22
|
+
- `zod` version is 3.16.0.
|
|
23
|
+
|
|
24
|
+
### v6.2.0
|
|
25
|
+
|
|
26
|
+
- The following methods and utility types have been marked as deprecated:
|
|
27
|
+
- `markOutput()`,
|
|
28
|
+
- `EndpointInput<>`,
|
|
29
|
+
- `EndpointOutput<>`,
|
|
30
|
+
- `EndpointResponse<>`.
|
|
31
|
+
- These entities were used for informing the Frontend on types of API endpoints.
|
|
32
|
+
- Instead, consider the new approach on generating a Frontend Client (see Readme).
|
|
33
|
+
|
|
5
34
|
### v6.1.4
|
|
6
35
|
|
|
7
36
|
- `zod` version is 3.15.1.
|
package/README.md
CHANGED
|
@@ -43,9 +43,7 @@ Start your API server with I/O schema validation and custom middlewares in minut
|
|
|
43
43
|
15. [Customizing input sources](#customizing-input-sources)
|
|
44
44
|
16. [Enabling compression](#enabling-compression)
|
|
45
45
|
17. [Enabling HTTPS](#enabling-https)
|
|
46
|
-
18. [
|
|
47
|
-
1. [Generating DTS files](#generating-dts-files)
|
|
48
|
-
2. [Generating a Client](#generating-a-client) _NEW approach_
|
|
46
|
+
18. [Generating a Frontend Client](#generating-a-frontend-client)
|
|
49
47
|
19. [Creating a documentation](#creating-a-documentation)
|
|
50
48
|
5. [Additional hints](#additional-hints)
|
|
51
49
|
1. [How to test endpoints](#how-to-test-endpoints)
|
|
@@ -452,16 +450,13 @@ import {
|
|
|
452
450
|
createResultHandler,
|
|
453
451
|
createApiResponse,
|
|
454
452
|
IOSchema,
|
|
455
|
-
markOutput,
|
|
456
453
|
z,
|
|
457
454
|
} from "express-zod-api";
|
|
458
455
|
|
|
459
456
|
export const yourResultHandler = createResultHandler({
|
|
460
|
-
getPositiveResponse:
|
|
457
|
+
getPositiveResponse: (output: IOSchema) =>
|
|
461
458
|
createApiResponse(
|
|
462
|
-
z.object({
|
|
463
|
-
data: markOutput(output),
|
|
464
|
-
}),
|
|
459
|
+
z.object({ data: output }),
|
|
465
460
|
"application/json" // optional, or array of mime types
|
|
466
461
|
),
|
|
467
462
|
getNegativeResponse: () => createApiResponse(z.object({ error: z.string() })),
|
|
@@ -730,51 +725,7 @@ At least you need to specify the port or socket (usually it is 443), certificate
|
|
|
730
725
|
certifying authority. For example, you can acquire a free TLS certificate for your API at
|
|
731
726
|
[Let's Encrypt](https://letsencrypt.org/).
|
|
732
727
|
|
|
733
|
-
##
|
|
734
|
-
|
|
735
|
-
### Generating DTS files
|
|
736
|
-
|
|
737
|
-
You can inform your frontend about the I/O types of your endpoints by exporting them to `.d.ts` files (they only
|
|
738
|
-
contain types without any executable code). To achieve that you are going to need an additional `tsconfig.dts.json`
|
|
739
|
-
file with the following content:
|
|
740
|
-
|
|
741
|
-
```json
|
|
742
|
-
{
|
|
743
|
-
"extends": "./tsconfig.json",
|
|
744
|
-
"compilerOptions": {
|
|
745
|
-
"outDir": "dts",
|
|
746
|
-
"declaration": true,
|
|
747
|
-
"emitDeclarationOnly": true
|
|
748
|
-
}
|
|
749
|
-
}
|
|
750
|
-
```
|
|
751
|
-
|
|
752
|
-
Most likely you have a file with all the configured routing, in which you can do the following:
|
|
753
|
-
|
|
754
|
-
```typescript
|
|
755
|
-
import { EndpointInput, EndpointResponse } from "express-zod-api";
|
|
756
|
-
|
|
757
|
-
export type YourEndpointInput = EndpointInput<typeof yourEndpoint>;
|
|
758
|
-
export type YourEndpointResponse = EndpointResponse<typeof yourEndpoint>;
|
|
759
|
-
```
|
|
760
|
-
|
|
761
|
-
By executing the following command you'll get the compiled `/dts/routing.d.ts` file.
|
|
762
|
-
|
|
763
|
-
```shell
|
|
764
|
-
yarn tsc -p tsconfig.dts.json
|
|
765
|
-
```
|
|
766
|
-
|
|
767
|
-
The command might become a part of your CI/CD.
|
|
768
|
-
Then import the I/O type of your endpoint from the compiled file using `import type` syntax on the frontend.
|
|
769
|
-
|
|
770
|
-
```typescript
|
|
771
|
-
import type {
|
|
772
|
-
YourEndpointInput,
|
|
773
|
-
YourEndpointResponse,
|
|
774
|
-
} from "../your_backend/dts/routing";
|
|
775
|
-
```
|
|
776
|
-
|
|
777
|
-
### Generating a Client
|
|
728
|
+
## Generating a Frontend Client
|
|
778
729
|
|
|
779
730
|
There is a new way of informing the frontend about the I/O types of your endpoints starting the version 6.1.0.
|
|
780
731
|
The new approach offers automatic generation of a client based on routing to a typescript file.
|
package/SECURITY.md
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
| Version | Supported |
|
|
6
6
|
| ------- | ------------------ |
|
|
7
|
+
| 7.x.x | :white_check_mark: |
|
|
7
8
|
| 6.x.x | :white_check_mark: |
|
|
8
|
-
| 5.x.x | :
|
|
9
|
-
| 4.x.x | :
|
|
9
|
+
| 5.x.x | :x: |
|
|
10
|
+
| 4.x.x | :x: |
|
|
10
11
|
| 3.x.x | :x: |
|
|
11
12
|
| 2.x.x | :x: |
|
|
12
13
|
| 1.x.x | :x: |
|
package/dist/common-helpers.d.ts
CHANGED
|
@@ -5,15 +5,8 @@ import { AnyMiddlewareDef } from "./middleware";
|
|
|
5
5
|
export declare type FlatObject = Record<string, any>;
|
|
6
6
|
export declare type IOSchema<U extends UnknownKeysParam = any> = z.ZodObject<any, U> | z.ZodUnion<[IOSchema<U>, ...IOSchema<U>[]]> | z.ZodIntersection<IOSchema<U>, IOSchema<U>> | z.ZodDiscriminatedUnion<string, z.Primitive, z.ZodObject<any, U>>;
|
|
7
7
|
export declare type ArrayElement<T extends readonly unknown[]> = T extends readonly (infer K)[] ? K : never;
|
|
8
|
-
export declare type OutputMarker = IOSchema & {
|
|
9
|
-
_typeGuard: "OutputMarker";
|
|
10
|
-
};
|
|
11
|
-
export declare const markOutput: (output: IOSchema) => OutputMarker;
|
|
12
8
|
/** @see https://expressjs.com/en/guide/routing.html */
|
|
13
9
|
export declare const routePathParamsRegex: RegExp;
|
|
14
|
-
export declare type ReplaceMarkerInShape<S extends z.ZodRawShape, OUT extends IOSchema> = {
|
|
15
|
-
[K in keyof S]: S[K] extends OutputMarker ? OUT : S[K];
|
|
16
|
-
};
|
|
17
10
|
export declare type ProbableIntersection<A extends IOSchema<"strip"> | null, B extends IOSchema> = A extends null ? B : A extends IOSchema<"strip"> ? z.ZodIntersection<A, B> : never;
|
|
18
11
|
/**
|
|
19
12
|
* @description intersects input schemas of middlewares and the endpoint
|
package/dist/common-helpers.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.errToObj = exports.hasUpload = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.isValidDate = exports.isLoggerConfig = exports.getInitialInput = exports.defaultInputSources = exports.getFinalEndpointInputSchema = exports.routePathParamsRegex =
|
|
3
|
+
exports.errToObj = exports.hasUpload = exports.getRoutePathParams = exports.combinations = exports.getExamples = exports.getStatusCodeFromError = exports.getMessageFromError = exports.isValidDate = exports.isLoggerConfig = exports.getInitialInput = exports.defaultInputSources = exports.getFinalEndpointInputSchema = 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");
|
|
7
7
|
const metadata_1 = require("./metadata");
|
|
8
8
|
const mime_1 = require("./mime");
|
|
9
9
|
const upload_schema_1 = require("./upload-schema");
|
|
10
|
-
const markOutput = (output) => output;
|
|
11
|
-
exports.markOutput = markOutput;
|
|
12
10
|
/** @see https://expressjs.com/en/guide/routing.html */
|
|
13
11
|
exports.routePathParamsRegex = /:([A-Za-z0-9_]+)/g;
|
|
14
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":";;;AACA,6CAAwC;AACxC,6BAAwB;AACxB,+CAKuB;AACvB,yCAA+C;AAG/C,iCAAuC;AACvC,mDAA4C;
|
|
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
|
@@ -3,7 +3,7 @@ import { Logger } from "winston";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { ApiResponse } from "./api-response";
|
|
5
5
|
import { CommonConfig } from "./config-type";
|
|
6
|
-
import { FlatObject, IOSchema
|
|
6
|
+
import { FlatObject, IOSchema } from "./common-helpers";
|
|
7
7
|
import { Method, MethodsDefinition } from "./method";
|
|
8
8
|
import { AnyMiddlewareDef } from "./middleware";
|
|
9
9
|
import { ResultHandlerDefinition } from "./result-handler";
|
|
@@ -29,9 +29,6 @@ export declare abstract class AbstractEndpoint {
|
|
|
29
29
|
abstract getPositiveMimeTypes(): string[];
|
|
30
30
|
abstract getNegativeMimeTypes(): string[];
|
|
31
31
|
}
|
|
32
|
-
export declare type EndpointInput<T> = T extends Endpoint<infer IN, any, any, any, any, any> ? z.input<IN> : never;
|
|
33
|
-
export declare type EndpointOutput<T> = T extends Endpoint<any, infer OUT, any, any, any, any> ? z.output<OUT> : never;
|
|
34
|
-
export declare type EndpointResponse<E extends AbstractEndpoint> = z.output<ReturnType<E["getPositiveResponseSchema"]> extends z.ZodObject<z.ZodRawShape> ? z.ZodObject<ReplaceMarkerInShape<ReturnType<E["getPositiveResponseSchema"]>["_shape"], ReturnType<E["getOutputSchema"]>>> : ReturnType<E["getPositiveResponseSchema"]> extends OutputMarker ? ReturnType<E["getOutputSchema"]> : ReturnType<E["getPositiveResponseSchema"]>> | z.output<ReturnType<E["getNegativeResponseSchema"]>>;
|
|
35
32
|
declare type EndpointProps<IN extends IOSchema, OUT extends IOSchema, OPT extends FlatObject, M extends Method, POS extends ApiResponse, NEG extends ApiResponse> = {
|
|
36
33
|
middlewares: AnyMiddlewareDef[];
|
|
37
34
|
inputSchema: IN;
|
package/dist/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":";;;;;;;;;AAEA,6BAAwB;AAGxB,qCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,39 +26,39 @@ export declare class EndpointsFactory<POS extends ApiResponse, NEG extends ApiRe
|
|
|
26
26
|
}
|
|
27
27
|
export declare const defaultEndpointsFactory: EndpointsFactory<ApiResponse<z.ZodObject<{
|
|
28
28
|
status: z.ZodLiteral<"success">;
|
|
29
|
-
data:
|
|
29
|
+
data: IOSchema<any>;
|
|
30
30
|
}, "strip", z.ZodTypeAny, {
|
|
31
|
-
status: "success";
|
|
32
31
|
data?: unknown;
|
|
33
|
-
}, {
|
|
34
32
|
status: "success";
|
|
33
|
+
}, {
|
|
35
34
|
data?: unknown;
|
|
35
|
+
status: "success";
|
|
36
36
|
}> & {
|
|
37
37
|
_def: z.ZodObjectDef<{
|
|
38
38
|
status: z.ZodLiteral<"success">;
|
|
39
|
-
data:
|
|
39
|
+
data: IOSchema<any>;
|
|
40
40
|
}, "strip", z.ZodTypeAny> & import("./metadata").MetaDef<z.ZodObject<{
|
|
41
41
|
status: z.ZodLiteral<"success">;
|
|
42
|
-
data:
|
|
42
|
+
data: IOSchema<any>;
|
|
43
43
|
}, "strip", z.ZodTypeAny, {
|
|
44
|
-
status: "success";
|
|
45
44
|
data?: unknown;
|
|
46
|
-
}, {
|
|
47
45
|
status: "success";
|
|
46
|
+
}, {
|
|
48
47
|
data?: unknown;
|
|
48
|
+
status: "success";
|
|
49
49
|
}>>;
|
|
50
50
|
example: (example: {
|
|
51
|
-
status: "success";
|
|
52
51
|
data?: unknown;
|
|
52
|
+
status: "success";
|
|
53
53
|
}) => z.ZodObject<{
|
|
54
54
|
status: z.ZodLiteral<"success">;
|
|
55
|
-
data:
|
|
55
|
+
data: IOSchema<any>;
|
|
56
56
|
}, "strip", z.ZodTypeAny, {
|
|
57
|
-
status: "success";
|
|
58
57
|
data?: unknown;
|
|
59
|
-
}, {
|
|
60
58
|
status: "success";
|
|
59
|
+
}, {
|
|
61
60
|
data?: unknown;
|
|
61
|
+
status: "success";
|
|
62
62
|
}> & any;
|
|
63
63
|
}>, ApiResponse<z.ZodObject<{
|
|
64
64
|
status: z.ZodLiteral<"error">;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { createConfig, LoggerConfig } from "./config-type";
|
|
2
|
-
export { AbstractEndpoint
|
|
2
|
+
export { AbstractEndpoint } from "./endpoint";
|
|
3
3
|
export { Method } from "./method";
|
|
4
4
|
export { EndpointsFactory, defaultEndpointsFactory } from "./endpoints-factory";
|
|
5
|
-
export { IOSchema, FlatObject
|
|
5
|
+
export { IOSchema, FlatObject } from "./common-helpers";
|
|
6
6
|
export { createApiResponse } from "./api-response";
|
|
7
7
|
export { createLogger } from "./logger";
|
|
8
8
|
export { createMiddleware } from "./middleware";
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.z = exports.createHttpError = exports.Client = exports.testEndpoint = exports.withMeta = exports.RoutingError = exports.DependsOnMethodError = exports.OpenAPIError = exports.OpenAPI = exports.attachRouting = exports.createServer = exports.ServeStatic = exports.DependsOnMethod = exports.defaultResultHandler = exports.createResultHandler = exports.createMiddleware = exports.createLogger = exports.createApiResponse = exports.
|
|
29
|
+
exports.z = exports.createHttpError = exports.Client = exports.testEndpoint = exports.withMeta = exports.RoutingError = exports.DependsOnMethodError = exports.OpenAPIError = exports.OpenAPI = exports.attachRouting = exports.createServer = exports.ServeStatic = exports.DependsOnMethod = exports.defaultResultHandler = exports.createResultHandler = exports.createMiddleware = exports.createLogger = exports.createApiResponse = exports.defaultEndpointsFactory = exports.EndpointsFactory = exports.AbstractEndpoint = exports.createConfig = void 0;
|
|
30
30
|
var config_type_1 = require("./config-type");
|
|
31
31
|
Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return config_type_1.createConfig; } });
|
|
32
32
|
var endpoint_1 = require("./endpoint");
|
|
@@ -34,8 +34,6 @@ Object.defineProperty(exports, "AbstractEndpoint", { enumerable: true, get: func
|
|
|
34
34
|
var endpoints_factory_1 = require("./endpoints-factory");
|
|
35
35
|
Object.defineProperty(exports, "EndpointsFactory", { enumerable: true, get: function () { return endpoints_factory_1.EndpointsFactory; } });
|
|
36
36
|
Object.defineProperty(exports, "defaultEndpointsFactory", { enumerable: true, get: function () { return endpoints_factory_1.defaultEndpointsFactory; } });
|
|
37
|
-
var common_helpers_1 = require("./common-helpers");
|
|
38
|
-
Object.defineProperty(exports, "markOutput", { enumerable: true, get: function () { return common_helpers_1.markOutput; } });
|
|
39
37
|
var api_response_1 = require("./api-response");
|
|
40
38
|
Object.defineProperty(exports, "createApiResponse", { enumerable: true, get: function () { return api_response_1.createApiResponse; } });
|
|
41
39
|
var logger_1 = require("./logger");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2D;AAAlD,2GAAA,YAAY,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2D;AAAlD,2GAAA,YAAY,OAAA;AACrB,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA;AAEzB,yDAAgF;AAAvE,qHAAA,gBAAgB,OAAA;AAAE,4HAAA,uBAAuB,OAAA;AAElD,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAC1B,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,mDAA6E;AAApE,qHAAA,mBAAmB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAClD,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,mCAAuD;AAA9C,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AACpC,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAChB,mCAA4E;AAAnE,sGAAA,YAAY,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,sGAAA,YAAY,OAAA;AACzD,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AACrB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,gDAAkC;AAGR,cAAC;AAF3B,8DAA0C;AAEjC,0BAFF,qBAAe,CAEE"}
|
package/dist/result-handler.d.ts
CHANGED
|
@@ -19,46 +19,46 @@ interface ResultHandlerParams<RES> {
|
|
|
19
19
|
}
|
|
20
20
|
declare type ResultHandler<RES> = (params: ResultHandlerParams<RES>) => void | Promise<void>;
|
|
21
21
|
export interface ResultHandlerDefinition<POS extends ApiResponse, NEG extends ApiResponse> {
|
|
22
|
-
getPositiveResponse:
|
|
22
|
+
getPositiveResponse: (output: IOSchema) => POS;
|
|
23
23
|
getNegativeResponse: () => NEG;
|
|
24
24
|
handler: ResultHandler<z.output<POS["schema"]> | z.output<NEG["schema"]>>;
|
|
25
25
|
}
|
|
26
26
|
export declare const createResultHandler: <POS extends ApiResponse<z.ZodTypeAny>, NEG extends ApiResponse<z.ZodTypeAny>>(definition: ResultHandlerDefinition<POS, NEG>) => ResultHandlerDefinition<POS, NEG>;
|
|
27
27
|
export declare const defaultResultHandler: ResultHandlerDefinition<ApiResponse<z.ZodObject<{
|
|
28
28
|
status: z.ZodLiteral<"success">;
|
|
29
|
-
data:
|
|
29
|
+
data: IOSchema<any>;
|
|
30
30
|
}, "strip", z.ZodTypeAny, {
|
|
31
|
-
status: "success";
|
|
32
31
|
data?: unknown;
|
|
33
|
-
}, {
|
|
34
32
|
status: "success";
|
|
33
|
+
}, {
|
|
35
34
|
data?: unknown;
|
|
35
|
+
status: "success";
|
|
36
36
|
}> & {
|
|
37
37
|
_def: z.ZodObjectDef<{
|
|
38
38
|
status: z.ZodLiteral<"success">;
|
|
39
|
-
data:
|
|
39
|
+
data: IOSchema<any>;
|
|
40
40
|
}, "strip", z.ZodTypeAny> & import("./metadata").MetaDef<z.ZodObject<{
|
|
41
41
|
status: z.ZodLiteral<"success">;
|
|
42
|
-
data:
|
|
42
|
+
data: IOSchema<any>;
|
|
43
43
|
}, "strip", z.ZodTypeAny, {
|
|
44
|
-
status: "success";
|
|
45
44
|
data?: unknown;
|
|
46
|
-
}, {
|
|
47
45
|
status: "success";
|
|
46
|
+
}, {
|
|
48
47
|
data?: unknown;
|
|
48
|
+
status: "success";
|
|
49
49
|
}>>;
|
|
50
50
|
example: (example: {
|
|
51
|
-
status: "success";
|
|
52
51
|
data?: unknown;
|
|
52
|
+
status: "success";
|
|
53
53
|
}) => z.ZodObject<{
|
|
54
54
|
status: z.ZodLiteral<"success">;
|
|
55
|
-
data:
|
|
55
|
+
data: IOSchema<any>;
|
|
56
56
|
}, "strip", z.ZodTypeAny, {
|
|
57
|
-
status: "success";
|
|
58
57
|
data?: unknown;
|
|
59
|
-
}, {
|
|
60
58
|
status: "success";
|
|
59
|
+
}, {
|
|
61
60
|
data?: unknown;
|
|
61
|
+
status: "success";
|
|
62
62
|
}> & any;
|
|
63
63
|
}>, ApiResponse<z.ZodObject<{
|
|
64
64
|
status: z.ZodLiteral<"error">;
|
package/dist/result-handler.js
CHANGED
|
@@ -12,7 +12,7 @@ exports.defaultResultHandler = (0, exports.createResultHandler)({
|
|
|
12
12
|
const examples = (0, metadata_1.getMeta)(output, "examples") || [];
|
|
13
13
|
const responseSchema = (0, metadata_1.withMeta)(zod_1.z.object({
|
|
14
14
|
status: zod_1.z.literal("success"),
|
|
15
|
-
data:
|
|
15
|
+
data: output,
|
|
16
16
|
}));
|
|
17
17
|
for (const example of examples) {
|
|
18
18
|
// forwarding output examples to response schema
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-handler.js","sourceRoot":"","sources":["../src/result-handler.ts"],"names":[],"mappings":";;;AAEA,6BAAwB;AACxB,iDAAgE;AAEhE,
|
|
1
|
+
{"version":3,"file":"result-handler.js","sourceRoot":"","sources":["../src/result-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/startup-logo.js
CHANGED
|
@@ -17,7 +17,7 @@ const getStartupLogo = () => {
|
|
|
17
17
|
[95m8888888888 888 888 88888P" 888 "Y8888 88888P' 88888P' d8888888888 "Y88P" "Y88888 d88P 888 888 8888888[39m[94m[39m
|
|
18
18
|
[94m 888[39m
|
|
19
19
|
[94m 888[3m Proudly supports transgender community.[23m[39m
|
|
20
|
-
[94m[3mfor
|
|
20
|
+
[94m[3mfor Dmitry [23m 888[3m Start your API server with I/O schema validation and custom middlewares in minutes.[23m[39m[90m[39m
|
|
21
21
|
[90m[3m Thank you for choosing Express Zod API for your project.[23m[39m[0m[0m
|
|
22
22
|
[0m[0m
|
|
23
23
|
[0m[0m
|
|
@@ -4,7 +4,6 @@ import { loggerLevels, } from "./config-type.js";
|
|
|
4
4
|
import { copyMeta, getMeta } from "./metadata.js";
|
|
5
5
|
import { mimeMultipart } from "./mime.js";
|
|
6
6
|
import { ZodUpload } from "./upload-schema.js";
|
|
7
|
-
export const markOutput = (output) => output;
|
|
8
7
|
/** @see https://expressjs.com/en/guide/routing.html */
|
|
9
8
|
export const routePathParamsRegex = /:([A-Za-z0-9_]+)/g;
|
|
10
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"common-helpers.js","sourceRoot":"","sources":["../src/common-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist-esm/endpoint.js
CHANGED
|
@@ -6,7 +6,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
6
6
|
var _Endpoint_instances, _Endpoint_setupCorsHeaders, _Endpoint_parseOutput, _Endpoint_runMiddlewares, _Endpoint_parseAndRunHandler, _Endpoint_handleResult;
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { ResultHandlerError } from "./errors.js";
|
|
9
|
-
import { getInitialInput
|
|
9
|
+
import { getInitialInput } from "./common-helpers.js";
|
|
10
10
|
import { lastResortHandler } from "./result-handler.js";
|
|
11
11
|
export class AbstractEndpoint {
|
|
12
12
|
}
|
package/dist-esm/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/dist-esm/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export { createConfig } from "./config-type.js";
|
|
2
|
-
export { AbstractEndpoint
|
|
2
|
+
export { AbstractEndpoint } from "./endpoint.js";
|
|
3
3
|
export { EndpointsFactory, defaultEndpointsFactory } from "./endpoints-factory.js";
|
|
4
|
-
export { markOutput } from "./common-helpers.js";
|
|
5
4
|
export { createApiResponse } from "./api-response.js";
|
|
6
5
|
export { createLogger } from "./logger.js";
|
|
7
6
|
export { createMiddleware } from "./middleware.js";
|
package/dist-esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,eAAe,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC"}
|
package/dist-esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"module","version":"
|
|
1
|
+
{"type":"module","version":"7.0.0"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { createApiResponse } from "./api-response.js";
|
|
3
|
-
import { getMessageFromError, getStatusCodeFromError,
|
|
3
|
+
import { getMessageFromError, getStatusCodeFromError, } from "./common-helpers.js";
|
|
4
4
|
import { getMeta, withMeta } from "./metadata.js";
|
|
5
5
|
export const createResultHandler = (definition) => definition;
|
|
6
6
|
export const defaultResultHandler = createResultHandler({
|
|
@@ -8,7 +8,7 @@ export const defaultResultHandler = createResultHandler({
|
|
|
8
8
|
const examples = getMeta(output, "examples") || [];
|
|
9
9
|
const responseSchema = withMeta(z.object({
|
|
10
10
|
status: z.literal("success"),
|
|
11
|
-
data:
|
|
11
|
+
data: output,
|
|
12
12
|
}));
|
|
13
13
|
for (const example of examples) {
|
|
14
14
|
// forwarding output examples to response schema
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-handler.js","sourceRoot":"","sources":["../src/result-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"result-handler.js","sourceRoot":"","sources":["../src/result-handler.ts"],"names":[],"mappings":"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"}
|
package/dist-esm/startup-logo.js
CHANGED
|
@@ -14,7 +14,7 @@ export const getStartupLogo = () => {
|
|
|
14
14
|
[95m8888888888 888 888 88888P" 888 "Y8888 88888P' 88888P' d8888888888 "Y88P" "Y88888 d88P 888 888 8888888[39m[94m[39m
|
|
15
15
|
[94m 888[39m
|
|
16
16
|
[94m 888[3m Proudly supports transgender community.[23m[39m
|
|
17
|
-
[94m[3mfor
|
|
17
|
+
[94m[3mfor Dmitry [23m 888[3m Start your API server with I/O schema validation and custom middlewares in minutes.[23m[39m[90m[39m
|
|
18
18
|
[90m[3m Thank you for choosing Express Zod API for your project.[23m[39m[0m[0m
|
|
19
19
|
[0m[0m
|
|
20
20
|
[0m[0m
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "express-zod-api",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"description": "A Typescript library to help you get an API server up and running with I/O schema validation and custom middlewares in minutes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"scripts": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"ramda": "0.28.0",
|
|
50
50
|
"triple-beam": "1.3.0",
|
|
51
51
|
"winston": "3.7.2",
|
|
52
|
-
"zod": "3.
|
|
52
|
+
"zod": "3.16.0",
|
|
53
53
|
"zod-to-ts": "1.0.1"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|