express-zod-api 8.6.0 → 8.8.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 +36 -5
- package/README.md +2 -2
- package/dist/client.js +17 -13
- package/dist/client.js.map +1 -1
- package/dist/extend-zod.d.ts +2 -2
- package/dist/extend-zod.js +3 -6
- package/dist/extend-zod.js.map +1 -1
- package/dist/open-api-helpers.d.ts +35 -33
- package/dist/open-api-helpers.js +109 -148
- package/dist/open-api-helpers.js.map +1 -1
- package/dist/open-api.js +3 -3
- package/dist/open-api.js.map +1 -1
- package/dist/routing-walker.d.ts +12 -0
- package/dist/routing-walker.js +55 -0
- package/dist/routing-walker.js.map +1 -0
- package/dist/routing.d.ts +1 -10
- package/dist/routing.js +5 -55
- package/dist/routing.js.map +1 -1
- package/dist/schema-walker.d.ts +23 -0
- package/dist/schema-walker.js +26 -0
- package/dist/schema-walker.js.map +1 -0
- package/dist/zts-helpers.d.ts +37 -0
- package/dist/zts-helpers.js +60 -0
- package/dist/zts-helpers.js.map +1 -0
- package/dist/zts.d.ts +31 -0
- package/dist/zts.js +120 -0
- package/dist/zts.js.map +1 -0
- package/dist-esm/client.js +16 -12
- package/dist-esm/client.js.map +1 -1
- package/dist-esm/extend-zod.js +2 -3
- package/dist-esm/extend-zod.js.map +1 -1
- package/dist-esm/open-api-helpers.js +106 -146
- package/dist-esm/open-api-helpers.js.map +1 -1
- package/dist-esm/open-api.js +3 -3
- package/dist-esm/open-api.js.map +1 -1
- package/dist-esm/package.json +1 -1
- package/dist-esm/routing-walker.js +51 -0
- package/dist-esm/routing-walker.js.map +1 -0
- package/dist-esm/routing.js +4 -53
- package/dist-esm/routing.js.map +1 -1
- package/dist-esm/schema-walker.js +22 -0
- package/dist-esm/schema-walker.js.map +1 -0
- package/dist-esm/zts-helpers.js +50 -0
- package/dist-esm/zts-helpers.js.map +1 -0
- package/dist-esm/zts.js +113 -0
- package/dist-esm/zts.js.map +1 -0
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
## Version 8
|
|
4
4
|
|
|
5
|
+
### v8.8.0
|
|
6
|
+
|
|
7
|
+
- First step on generating better Typescript from your IO schemas.
|
|
8
|
+
- I rewrote and refactored the functionality of `zod-to-ts` within the library.
|
|
9
|
+
- Using the abstract schema walker I made in the previous release.
|
|
10
|
+
- In general, I'm aiming to achieve the consistency between OpenAPI and Client generators.
|
|
11
|
+
- So far only minor improvements were made according to the specific needs of the library.
|
|
12
|
+
- The following schemas are no longer supported by client generator, since they are not transmittable:
|
|
13
|
+
- `ZodUndefined`, `ZodMap`, `ZodSet`, `ZodPromise`, `ZodFunction`, `ZodLazy`, `ZodVoid`, `ZodNever`, `ZodDate`.
|
|
14
|
+
- From now on they are described as `any`.
|
|
15
|
+
- In opposite, the following schemas are now supported:
|
|
16
|
+
- `ZodNativeEnum` (similar to `ZodEnum`), `ZodCatch`, `ZodBranded`, `ZodPipeline`.
|
|
17
|
+
- Additionally, the representation of some schemas have been changed slightly:
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
interface Changes<T> {
|
|
21
|
+
ZodFile: {
|
|
22
|
+
before: any;
|
|
23
|
+
after: string;
|
|
24
|
+
};
|
|
25
|
+
ZodRecord: {
|
|
26
|
+
before: { [x: string]: T };
|
|
27
|
+
after: Record<string, T>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### v8.7.0
|
|
33
|
+
|
|
34
|
+
- No new features, no any fixes.
|
|
35
|
+
- However, the routing initialization and the schema documenting processes have been refactored.
|
|
36
|
+
- Some properties in the documentation may change their order, but the overall depiction should remain.
|
|
37
|
+
|
|
5
38
|
### v8.6.0
|
|
6
39
|
|
|
7
40
|
- `zod` version is 3.20.2.
|
|
@@ -46,11 +79,9 @@ output/anything: Number must be greater than 0
|
|
|
46
79
|
- The regular expression used for validating `z.dateIn()` made easier
|
|
47
80
|
by [@shroudedcode](https://github.com/shroudedcode).
|
|
48
81
|
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d
|
|
52
|
-
# after
|
|
53
|
-
/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$/
|
|
82
|
+
```typescript
|
|
83
|
+
const before = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?)?Z?$/;
|
|
84
|
+
const after = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$/;
|
|
54
85
|
```
|
|
55
86
|
|
|
56
87
|
### v8.4.2
|
package/README.md
CHANGED
|
@@ -81,7 +81,7 @@ Therefore, many basic tasks can be accomplished faster and easier, in particular
|
|
|
81
81
|
- Logger — [Winston](https://github.com/winstonjs/winston).
|
|
82
82
|
- Generators:
|
|
83
83
|
- Documentation — [OpenAPI 3.x](https://github.com/metadevpro/openapi3-ts) (Swagger Specification).
|
|
84
|
-
- Client side types — [
|
|
84
|
+
- Client side types — inspired by [zod-to-ts](https://github.com/sachinraja/zod-to-ts).
|
|
85
85
|
- File uploads — [Express-FileUpload](https://github.com/richardgirges/express-fileupload)
|
|
86
86
|
(based on [Busboy](https://github.com/mscdex/busboy)).
|
|
87
87
|
|
|
@@ -642,7 +642,7 @@ import express from "express";
|
|
|
642
642
|
import { createConfig, attachRouting } from "express-zod-api";
|
|
643
643
|
|
|
644
644
|
const app = express();
|
|
645
|
-
const config = createConfig({ app /*
|
|
645
|
+
const config = createConfig({ app /* cors, logger, ... */ });
|
|
646
646
|
const routing = {
|
|
647
647
|
/* ... */
|
|
648
648
|
};
|
package/dist/client.js
CHANGED
|
@@ -5,30 +5,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Client = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
-
const zod_to_ts_1 = require("@express-zod-api/zod-to-ts");
|
|
9
8
|
const client_helpers_1 = require("./client-helpers");
|
|
10
9
|
const method_1 = require("./method");
|
|
11
10
|
const mime_1 = require("./mime");
|
|
12
|
-
const
|
|
11
|
+
const routing_walker_1 = require("./routing-walker");
|
|
12
|
+
const zts_1 = require("./zts");
|
|
13
|
+
const zts_helpers_1 = require("./zts-helpers");
|
|
13
14
|
class Client {
|
|
14
15
|
constructor(routing) {
|
|
15
16
|
this.agg = [];
|
|
16
17
|
this.registry = {};
|
|
17
18
|
this.paths = [];
|
|
18
|
-
(0,
|
|
19
|
+
(0, routing_walker_1.walkRouting)({
|
|
19
20
|
routing,
|
|
20
|
-
|
|
21
|
+
onEndpoint: (endpoint, path, method) => {
|
|
21
22
|
const inputId = (0, client_helpers_1.cleanId)(path, method, "input");
|
|
22
23
|
const responseId = (0, client_helpers_1.cleanId)(path, method, "response");
|
|
23
|
-
const input = (0,
|
|
24
|
-
|
|
24
|
+
const input = (0, zts_1.zodToTs)({
|
|
25
|
+
schema: endpoint.getInputSchema(),
|
|
26
|
+
isResponse: false,
|
|
25
27
|
});
|
|
26
|
-
const response = (0,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
const response = (0, zts_1.zodToTs)({
|
|
29
|
+
isResponse: true,
|
|
30
|
+
schema: endpoint
|
|
31
|
+
.getPositiveResponseSchema()
|
|
32
|
+
.or(endpoint.getNegativeResponseSchema()),
|
|
33
|
+
});
|
|
34
|
+
const inputAlias = (0, zts_helpers_1.createTypeAlias)(input, inputId);
|
|
35
|
+
const responseAlias = (0, zts_helpers_1.createTypeAlias)(response, responseId);
|
|
32
36
|
this.agg.push(inputAlias);
|
|
33
37
|
this.agg.push(responseAlias);
|
|
34
38
|
if (method !== "options") {
|
|
@@ -108,7 +112,7 @@ class Client {
|
|
|
108
112
|
this.agg.push(pathNode, methodNode, methodPathNode, inputNode, responseNode, jsonEndpointsNode, providerNode, implementationNode, clientNode);
|
|
109
113
|
}
|
|
110
114
|
print(printerOptions) {
|
|
111
|
-
return this.agg.map((node) => (0,
|
|
115
|
+
return this.agg.map((node) => (0, zts_helpers_1.printNode)(node, printerOptions)).join("\n\n");
|
|
112
116
|
}
|
|
113
117
|
}
|
|
114
118
|
exports.Client = Client;
|
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/extend-zod.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ import { ZodUpload } from "./upload-schema";
|
|
|
6
6
|
export * from "zod";
|
|
7
7
|
export declare const file: () => ZodFile;
|
|
8
8
|
export declare const upload: () => ZodUpload;
|
|
9
|
+
export declare const dateIn: () => ZodDateIn;
|
|
10
|
+
export declare const dateOut: () => ZodDateOut;
|
|
9
11
|
/**
|
|
10
12
|
* @description z.date() represents the Date, it should not be used within IO schemas
|
|
11
13
|
* @deprecated Please use z.dateIn() or z.dateOut() within IO schemas
|
|
@@ -18,5 +20,3 @@ export declare const date: (params?: ({
|
|
|
18
20
|
} & {
|
|
19
21
|
coerce?: boolean | undefined;
|
|
20
22
|
}) | undefined) => ZodDate;
|
|
21
|
-
export declare const dateIn: () => ZodDateIn;
|
|
22
|
-
export declare const dateOut: () => ZodDateOut;
|
package/dist/extend-zod.js
CHANGED
|
@@ -14,9 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.date = exports.dateOut = exports.dateIn = exports.upload = exports.file = void 0;
|
|
18
18
|
const zod_1 = require("zod");
|
|
19
|
-
const zod_to_ts_1 = require("@express-zod-api/zod-to-ts");
|
|
20
19
|
const date_in_schema_1 = require("./date-in-schema");
|
|
21
20
|
const date_out_schema_1 = require("./date-out-schema");
|
|
22
21
|
const file_schema_1 = require("./file-schema");
|
|
@@ -24,13 +23,11 @@ const upload_schema_1 = require("./upload-schema");
|
|
|
24
23
|
__exportStar(require("zod"), exports);
|
|
25
24
|
exports.file = file_schema_1.ZodFile.create;
|
|
26
25
|
exports.upload = upload_schema_1.ZodUpload.create;
|
|
26
|
+
exports.dateIn = date_in_schema_1.ZodDateIn.create;
|
|
27
|
+
exports.dateOut = date_out_schema_1.ZodDateOut.create;
|
|
27
28
|
/**
|
|
28
29
|
* @description z.date() represents the Date, it should not be used within IO schemas
|
|
29
30
|
* @deprecated Please use z.dateIn() or z.dateOut() within IO schemas
|
|
30
31
|
* */
|
|
31
32
|
exports.date = zod_1.ZodDate.create;
|
|
32
|
-
const dateIn = (...params) => (0, zod_to_ts_1.withGetType)(date_in_schema_1.ZodDateIn.create(...params), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));
|
|
33
|
-
exports.dateIn = dateIn;
|
|
34
|
-
const dateOut = (...params) => (0, zod_to_ts_1.withGetType)(date_out_schema_1.ZodDateOut.create(...params), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));
|
|
35
|
-
exports.dateOut = dateOut;
|
|
36
33
|
//# sourceMappingURL=extend-zod.js.map
|
package/dist/extend-zod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-zod.js","sourceRoot":"","sources":["../src/extend-zod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"extend-zod.js","sourceRoot":"","sources":["../src/extend-zod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAA8B;AAC9B,qDAA6C;AAC7C,uDAA+C;AAC/C,+CAAwC;AACxC,mDAA4C;AAE5C,sCAAoB;AACP,QAAA,IAAI,GAAG,qBAAO,CAAC,MAAM,CAAC;AACtB,QAAA,MAAM,GAAG,yBAAS,CAAC,MAAM,CAAC;AAC1B,QAAA,MAAM,GAAG,0BAAS,CAAC,MAAM,CAAC;AAC1B,QAAA,OAAO,GAAG,4BAAU,CAAC,MAAM,CAAC;AAEzC;;;KAGK;AACQ,QAAA,IAAI,GAAG,aAAO,CAAC,MAAM,CAAC"}
|
|
@@ -8,55 +8,55 @@ import { ZodFile } from "./file-schema";
|
|
|
8
8
|
import { IOSchema } from "./io-schema";
|
|
9
9
|
import { LogicalContainer } from "./logical-container";
|
|
10
10
|
import { Method } from "./method";
|
|
11
|
+
import { HandlingRules, HandlingVariant, SchemaHandler } from "./schema-walker";
|
|
11
12
|
import { Security } from "./security";
|
|
12
13
|
import { ZodUpload } from "./upload-schema";
|
|
13
14
|
type MediaExamples = Pick<MediaTypeObject, "examples">;
|
|
14
|
-
|
|
15
|
-
schema: T;
|
|
16
|
-
initial?: SchemaObject;
|
|
15
|
+
export interface OpenAPIContext {
|
|
17
16
|
isResponse: boolean;
|
|
18
|
-
}
|
|
17
|
+
}
|
|
18
|
+
type Depicter<T extends z.ZodTypeAny, Variant extends HandlingVariant = "regular"> = SchemaHandler<T, SchemaObject, OpenAPIContext, Variant>;
|
|
19
19
|
interface ReqResDepictHelperCommonProps {
|
|
20
20
|
method: Method;
|
|
21
21
|
path: string;
|
|
22
22
|
endpoint: AbstractEndpoint;
|
|
23
23
|
}
|
|
24
24
|
export declare const reformatParamsInPath: (path: string) => string;
|
|
25
|
-
export declare const depictDefault:
|
|
26
|
-
export declare const depictCatch:
|
|
27
|
-
export declare const depictAny:
|
|
28
|
-
export declare const depictUpload:
|
|
29
|
-
export declare const depictFile:
|
|
30
|
-
export declare const depictUnion:
|
|
31
|
-
export declare const depictDiscriminatedUnion:
|
|
32
|
-
export declare const depictIntersection:
|
|
33
|
-
export declare const depictOptional:
|
|
34
|
-
export declare const depictNullable:
|
|
35
|
-
export declare const depictEnum:
|
|
36
|
-
export declare const depictLiteral:
|
|
37
|
-
export declare const depictObject:
|
|
25
|
+
export declare const depictDefault: Depicter<z.ZodDefault<z.ZodTypeAny>>;
|
|
26
|
+
export declare const depictCatch: Depicter<z.ZodCatch<z.ZodTypeAny>>;
|
|
27
|
+
export declare const depictAny: Depicter<z.ZodAny>;
|
|
28
|
+
export declare const depictUpload: Depicter<ZodUpload>;
|
|
29
|
+
export declare const depictFile: Depicter<ZodFile>;
|
|
30
|
+
export declare const depictUnion: Depicter<z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>>;
|
|
31
|
+
export declare const depictDiscriminatedUnion: Depicter<z.ZodDiscriminatedUnion<string, z.ZodObject<any>[]>>;
|
|
32
|
+
export declare const depictIntersection: Depicter<z.ZodIntersection<z.ZodTypeAny, z.ZodTypeAny>>;
|
|
33
|
+
export declare const depictOptional: Depicter<z.ZodOptional<any>>;
|
|
34
|
+
export declare const depictNullable: Depicter<z.ZodNullable<any>>;
|
|
35
|
+
export declare const depictEnum: Depicter<z.ZodEnum<any> | z.ZodNativeEnum<any>>;
|
|
36
|
+
export declare const depictLiteral: Depicter<z.ZodLiteral<any>>;
|
|
37
|
+
export declare const depictObject: Depicter<z.AnyZodObject>;
|
|
38
38
|
/**
|
|
39
39
|
* @see https://swagger.io/docs/specification/data-models/data-types/
|
|
40
40
|
* @todo use type:"null" for OpenAPI 3.1
|
|
41
41
|
* */
|
|
42
|
-
export declare const depictNull:
|
|
43
|
-
export declare const depictDateIn:
|
|
44
|
-
export declare const depictDateOut:
|
|
42
|
+
export declare const depictNull: Depicter<z.ZodNull>;
|
|
43
|
+
export declare const depictDateIn: Depicter<ZodDateIn>;
|
|
44
|
+
export declare const depictDateOut: Depicter<ZodDateOut>;
|
|
45
45
|
/** @throws OpenAPIError */
|
|
46
|
-
export declare const depictDate:
|
|
47
|
-
export declare const depictBoolean:
|
|
48
|
-
export declare const depictBigInt:
|
|
49
|
-
export declare const depictRecord:
|
|
50
|
-
export declare const depictArray:
|
|
46
|
+
export declare const depictDate: Depicter<z.ZodDate>;
|
|
47
|
+
export declare const depictBoolean: Depicter<z.ZodBoolean>;
|
|
48
|
+
export declare const depictBigInt: Depicter<z.ZodBigInt>;
|
|
49
|
+
export declare const depictRecord: Depicter<z.ZodRecord<z.ZodTypeAny>>;
|
|
50
|
+
export declare const depictArray: Depicter<z.ZodArray<z.ZodTypeAny>>;
|
|
51
51
|
/** @todo improve it when OpenAPI 3.1.0 will be released */
|
|
52
|
-
export declare const depictTuple:
|
|
53
|
-
export declare const depictString:
|
|
52
|
+
export declare const depictTuple: Depicter<z.ZodTuple>;
|
|
53
|
+
export declare const depictString: Depicter<z.ZodString>;
|
|
54
54
|
/** @todo support exclusive min/max as numbers in case of OpenAPI v3.1.x */
|
|
55
|
-
export declare const depictNumber:
|
|
56
|
-
export declare const depictObjectProperties: ({ schema: { shape },
|
|
57
|
-
export declare const depictEffect:
|
|
58
|
-
export declare const depictPipeline:
|
|
59
|
-
export declare const depictBranded:
|
|
55
|
+
export declare const depictNumber: Depicter<z.ZodNumber>;
|
|
56
|
+
export declare const depictObjectProperties: ({ schema: { shape }, next, }: Parameters<Depicter<z.AnyZodObject>>[0]) => Record<string, SchemaObject>;
|
|
57
|
+
export declare const depictEffect: Depicter<z.ZodEffects<z.ZodTypeAny>>;
|
|
58
|
+
export declare const depictPipeline: Depicter<z.ZodPipeline<any, any>>;
|
|
59
|
+
export declare const depictBranded: Depicter<z.ZodBranded<z.ZodTypeAny, any>>;
|
|
60
60
|
export declare const depictIOExamples: <T extends IOSchema<any>>(schema: T, isResponse: boolean, omitProps?: string[]) => MediaExamples;
|
|
61
61
|
export declare const depictIOParamExamples: <T extends IOSchema<any>>(schema: T, isResponse: boolean, param: string) => MediaExamples;
|
|
62
62
|
export declare function extractObjectSchema(subject: IOSchema): z.AnyZodObject | (z.AnyZodObject & {
|
|
@@ -72,12 +72,14 @@ export declare function extractObjectSchema(subject: IOSchema): z.AnyZodObject |
|
|
|
72
72
|
export declare const depictRequestParams: ({ path, method, endpoint, inputSources, }: ReqResDepictHelperCommonProps & {
|
|
73
73
|
inputSources: InputSources[Method];
|
|
74
74
|
}) => ParameterObject[];
|
|
75
|
+
export declare const depicters: HandlingRules<SchemaObject, OpenAPIContext>;
|
|
75
76
|
/**
|
|
76
77
|
* @desc isNullable() and isOptional() validate the schema's input
|
|
77
78
|
* @desc They always return true in case of coercion, which should be taken into account when depicting response
|
|
78
79
|
*/
|
|
79
80
|
export declare const hasCoercion: (schema: z.ZodType) => boolean;
|
|
80
|
-
export declare const
|
|
81
|
+
export declare const onEach: Depicter<z.ZodTypeAny, "last">;
|
|
82
|
+
export declare const onMissing: (schema: z.ZodTypeAny) => never;
|
|
81
83
|
export declare const excludeParamsFromDepiction: (depicted: SchemaObject, pathParams: string[]) => SchemaObject;
|
|
82
84
|
export declare const excludeExampleFromDepiction: (depicted: SchemaObject) => SchemaObject;
|
|
83
85
|
export declare const depictResponse: ({ method, path, description, endpoint, isPositive, }: ReqResDepictHelperCommonProps & {
|