express-zod-api 5.1.0 → 5.3.1

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 CHANGED
@@ -2,6 +2,40 @@
2
2
 
3
3
  ## Version 5
4
4
 
5
+ ### v5.3.1
6
+
7
+ - Fixed issue #269: async refinements in I/O schemas of endpoints and middlewares.
8
+ - There was an error `Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`
9
+
10
+ ### v5.3.0
11
+
12
+ - Supporting Node 17.
13
+
14
+ ### v5.2.1
15
+
16
+ - Fixing the compatibility with `@types/node@17.0.7`.
17
+ - Fixing the return type of `Endpoint::execute()` in case of `OPTIONS` method (it should be `void`).
18
+
19
+ ### v5.2.0
20
+
21
+ - Feature #254: the ability to configure routes for serving static files.
22
+ - Use `new ServeStatic()` with the same arguments as `express.static()`.
23
+ - You can find the documentation on these arguments here: http://expressjs.com/en/4x/api.html#express.static
24
+
25
+ ```typescript
26
+ import { Routing, ServeStatic } from "express-zod-api";
27
+ import path from "path";
28
+
29
+ const routing: Routing = {
30
+ // path /public serves static files from ./assets
31
+ public: new ServeStatic(path.join(__dirname, "assets"), {
32
+ dotfiles: "deny",
33
+ index: false,
34
+ redirect: false,
35
+ }),
36
+ };
37
+ ```
38
+
5
39
  ### v5.1.0
6
40
 
7
41
  - No changes.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Anna Bocharova
3
+ Copyright (c) 2022 Anna Bocharova
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -35,12 +35,13 @@ Start your API server with I/O schema validation and custom middlewares in minut
35
35
  7. [Non-object response](#non-object-response) including file downloads
36
36
  8. [File uploads](#file-uploads)
37
37
  9. [Customizing logger](#customizing-logger)
38
- 10. [Usage with your own express app](#usage-with-your-own-express-app)
38
+ 10. [Connect to your own express app](#connect-to-your-own-express-app)
39
39
  11. [Multiple schemas for one route](#multiple-schemas-for-one-route)
40
- 12. [Customizing input sources](#customizing-input-sources)
41
- 13. [Enabling HTTPS](#enabling-https)
42
- 14. [Informing the frontend about the API](#informing-the-frontend-about-the-api)
43
- 15. [Creating a documentation](#creating-a-documentation)
40
+ 12. [Serving static files](#serving-static-files)
41
+ 13. [Customizing input sources](#customizing-input-sources)
42
+ 14. [Enabling HTTPS](#enabling-https)
43
+ 15. [Informing the frontend about the API](#informing-the-frontend-about-the-api)
44
+ 16. [Creating a documentation](#creating-a-documentation)
44
45
  5. [Additional hints](#additional-hints)
45
46
  1. [How to test endpoints](#how-to-test-endpoints)
46
47
  2. [Excessive properties in endpoint output](#excessive-properties-in-endpoint-output)
@@ -505,7 +506,7 @@ const logger = winston.createLogger({
505
506
  const config = createConfig({ logger /* ..., */ });
506
507
  ```
507
508
 
508
- ## Usage with your own express app
509
+ ## Connect to your own express app
509
510
 
510
511
  If you already have your own configured express application, or you find the library settings not enough,
511
512
  you can connect your routing to the app instead of using `createServer()`.
@@ -554,6 +555,26 @@ const routing: Routing = {
554
555
  };
555
556
  ```
556
557
 
558
+ ## Serving static files
559
+
560
+ In case you want your server to serve static files, you can use `new ServeStatic()` in `Routing` using the arguments
561
+ similar to `express.static()`.
562
+ The documentation on these arguments you may find [here](http://expressjs.com/en/4x/api.html#express.static).
563
+
564
+ ```typescript
565
+ import { Routing, ServeStatic } from "express-zod-api";
566
+ import path from "path";
567
+
568
+ const routing: Routing = {
569
+ // path /public serves static files from ./assets
570
+ public: new ServeStatic(path.join(__dirname, "assets"), {
571
+ dotfiles: "deny",
572
+ index: false,
573
+ redirect: false,
574
+ }),
575
+ };
576
+ ```
577
+
557
578
  ## Customizing input sources
558
579
 
559
580
  You can customize the list of `request` properties that are combined into `input` that is being validated and available
@@ -0,0 +1,10 @@
1
+ import { Endpoint } from "./endpoint";
2
+ import { Method } from "./method";
3
+ export declare class DependsOnMethod {
4
+ readonly methods: {
5
+ [K in Method]?: Endpoint<any, any, any, any, K, any, any> | Endpoint<any, any, any, any, Method, any, any>;
6
+ };
7
+ constructor(methods: {
8
+ [K in Method]?: Endpoint<any, any, any, any, K, any, any> | Endpoint<any, any, any, any, Method, any, any>;
9
+ });
10
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DependsOnMethod = void 0;
4
+ const errors_1 = require("./errors");
5
+ class DependsOnMethod {
6
+ constructor(methods) {
7
+ this.methods = methods;
8
+ Object.keys(methods).forEach((key) => {
9
+ var _a, _b;
10
+ if (key in methods) {
11
+ const endpointMethods = ((_a = methods[key]) === null || _a === void 0 ? void 0 : _a.getMethods()) || [];
12
+ if (!endpointMethods.includes(key)) {
13
+ throw new errors_1.DependsOnMethodError(`The endpoint assigned to the '${key}' parameter must have at least this method in its specification.\n` +
14
+ "This error should prevent mistakes during the development process.\n" +
15
+ "Example:\n\n" +
16
+ `new ${this.constructor.name}({\n` +
17
+ ` ${key}: endpointsFactory.build({\n` +
18
+ ` methods: ['${key}', ` +
19
+ ((((_b = methods[key]) === null || _b === void 0 ? void 0 : _b.getMethods()) || [])
20
+ .map((m) => `'${m}'`)
21
+ .join(", ") || "...") +
22
+ "]\n" +
23
+ ` // or method: '${key}'\n` +
24
+ " ...\n" +
25
+ " })\n" +
26
+ "});\n");
27
+ }
28
+ }
29
+ });
30
+ }
31
+ }
32
+ exports.DependsOnMethod = DependsOnMethod;
33
+ //# sourceMappingURL=depends-on-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depends-on-method.js","sourceRoot":"","sources":["../src/depends-on-method.ts"],"names":[],"mappings":";;;AACA,qCAAgD;AAGhD,MAAa,eAAe;IAC1B,YACkB,OAIf;QAJe,YAAO,GAAP,OAAO,CAItB;QAEA,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;;YACjE,IAAI,GAAG,IAAI,OAAO,EAAE;gBAClB,MAAM,eAAe,GAAG,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClC,MAAM,IAAI,6BAAoB,CAC5B,iCAAiC,GAAG,oEAAoE;wBACtG,sEAAsE;wBACtE,cAAc;wBACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM;wBAClC,KAAK,GAAG,8BAA8B;wBACtC,kBAAkB,GAAG,KAAK;wBAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;6BAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;wBACvB,KAAK;wBACL,sBAAsB,GAAG,KAAK;wBAC9B,WAAW;wBACX,QAAQ;wBACR,OAAO,CACV,CAAC;iBACH;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhCD,0CAgCC"}
package/dist/endpoint.js CHANGED
@@ -69,7 +69,8 @@ class Endpoint extends AbstractEndpoint {
69
69
  __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_setupCorsHeaders).call(this, response);
70
70
  }
71
71
  if (request.method === "OPTIONS") {
72
- return response.end();
72
+ response.end();
73
+ return;
73
74
  }
74
75
  const initialInput = (0, common_helpers_1.getInitialInput)(request, config.inputSources);
75
76
  try {
@@ -82,7 +83,7 @@ class Endpoint extends AbstractEndpoint {
82
83
  if (isStreamClosed) {
83
84
  return;
84
85
  }
85
- output = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseOutput).call(this, await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseAndRunHandler).call(this, { input, options, logger }));
86
+ output = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseOutput).call(this, await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseAndRunHandler).call(this, { input, options, logger }));
86
87
  }
87
88
  catch (e) {
88
89
  if (e instanceof Error) {
@@ -108,9 +109,9 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
108
109
  response.set("Access-Control-Allow-Origin", "*");
109
110
  response.set("Access-Control-Allow-Methods", accessMethods);
110
111
  response.set("Access-Control-Allow-Headers", "content-type");
111
- }, _Endpoint_parseOutput = function _Endpoint_parseOutput(output) {
112
+ }, _Endpoint_parseOutput = async function _Endpoint_parseOutput(output) {
112
113
  try {
113
- return this.outputSchema.parse(output);
114
+ return await this.outputSchema.parseAsync(output);
114
115
  }
115
116
  catch (e) {
116
117
  if (e instanceof zod_1.z.ZodError) {
@@ -132,7 +133,7 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
132
133
  const options = {};
133
134
  let isStreamClosed = false;
134
135
  for (const def of this.middlewares) {
135
- input = { ...input, ...def.input.parse(input) }; // middleware can transform the input types
136
+ Object.assign(input, await def.input.parseAsync(input)); // middleware can transform the input types
136
137
  Object.assign(options, await def.middleware({
137
138
  input,
138
139
  options,
@@ -149,7 +150,7 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
149
150
  return { input, options, isStreamClosed };
150
151
  }, _Endpoint_parseAndRunHandler = async function _Endpoint_parseAndRunHandler({ input, options, logger, }) {
151
152
  return this.handler({
152
- input: this.inputSchema.parse(input),
153
+ input: await this.inputSchema.parseAsync(input),
153
154
  options,
154
155
  logger,
155
156
  });
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,7 +7,9 @@ export { createApiResponse } from "./api-response";
7
7
  export { createLogger } from "./logger";
8
8
  export { createMiddleware } from "./middleware";
9
9
  export { createResultHandler, defaultResultHandler } from "./result-handler";
10
- export { Routing, DependsOnMethod } from "./routing";
10
+ export { DependsOnMethod } from "./depends-on-method";
11
+ export { ServeStatic } from "./serve-static";
12
+ export { Routing } from "./routing";
11
13
  export { createServer, attachRouting } from "./server";
12
14
  export { OpenAPI } from "./open-api";
13
15
  export { OpenAPIError, DependsOnMethodError, RoutingError } from "./errors";
package/dist/index.js CHANGED
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.z = exports.createHttpError = exports.testEndpoint = exports.withMeta = exports.RoutingError = exports.DependsOnMethodError = exports.OpenAPIError = exports.OpenAPI = exports.attachRouting = exports.createServer = exports.DependsOnMethod = exports.defaultResultHandler = exports.createResultHandler = exports.createMiddleware = exports.createLogger = exports.createApiResponse = exports.markOutput = exports.defaultEndpointsFactory = exports.EndpointsFactory = exports.AbstractEndpoint = exports.createConfig = void 0;
25
+ exports.z = exports.createHttpError = 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.markOutput = exports.defaultEndpointsFactory = exports.EndpointsFactory = exports.AbstractEndpoint = exports.createConfig = void 0;
26
26
  var config_type_1 = require("./config-type");
27
27
  Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return config_type_1.createConfig; } });
28
28
  var endpoint_1 = require("./endpoint");
@@ -41,8 +41,10 @@ Object.defineProperty(exports, "createMiddleware", { enumerable: true, get: func
41
41
  var result_handler_1 = require("./result-handler");
42
42
  Object.defineProperty(exports, "createResultHandler", { enumerable: true, get: function () { return result_handler_1.createResultHandler; } });
43
43
  Object.defineProperty(exports, "defaultResultHandler", { enumerable: true, get: function () { return result_handler_1.defaultResultHandler; } });
44
- var routing_1 = require("./routing");
45
- Object.defineProperty(exports, "DependsOnMethod", { enumerable: true, get: function () { return routing_1.DependsOnMethod; } });
44
+ var depends_on_method_1 = require("./depends-on-method");
45
+ Object.defineProperty(exports, "DependsOnMethod", { enumerable: true, get: function () { return depends_on_method_1.DependsOnMethod; } });
46
+ var serve_static_1 = require("./serve-static");
47
+ Object.defineProperty(exports, "ServeStatic", { enumerable: true, get: function () { return serve_static_1.ServeStatic; } });
46
48
  var server_1 = require("./server");
47
49
  Object.defineProperty(exports, "createServer", { enumerable: true, get: function () { return server_1.createServer; } });
48
50
  Object.defineProperty(exports, "attachRouting", { enumerable: true, get: function () { return server_1.attachRouting; } });
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,uCAKoB;AAJlB,4GAAA,gBAAgB,OAAA;AAMlB,yDAAgF;AAAvE,qHAAA,gBAAgB,OAAA;AAAE,4HAAA,uBAAuB,OAAA;AAClD,mDAAoE;AAArC,4GAAA,UAAU,OAAA;AACzC,+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,qCAAqD;AAAnC,0GAAA,eAAe,OAAA;AACjC,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;AAErB,gDAAkC;AAGR,cAAC;AAF3B,8DAA0C;AAEjC,0BAFF,qBAAe,CAEE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2D;AAAlD,2GAAA,YAAY,OAAA;AACrB,uCAKoB;AAJlB,4GAAA,gBAAgB,OAAA;AAMlB,yDAAgF;AAAvE,qHAAA,gBAAgB,OAAA;AAAE,4HAAA,uBAAuB,OAAA;AAClD,mDAAoE;AAArC,4GAAA,UAAU,OAAA;AACzC,+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;AAErB,gDAAkC;AAGR,cAAC;AAF3B,8DAA0C;AAEjC,0BAFF,qBAAe,CAEE"}
package/dist/open-api.js CHANGED
@@ -9,7 +9,7 @@ class OpenAPI extends openapi3_ts_1.OpenApiBuilder {
9
9
  constructor({ routing, config, title, version, serverUrl, successfulResponseDescription = "Successful response", errorResponseDescription = "Error response", }) {
10
10
  super();
11
11
  this.addInfo({ title, version }).addServer({ url: serverUrl });
12
- const cb = (endpoint, path, _method) => {
12
+ const endpointCb = (endpoint, path, _method) => {
13
13
  var _a, _b;
14
14
  const method = _method;
15
15
  const commonParams = { path, method, endpoint };
@@ -47,7 +47,7 @@ class OpenAPI extends openapi3_ts_1.OpenApiBuilder {
47
47
  [method]: operation,
48
48
  });
49
49
  };
50
- (0, routing_1.routingCycle)({ routing, cb });
50
+ (0, routing_1.routingCycle)({ routing, endpointCb });
51
51
  }
52
52
  }
53
53
  exports.OpenAPI = OpenAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":";;;AAAA,6CAA8D;AAC9D,qDAAuD;AAGvD,yDAK4B;AAC5B,uCAAsE;AAYtE,MAAa,OAAQ,SAAQ,4BAAc;IACzC,YAAmB,EACjB,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,6BAA6B,GAAG,qBAAqB,EACrD,wBAAwB,GAAG,gBAAgB,GAC3B;QAChB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,MAAM,EAAE,GAA6B,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;;YAC/D,MAAM,MAAM,GAAG,OAAiB,CAAC;YACjC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAChD,MAAM,YAAY,GAChB,CAAA,MAAA,MAAM,CAAC,YAAY,0CAAG,MAAM,CAAC,KAAI,oCAAmB,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,IAAA,sCAAmB,EAAC;gBACzC,GAAG,YAAY;gBACf,YAAY;aACb,CAAC,CAAC;YACH,MAAM,SAAS,GAAoB;gBACjC,SAAS,EAAE;oBACT,KAAK,EAAE,IAAA,iCAAc,EAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,6BAA6B;wBAC1C,UAAU,EAAE,IAAI;qBACjB,CAAC;oBACF,KAAK,EAAE,IAAA,iCAAc,EAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,wBAAwB;wBACrC,UAAU,EAAE,KAAK;qBAClB,CAAC;iBACH;aACF,CAAC;YACF,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE;gBAC7B,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;aACnD;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,SAAS,CAAC,UAAU,GAAG,cAAc,CAAC;aACvC;YACD,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACjC,SAAS,CAAC,WAAW,GAAG,IAAA,gCAAa,EAAC,YAAY,CAAC,CAAC;aACrD;YACD,MAAM,qBAAqB,GAAG,IAAA,uCAAoB,EAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBAClC,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAG,qBAAqB,CAAC,KAAI,EAAE,CAAC;gBACtD,CAAC,MAAM,CAAC,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;CACF;AApDD,0BAoDC"}
1
+ {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":";;;AAAA,6CAA8D;AAC9D,qDAAuD;AAGvD,yDAK4B;AAC5B,uCAAsE;AAYtE,MAAa,OAAQ,SAAQ,4BAAc;IACzC,YAAmB,EACjB,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,6BAA6B,GAAG,qBAAqB,EACrD,wBAAwB,GAAG,gBAAgB,GAC3B;QAChB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAqC,CACnD,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,EAAE;;YACF,MAAM,MAAM,GAAG,OAAiB,CAAC;YACjC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAChD,MAAM,YAAY,GAChB,CAAA,MAAA,MAAM,CAAC,YAAY,0CAAG,MAAM,CAAC,KAAI,oCAAmB,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,IAAA,sCAAmB,EAAC;gBACzC,GAAG,YAAY;gBACf,YAAY;aACb,CAAC,CAAC;YACH,MAAM,SAAS,GAAoB;gBACjC,SAAS,EAAE;oBACT,KAAK,EAAE,IAAA,iCAAc,EAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,6BAA6B;wBAC1C,UAAU,EAAE,IAAI;qBACjB,CAAC;oBACF,KAAK,EAAE,IAAA,iCAAc,EAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,wBAAwB;wBACrC,UAAU,EAAE,KAAK;qBAClB,CAAC;iBACH;aACF,CAAC;YACF,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE;gBAC7B,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;aACnD;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,SAAS,CAAC,UAAU,GAAG,cAAc,CAAC;aACvC;YACD,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACjC,SAAS,CAAC,WAAW,GAAG,IAAA,gCAAa,EAAC,YAAY,CAAC,CAAC;aACrD;YACD,MAAM,qBAAqB,GAAG,IAAA,uCAAoB,EAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBAClC,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAG,qBAAqB,CAAC,KAAI,EAAE,CAAC;gBACtD,CAAC,MAAM,CAAC,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACxC,CAAC;CACF;AAxDD,0BAwDC"}
package/dist/routing.d.ts CHANGED
@@ -1,26 +1,21 @@
1
1
  import { Express } from "express";
2
2
  import { Logger } from "winston";
3
3
  import { CommonConfig } from "./config-type";
4
- import { AbstractEndpoint, Endpoint } from "./endpoint";
4
+ import { DependsOnMethod } from "./depends-on-method";
5
+ import { AbstractEndpoint } from "./endpoint";
5
6
  import { AuxMethod, Method } from "./method";
6
- export declare class DependsOnMethod {
7
- readonly methods: {
8
- [K in Method]?: Endpoint<any, any, any, any, K, any, any> | Endpoint<any, any, any, any, Method, any, any>;
9
- };
10
- constructor(methods: {
11
- [K in Method]?: Endpoint<any, any, any, any, K, any, any> | Endpoint<any, any, any, any, Method, any, any>;
12
- });
13
- }
7
+ import { ServeStatic, StaticHandler } from "./serve-static";
14
8
  export interface Routing {
15
- [SEGMENT: string]: Routing | DependsOnMethod | AbstractEndpoint;
9
+ [SEGMENT: string]: Routing | DependsOnMethod | AbstractEndpoint | ServeStatic;
16
10
  }
17
11
  export interface RoutingCycleParams {
18
12
  routing: Routing;
19
- cb: (endpoint: AbstractEndpoint, path: string, method: Method | AuxMethod) => void;
13
+ endpointCb: (endpoint: AbstractEndpoint, path: string, method: Method | AuxMethod) => void;
14
+ staticCb?: (path: string, handler: StaticHandler) => void;
20
15
  parentPath?: string;
21
16
  cors?: boolean;
22
17
  }
23
- export declare const routingCycle: ({ routing, cb, parentPath, cors, }: RoutingCycleParams) => void;
18
+ export declare const routingCycle: ({ routing, endpointCb, staticCb, parentPath, cors, }: RoutingCycleParams) => void;
24
19
  export declare const initRouting: ({ app, logger, config, routing, }: {
25
20
  app: Express;
26
21
  logger: Logger;
package/dist/routing.js CHANGED
@@ -1,38 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initRouting = exports.routingCycle = exports.DependsOnMethod = void 0;
3
+ exports.initRouting = exports.routingCycle = void 0;
4
+ const express_1 = require("express");
5
+ const depends_on_method_1 = require("./depends-on-method");
4
6
  const endpoint_1 = require("./endpoint");
5
7
  const errors_1 = require("./errors");
8
+ const serve_static_1 = require("./serve-static");
6
9
  const startup_logo_1 = require("./startup-logo");
7
- class DependsOnMethod {
8
- constructor(methods) {
9
- this.methods = methods;
10
- Object.keys(methods).forEach((key) => {
11
- var _a, _b;
12
- if (key in methods) {
13
- const endpointMethods = ((_a = methods[key]) === null || _a === void 0 ? void 0 : _a.getMethods()) || [];
14
- if (!endpointMethods.includes(key)) {
15
- throw new errors_1.DependsOnMethodError(`The endpoint assigned to the '${key}' parameter must have at least this method in its specification.\n` +
16
- "This error should prevent mistakes during the development process.\n" +
17
- "Example:\n\n" +
18
- `new ${this.constructor.name}({\n` +
19
- ` ${key}: endpointsFactory.build({\n` +
20
- ` methods: ['${key}', ` +
21
- ((((_b = methods[key]) === null || _b === void 0 ? void 0 : _b.getMethods()) || [])
22
- .map((m) => `'${m}'`)
23
- .join(", ") || "...") +
24
- "]\n" +
25
- ` // or method: '${key}'\n` +
26
- " ...\n" +
27
- " })\n" +
28
- "});\n");
29
- }
30
- }
31
- });
32
- }
33
- }
34
- exports.DependsOnMethod = DependsOnMethod;
35
- const routingCycle = ({ routing, cb, parentPath, cors, }) => {
10
+ const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors, }) => {
36
11
  Object.entries(routing).forEach(([segment, element]) => {
37
12
  segment = segment.trim();
38
13
  if (segment.match(/\//)) {
@@ -48,22 +23,28 @@ const routingCycle = ({ routing, cb, parentPath, cors, }) => {
48
23
  methods.push("options");
49
24
  }
50
25
  methods.forEach((method) => {
51
- cb(element, path, method);
26
+ endpointCb(element, path, method);
52
27
  });
53
28
  }
54
- else if (element instanceof DependsOnMethod) {
29
+ else if (element instanceof serve_static_1.ServeStatic) {
30
+ if (staticCb) {
31
+ staticCb(path, (0, express_1.static)(...element.params));
32
+ }
33
+ }
34
+ else if (element instanceof depends_on_method_1.DependsOnMethod) {
55
35
  Object.entries(element.methods).forEach(([method, endpoint]) => {
56
- cb(endpoint, path, method);
36
+ endpointCb(endpoint, path, method);
57
37
  });
58
38
  if (cors && Object.keys(element.methods).length > 0) {
59
39
  const firstEndpoint = Object.values(element.methods)[0];
60
- cb(firstEndpoint, path, "options");
40
+ endpointCb(firstEndpoint, path, "options");
61
41
  }
62
42
  }
63
43
  else {
64
44
  (0, exports.routingCycle)({
65
45
  routing: element,
66
- cb,
46
+ endpointCb,
47
+ staticCb,
67
48
  cors,
68
49
  parentPath: path,
69
50
  });
@@ -78,12 +59,15 @@ const initRouting = ({ app, logger, config, routing, }) => {
78
59
  (0, exports.routingCycle)({
79
60
  routing,
80
61
  cors: config.cors,
81
- cb: (endpoint, path, method) => {
62
+ endpointCb: (endpoint, path, method) => {
82
63
  app[method](path, async (request, response) => {
83
64
  logger.info(`${request.method}: ${path}`);
84
65
  await endpoint.execute({ request, response, logger, config });
85
66
  });
86
67
  },
68
+ staticCb: (path, handler) => {
69
+ app.use(path, handler);
70
+ },
87
71
  });
88
72
  };
89
73
  exports.initRouting = initRouting;
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { static as _serveStatic } from "express";
2
+ declare type OriginalStatic = typeof _serveStatic;
3
+ export declare type StaticHandler = ReturnType<OriginalStatic>;
4
+ export declare class ServeStatic {
5
+ params: Parameters<OriginalStatic>;
6
+ constructor(...params: Parameters<OriginalStatic>);
7
+ }
8
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServeStatic = void 0;
4
+ class ServeStatic {
5
+ constructor(...params) {
6
+ this.params = params;
7
+ }
8
+ }
9
+ exports.ServeStatic = ServeStatic;
10
+ //# sourceMappingURL=serve-static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-static.js","sourceRoot":"","sources":["../src/serve-static.ts"],"names":[],"mappings":";;;AAKA,MAAa,WAAW;IAGtB,YAAY,GAAG,MAAkC;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAND,kCAMC"}
@@ -0,0 +1,29 @@
1
+ import { DependsOnMethodError } from "./errors.js";
2
+ export class DependsOnMethod {
3
+ constructor(methods) {
4
+ this.methods = methods;
5
+ Object.keys(methods).forEach((key) => {
6
+ var _a, _b;
7
+ if (key in methods) {
8
+ const endpointMethods = ((_a = methods[key]) === null || _a === void 0 ? void 0 : _a.getMethods()) || [];
9
+ if (!endpointMethods.includes(key)) {
10
+ throw new DependsOnMethodError(`The endpoint assigned to the '${key}' parameter must have at least this method in its specification.\n` +
11
+ "This error should prevent mistakes during the development process.\n" +
12
+ "Example:\n\n" +
13
+ `new ${this.constructor.name}({\n` +
14
+ ` ${key}: endpointsFactory.build({\n` +
15
+ ` methods: ['${key}', ` +
16
+ ((((_b = methods[key]) === null || _b === void 0 ? void 0 : _b.getMethods()) || [])
17
+ .map((m) => `'${m}'`)
18
+ .join(", ") || "...") +
19
+ "]\n" +
20
+ ` // or method: '${key}'\n` +
21
+ " ...\n" +
22
+ " })\n" +
23
+ "});\n");
24
+ }
25
+ }
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=depends-on-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depends-on-method.js","sourceRoot":"","sources":["../src/depends-on-method.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhD,MAAM,OAAO,eAAe;IAC1B,YACkB,OAIf;QAJe,YAAO,GAAP,OAAO,CAItB;QAEA,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;;YACjE,IAAI,GAAG,IAAI,OAAO,EAAE;gBAClB,MAAM,eAAe,GAAG,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClC,MAAM,IAAI,oBAAoB,CAC5B,iCAAiC,GAAG,oEAAoE;wBACtG,sEAAsE;wBACtE,cAAc;wBACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM;wBAClC,KAAK,GAAG,8BAA8B;wBACtC,kBAAkB,GAAG,KAAK;wBAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;6BAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;wBACvB,KAAK;wBACL,sBAAsB,GAAG,KAAK;wBAC9B,WAAW;wBACX,QAAQ;wBACR,OAAO,CACV,CAAC;iBACH;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -65,7 +65,8 @@ export class Endpoint extends AbstractEndpoint {
65
65
  __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_setupCorsHeaders).call(this, response);
66
66
  }
67
67
  if (request.method === "OPTIONS") {
68
- return response.end();
68
+ response.end();
69
+ return;
69
70
  }
70
71
  const initialInput = getInitialInput(request, config.inputSources);
71
72
  try {
@@ -78,7 +79,7 @@ export class Endpoint extends AbstractEndpoint {
78
79
  if (isStreamClosed) {
79
80
  return;
80
81
  }
81
- output = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseOutput).call(this, await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseAndRunHandler).call(this, { input, options, logger }));
82
+ output = await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseOutput).call(this, await __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseAndRunHandler).call(this, { input, options, logger }));
82
83
  }
83
84
  catch (e) {
84
85
  if (e instanceof Error) {
@@ -103,9 +104,9 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
103
104
  response.set("Access-Control-Allow-Origin", "*");
104
105
  response.set("Access-Control-Allow-Methods", accessMethods);
105
106
  response.set("Access-Control-Allow-Headers", "content-type");
106
- }, _Endpoint_parseOutput = function _Endpoint_parseOutput(output) {
107
+ }, _Endpoint_parseOutput = async function _Endpoint_parseOutput(output) {
107
108
  try {
108
- return this.outputSchema.parse(output);
109
+ return await this.outputSchema.parseAsync(output);
109
110
  }
110
111
  catch (e) {
111
112
  if (e instanceof z.ZodError) {
@@ -127,7 +128,7 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
127
128
  const options = {};
128
129
  let isStreamClosed = false;
129
130
  for (const def of this.middlewares) {
130
- input = { ...input, ...def.input.parse(input) }; // middleware can transform the input types
131
+ Object.assign(input, await def.input.parseAsync(input)); // middleware can transform the input types
131
132
  Object.assign(options, await def.middleware({
132
133
  input,
133
134
  options,
@@ -144,7 +145,7 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
144
145
  return { input, options, isStreamClosed };
145
146
  }, _Endpoint_parseAndRunHandler = async function _Endpoint_parseAndRunHandler({ input, options, logger, }) {
146
147
  return this.handler({
147
- input: this.inputSchema.parse(input),
148
+ input: await this.inputSchema.parseAsync(input),
148
149
  options,
149
150
  logger,
150
151
  });
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
package/dist-esm/index.js CHANGED
@@ -6,7 +6,8 @@ export { createApiResponse } from "./api-response.js";
6
6
  export { createLogger } from "./logger.js";
7
7
  export { createMiddleware } from "./middleware.js";
8
8
  export { createResultHandler, defaultResultHandler } from "./result-handler.js";
9
- export { DependsOnMethod } from "./routing.js";
9
+ export { DependsOnMethod } from "./depends-on-method.js";
10
+ export { ServeStatic } from "./serve-static.js";
10
11
  export { createServer, attachRouting } from "./server.js";
11
12
  export { OpenAPI } from "./open-api.js";
12
13
  export { OpenAPIError, DependsOnMethodError, RoutingError } from "./errors.js";
@@ -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,EACL,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAwB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,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,EAAW,eAAe,EAAE,MAAM,WAAW,CAAC;AACrD,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;AAEtC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,eAAe,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAwB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,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;AAEtC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,eAAe,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC"}
@@ -6,7 +6,7 @@ export class OpenAPI extends OpenApiBuilder {
6
6
  constructor({ routing, config, title, version, serverUrl, successfulResponseDescription = "Successful response", errorResponseDescription = "Error response", }) {
7
7
  super();
8
8
  this.addInfo({ title, version }).addServer({ url: serverUrl });
9
- const cb = (endpoint, path, _method) => {
9
+ const endpointCb = (endpoint, path, _method) => {
10
10
  var _a, _b;
11
11
  const method = _method;
12
12
  const commonParams = { path, method, endpoint };
@@ -44,7 +44,7 @@ export class OpenAPI extends OpenApiBuilder {
44
44
  [method]: operation,
45
45
  });
46
46
  };
47
- routingCycle({ routing, cb });
47
+ routingCycle({ routing, endpointCb });
48
48
  }
49
49
  }
50
50
  //# sourceMappingURL=open-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,YAAY,EAAsB,MAAM,WAAW,CAAC;AAYtE,MAAM,OAAO,OAAQ,SAAQ,cAAc;IACzC,YAAmB,EACjB,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,6BAA6B,GAAG,qBAAqB,EACrD,wBAAwB,GAAG,gBAAgB,GAC3B;QAChB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,MAAM,EAAE,GAA6B,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;;YAC/D,MAAM,MAAM,GAAG,OAAiB,CAAC;YACjC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAChD,MAAM,YAAY,GAChB,CAAA,MAAA,MAAM,CAAC,YAAY,0CAAG,MAAM,CAAC,KAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,mBAAmB,CAAC;gBACzC,GAAG,YAAY;gBACf,YAAY;aACb,CAAC,CAAC;YACH,MAAM,SAAS,GAAoB;gBACjC,SAAS,EAAE;oBACT,KAAK,EAAE,cAAc,CAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,6BAA6B;wBAC1C,UAAU,EAAE,IAAI;qBACjB,CAAC;oBACF,KAAK,EAAE,cAAc,CAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,wBAAwB;wBACrC,UAAU,EAAE,KAAK;qBAClB,CAAC;iBACH;aACF,CAAC;YACF,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE;gBAC7B,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;aACnD;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,SAAS,CAAC,UAAU,GAAG,cAAc,CAAC;aACvC;YACD,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACjC,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;aACrD;YACD,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBAClC,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAG,qBAAqB,CAAC,KAAI,EAAE,CAAC;gBACtD,CAAC,MAAM,CAAC,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../src/open-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,YAAY,EAAsB,MAAM,WAAW,CAAC;AAYtE,MAAM,OAAO,OAAQ,SAAQ,cAAc;IACzC,YAAmB,EACjB,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,6BAA6B,GAAG,qBAAqB,EACrD,wBAAwB,GAAG,gBAAgB,GAC3B;QAChB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAqC,CACnD,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,EAAE;;YACF,MAAM,MAAM,GAAG,OAAiB,CAAC;YACjC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAChD,MAAM,YAAY,GAChB,CAAA,MAAA,MAAM,CAAC,YAAY,0CAAG,MAAM,CAAC,KAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,mBAAmB,CAAC;gBACzC,GAAG,YAAY;gBACf,YAAY;aACb,CAAC,CAAC;YACH,MAAM,SAAS,GAAoB;gBACjC,SAAS,EAAE;oBACT,KAAK,EAAE,cAAc,CAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,6BAA6B;wBAC1C,UAAU,EAAE,IAAI;qBACjB,CAAC;oBACF,KAAK,EAAE,cAAc,CAAC;wBACpB,GAAG,YAAY;wBACf,WAAW,EAAE,wBAAwB;wBACrC,UAAU,EAAE,KAAK;qBAClB,CAAC;iBACH;aACF,CAAC;YACF,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE;gBAC7B,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;aACnD;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,SAAS,CAAC,UAAU,GAAG,cAAc,CAAC;aACvC;YACD,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACjC,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;aACrD;YACD,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBAClC,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAG,qBAAqB,CAAC,KAAI,EAAE,CAAC;gBACtD,CAAC,MAAM,CAAC,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"type":"module","version":"5.1.0"}
1
+ {"type":"module","version":"5.3.1"}
@@ -1,34 +1,10 @@
1
+ import { static as _serveStatic } from "express";
2
+ import { DependsOnMethod } from "./depends-on-method.js";
1
3
  import { AbstractEndpoint } from "./endpoint.js";
2
- import { DependsOnMethodError, RoutingError } from "./errors.js";
4
+ import { RoutingError } from "./errors.js";
5
+ import { ServeStatic } from "./serve-static.js";
3
6
  import { getStartupLogo } from "./startup-logo.js";
4
- export class DependsOnMethod {
5
- constructor(methods) {
6
- this.methods = methods;
7
- Object.keys(methods).forEach((key) => {
8
- var _a, _b;
9
- if (key in methods) {
10
- const endpointMethods = ((_a = methods[key]) === null || _a === void 0 ? void 0 : _a.getMethods()) || [];
11
- if (!endpointMethods.includes(key)) {
12
- throw new DependsOnMethodError(`The endpoint assigned to the '${key}' parameter must have at least this method in its specification.\n` +
13
- "This error should prevent mistakes during the development process.\n" +
14
- "Example:\n\n" +
15
- `new ${this.constructor.name}({\n` +
16
- ` ${key}: endpointsFactory.build({\n` +
17
- ` methods: ['${key}', ` +
18
- ((((_b = methods[key]) === null || _b === void 0 ? void 0 : _b.getMethods()) || [])
19
- .map((m) => `'${m}'`)
20
- .join(", ") || "...") +
21
- "]\n" +
22
- ` // or method: '${key}'\n` +
23
- " ...\n" +
24
- " })\n" +
25
- "});\n");
26
- }
27
- }
28
- });
29
- }
30
- }
31
- export const routingCycle = ({ routing, cb, parentPath, cors, }) => {
7
+ export const routingCycle = ({ routing, endpointCb, staticCb, parentPath, cors, }) => {
32
8
  Object.entries(routing).forEach(([segment, element]) => {
33
9
  segment = segment.trim();
34
10
  if (segment.match(/\//)) {
@@ -44,22 +20,28 @@ export const routingCycle = ({ routing, cb, parentPath, cors, }) => {
44
20
  methods.push("options");
45
21
  }
46
22
  methods.forEach((method) => {
47
- cb(element, path, method);
23
+ endpointCb(element, path, method);
48
24
  });
49
25
  }
26
+ else if (element instanceof ServeStatic) {
27
+ if (staticCb) {
28
+ staticCb(path, _serveStatic(...element.params));
29
+ }
30
+ }
50
31
  else if (element instanceof DependsOnMethod) {
51
32
  Object.entries(element.methods).forEach(([method, endpoint]) => {
52
- cb(endpoint, path, method);
33
+ endpointCb(endpoint, path, method);
53
34
  });
54
35
  if (cors && Object.keys(element.methods).length > 0) {
55
36
  const firstEndpoint = Object.values(element.methods)[0];
56
- cb(firstEndpoint, path, "options");
37
+ endpointCb(firstEndpoint, path, "options");
57
38
  }
58
39
  }
59
40
  else {
60
41
  routingCycle({
61
42
  routing: element,
62
- cb,
43
+ endpointCb,
44
+ staticCb,
63
45
  cors,
64
46
  parentPath: path,
65
47
  });
@@ -73,12 +55,15 @@ export const initRouting = ({ app, logger, config, routing, }) => {
73
55
  routingCycle({
74
56
  routing,
75
57
  cors: config.cors,
76
- cb: (endpoint, path, method) => {
58
+ endpointCb: (endpoint, path, method) => {
77
59
  app[method](path, async (request, response) => {
78
60
  logger.info(`${request.method}: ${path}`);
79
61
  await endpoint.execute({ request, response, logger, config });
80
62
  });
81
63
  },
64
+ staticCb: (path, handler) => {
65
+ app.use(path, handler);
66
+ },
82
67
  });
83
68
  };
84
69
  //# sourceMappingURL=routing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,OAAO,eAAe;IAC1B,YACkB,OAIf;QAJe,YAAO,GAAP,OAAO,CAItB;QAEA,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;;YACjE,IAAI,GAAG,IAAI,OAAO,EAAE;gBAClB,MAAM,eAAe,GAAG,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClC,MAAM,IAAI,oBAAoB,CAC5B,iCAAiC,GAAG,oEAAoE;wBACtG,sEAAsE;wBACtE,cAAc;wBACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM;wBAClC,KAAK,GAAG,8BAA8B;wBACtC,kBAAkB,GAAG,KAAK;wBAC1B,CAAC,CAAC,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,0CAAE,UAAU,EAAE,KAAI,EAAE,CAAC;6BAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;wBACvB,KAAK;wBACL,sBAAsB,GAAG,KAAK;wBAC9B,WAAW;wBACX,QAAQ;wBACR,OAAO,CACV,CAAC;iBACH;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAiBD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,OAAO,EACP,EAAE,EACF,UAAU,EACV,IAAI,GACe,EAAE,EAAE;IACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE;QACrD,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,YAAY,CACpB,sDAAsD;gBACpD,uBACE,UAAU;oBACR,CAAC,CAAC,IAAI,UAAU,uBAAuB,OAAO,GAAG;oBACjD,CAAC,CAAC,IAAI,OAAO,GACjB,SAAS,CACZ,CAAC;SACH;QACD,MAAM,IAAI,GAAG,GAAG,UAAU,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClE,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACvC,MAAM,OAAO,GAA2B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;YACrE,IAAI,IAAI,EAAE;gBACR,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACzB;YACD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,OAAO,YAAY,eAAe,EAAE;YAC7C,MAAM,CAAC,OAAO,CAAmB,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CACvD,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACrB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAgB,CAAC,CAAC;YACvC,CAAC,CACF,CAAC;YACF,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CACjC,OAAO,CAAC,OAAO,CAChB,CAAC,CAAC,CAAqB,CAAC;gBACzB,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;aACpC;SACF;aAAM;YACL,YAAY,CAAC;gBACX,OAAO,EAAE,OAAO;gBAChB,EAAE;gBACF,IAAI;gBACJ,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,MAAM,EACN,OAAO,GAMR,EAAE,EAAE;IACH,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;KAC/B;IACD,YAAY,CAAC;QACX,OAAO;QACP,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC1C,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export class ServeStatic {
2
+ constructor(...params) {
3
+ this.params = params;
4
+ }
5
+ }
6
+ //# sourceMappingURL=serve-static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-static.js","sourceRoot":"","sources":["../src/serve-static.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,WAAW;IAGtB,YAAY,GAAG,MAAkC;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-zod-api",
3
- "version": "5.1.0",
3
+ "version": "5.3.1",
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": {
@@ -88,7 +88,7 @@
88
88
  "winston-transport": "^4.4.0"
89
89
  },
90
90
  "engines": {
91
- "node": ">=12.0.0 <17.0.0"
91
+ "node": ">=12.0.0 <18.0.0"
92
92
  },
93
93
  "repository": {
94
94
  "type": "git",