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.
Files changed (47) hide show
  1. package/CHANGELOG.md +36 -5
  2. package/README.md +2 -2
  3. package/dist/client.js +17 -13
  4. package/dist/client.js.map +1 -1
  5. package/dist/extend-zod.d.ts +2 -2
  6. package/dist/extend-zod.js +3 -6
  7. package/dist/extend-zod.js.map +1 -1
  8. package/dist/open-api-helpers.d.ts +35 -33
  9. package/dist/open-api-helpers.js +109 -148
  10. package/dist/open-api-helpers.js.map +1 -1
  11. package/dist/open-api.js +3 -3
  12. package/dist/open-api.js.map +1 -1
  13. package/dist/routing-walker.d.ts +12 -0
  14. package/dist/routing-walker.js +55 -0
  15. package/dist/routing-walker.js.map +1 -0
  16. package/dist/routing.d.ts +1 -10
  17. package/dist/routing.js +5 -55
  18. package/dist/routing.js.map +1 -1
  19. package/dist/schema-walker.d.ts +23 -0
  20. package/dist/schema-walker.js +26 -0
  21. package/dist/schema-walker.js.map +1 -0
  22. package/dist/zts-helpers.d.ts +37 -0
  23. package/dist/zts-helpers.js +60 -0
  24. package/dist/zts-helpers.js.map +1 -0
  25. package/dist/zts.d.ts +31 -0
  26. package/dist/zts.js +120 -0
  27. package/dist/zts.js.map +1 -0
  28. package/dist-esm/client.js +16 -12
  29. package/dist-esm/client.js.map +1 -1
  30. package/dist-esm/extend-zod.js +2 -3
  31. package/dist-esm/extend-zod.js.map +1 -1
  32. package/dist-esm/open-api-helpers.js +106 -146
  33. package/dist-esm/open-api-helpers.js.map +1 -1
  34. package/dist-esm/open-api.js +3 -3
  35. package/dist-esm/open-api.js.map +1 -1
  36. package/dist-esm/package.json +1 -1
  37. package/dist-esm/routing-walker.js +51 -0
  38. package/dist-esm/routing-walker.js.map +1 -0
  39. package/dist-esm/routing.js +4 -53
  40. package/dist-esm/routing.js.map +1 -1
  41. package/dist-esm/schema-walker.js +22 -0
  42. package/dist-esm/schema-walker.js.map +1 -0
  43. package/dist-esm/zts-helpers.js +50 -0
  44. package/dist-esm/zts-helpers.js.map +1 -0
  45. package/dist-esm/zts.js +113 -0
  46. package/dist-esm/zts.js.map +1 -0
  47. 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
- ```regexp
50
- # before
51
- /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?)?Z?$/
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 — [forked zod-to-ts](https://github.com/RobinTail/zod-to-ts).
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 routing_1 = require("./routing");
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, routing_1.routingCycle)({
19
+ (0, routing_walker_1.walkRouting)({
19
20
  routing,
20
- endpointCb: (endpoint, path, method) => {
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, zod_to_ts_1.zodToTs)(endpoint.getInputSchema(), inputId, {
24
- resolveNativeEnums: true,
24
+ const input = (0, zts_1.zodToTs)({
25
+ schema: endpoint.getInputSchema(),
26
+ isResponse: false,
25
27
  });
26
- const response = (0, zod_to_ts_1.zodToTs)(endpoint
27
- .getPositiveResponseSchema()
28
- .or(endpoint.getNegativeResponseSchema()), responseId, { resolveNativeEnums: true });
29
- const inputAlias = (0, zod_to_ts_1.createTypeAlias)(input.node, inputId);
30
- const responseAlias = (0, zod_to_ts_1.createTypeAlias)(response.node, responseId);
31
- this.agg.push(...input.store.nativeEnums, ...response.store.nativeEnums);
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, zod_to_ts_1.printNode)(node, printerOptions)).join("\n\n");
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;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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.dateOut = exports.dateIn = exports.date = exports.upload = exports.file = void 0;
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
@@ -1 +1 @@
1
- {"version":3,"file":"extend-zod.js","sourceRoot":"","sources":["../src/extend-zod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAA8B;AAC9B,0DAAyD;AACzD,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;AAEvC;;;KAGK;AACQ,QAAA,IAAI,GAAG,aAAO,CAAC,MAAM,CAAC;AAC5B,MAAM,MAAM,GAAG,CAAC,GAAG,MAA2C,EAAE,EAAE,CACvE,IAAA,uBAAW,EAAC,0BAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAC9C,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAC9D,CAAC;AAHS,QAAA,MAAM,UAGf;AACG,MAAM,OAAO,GAAG,CAAC,GAAG,MAA4C,EAAE,EAAE,CACzE,IAAA,uBAAW,EAAC,4BAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAC/C,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAC9D,CAAC;AAHS,QAAA,OAAO,WAGhB"}
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
- type DepictHelper<T extends z.ZodType<any>> = (params: {
15
- schema: T;
16
- initial?: SchemaObject;
15
+ export interface OpenAPIContext {
17
16
  isResponse: boolean;
18
- }) => SchemaObject;
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: DepictHelper<z.ZodDefault<z.ZodTypeAny>>;
26
- export declare const depictCatch: DepictHelper<z.ZodCatch<z.ZodTypeAny>>;
27
- export declare const depictAny: DepictHelper<z.ZodAny>;
28
- export declare const depictUpload: DepictHelper<ZodUpload>;
29
- export declare const depictFile: DepictHelper<ZodFile>;
30
- export declare const depictUnion: DepictHelper<z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>>;
31
- export declare const depictDiscriminatedUnion: DepictHelper<z.ZodDiscriminatedUnion<string, z.ZodObject<any>[]>>;
32
- export declare const depictIntersection: DepictHelper<z.ZodIntersection<z.ZodTypeAny, z.ZodTypeAny>>;
33
- export declare const depictOptional: DepictHelper<z.ZodOptional<any>>;
34
- export declare const depictNullable: DepictHelper<z.ZodNullable<any>>;
35
- export declare const depictEnum: DepictHelper<z.ZodEnum<any> | z.ZodNativeEnum<any>>;
36
- export declare const depictLiteral: DepictHelper<z.ZodLiteral<any>>;
37
- export declare const depictObject: DepictHelper<z.AnyZodObject>;
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: DepictHelper<z.ZodNull>;
43
- export declare const depictDateIn: DepictHelper<ZodDateIn>;
44
- export declare const depictDateOut: DepictHelper<ZodDateOut>;
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: DepictHelper<z.ZodDate>;
47
- export declare const depictBoolean: DepictHelper<z.ZodBoolean>;
48
- export declare const depictBigInt: DepictHelper<z.ZodBigInt>;
49
- export declare const depictRecord: DepictHelper<z.ZodRecord<z.ZodTypeAny>>;
50
- export declare const depictArray: DepictHelper<z.ZodArray<z.ZodTypeAny>>;
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: DepictHelper<z.ZodTuple>;
53
- export declare const depictString: DepictHelper<z.ZodString>;
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: DepictHelper<z.ZodNumber>;
56
- export declare const depictObjectProperties: ({ schema: { shape }, isResponse, }: Parameters<DepictHelper<z.AnyZodObject>>[0]) => Record<string, SchemaObject>;
57
- export declare const depictEffect: DepictHelper<z.ZodEffects<z.ZodTypeAny>>;
58
- export declare const depictPipeline: DepictHelper<z.ZodPipeline<any, any>>;
59
- export declare const depictBranded: DepictHelper<z.ZodBranded<z.ZodTypeAny, any>>;
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 depictSchema: DepictHelper<z.ZodTypeAny>;
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 & {