express-zod-api 2.5.1 → 2.5.2

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,13 @@
2
2
 
3
3
  ## Version 2
4
4
 
5
+ ### v2.5.2
6
+
7
+ - Fixed a bug due to which the API did not respond in case of an error within the `ResultHandler`.
8
+ - In this case the `LastResortHandler` comes into play.
9
+ - It sets the status code to `500` and sends out plain text with an error message.
10
+ - It is not customizable yet, and it's meant to be kept very simple in case of JSON conversion errors.
11
+
5
12
  ### v2.5.1
6
13
 
7
14
  - Fixed a bug due to which the execution of the code could continue despite the possible closing of the response
package/README.md CHANGED
@@ -307,6 +307,9 @@ import {EndpointsFactory} from 'express-zod-api';
307
307
  const endpointsFactory = new EndpointsFactory(myResultHandler);
308
308
  ```
309
309
 
310
+ Please note: `ResultHandler` must handle any errors and not throw its own. Otherwise, the case will be passed to the
311
+ `LastResortHandler`, which will set the status code to `500` and send the error message as plain text.
312
+
310
313
  ## Non-object response
311
314
 
312
315
  `ResultHandler` also supports non-object response types, for example, sending an image file including its MIME type
package/dist/endpoint.js CHANGED
@@ -8,8 +8,10 @@ var _Endpoint_instances, _Endpoint_setupCorsHeaders, _Endpoint_parseOutput, _End
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.Endpoint = exports.AbstractEndpoint = void 0;
10
10
  const zod_1 = require("zod");
11
+ const errors_1 = require("./errors");
11
12
  const helpers_1 = require("./helpers");
12
13
  const mime_1 = require("./mime");
14
+ const result_handler_1 = require("./result-handler");
13
15
  class AbstractEndpoint {
14
16
  }
15
17
  exports.AbstractEndpoint = AbstractEndpoint;
@@ -151,9 +153,11 @@ _Endpoint_instances = new WeakSet(), _Endpoint_setupCorsHeaders = function _Endp
151
153
  }
152
154
  catch (e) {
153
155
  if (e instanceof Error) {
154
- logger.error(`Result handler failure: ${e.message}.`);
156
+ (0, result_handler_1.lastResortHandler)({
157
+ logger, response,
158
+ error: new errors_1.ResultHandlerError(e.message, error)
159
+ });
155
160
  }
156
- // throw e;
157
161
  }
158
162
  };
159
163
  //# sourceMappingURL=endpoint.js.map
@@ -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/errors.d.ts CHANGED
@@ -4,3 +4,9 @@ export declare class DependsOnMethodError extends RoutingError {
4
4
  }
5
5
  export declare class OpenAPIError extends Error {
6
6
  }
7
+ export declare class ResultHandlerError extends Error {
8
+ protected readonly originalError?: Error;
9
+ constructor(message: string, originalError?: Error | null);
10
+ hasOriginalError(): boolean;
11
+ getOriginalErrorMessage(): string | undefined;
12
+ }
package/dist/errors.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenAPIError = exports.DependsOnMethodError = exports.RoutingError = void 0;
3
+ exports.ResultHandlerError = exports.OpenAPIError = exports.DependsOnMethodError = exports.RoutingError = void 0;
4
4
  class RoutingError extends Error {
5
5
  }
6
6
  exports.RoutingError = RoutingError;
@@ -10,4 +10,17 @@ exports.DependsOnMethodError = DependsOnMethodError;
10
10
  class OpenAPIError extends Error {
11
11
  }
12
12
  exports.OpenAPIError = OpenAPIError;
13
+ class ResultHandlerError extends Error {
14
+ constructor(message, originalError) {
15
+ super(message);
16
+ this.originalError = originalError || undefined;
17
+ }
18
+ hasOriginalError() {
19
+ return this.originalError !== undefined;
20
+ }
21
+ getOriginalErrorMessage() {
22
+ return this.originalError ? this.originalError.message : undefined;
23
+ }
24
+ }
25
+ exports.ResultHandlerError = ResultHandlerError;
13
26
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;CACtC;AADD,oCACC;AAED,MAAa,oBAAqB,SAAQ,YAAY;CACrD;AADD,oDACC;AAED,MAAa,YAAa,SAAQ,KAAK;CACtC;AADD,oCACC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;CACtC;AADD,oCACC;AAED,MAAa,oBAAqB,SAAQ,YAAY;CACrD;AADD,oDACC;AAED,MAAa,YAAa,SAAQ,KAAK;CACtC;AADD,oCACC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAG3C,YAAY,OAAe,EAAE,aAA4B;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC;IAClD,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC;IAC1C,CAAC;IAEM,uBAAuB;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;CACF;AAfD,gDAeC"}
@@ -2,7 +2,13 @@ import { Request, Response } from 'express';
2
2
  import { Logger } from 'winston';
3
3
  import { z } from 'zod';
4
4
  import { ApiResponse } from './api-response';
5
+ import { ResultHandlerError } from './errors';
5
6
  import { IOSchema } from './helpers';
7
+ interface LastResortHandlerParams {
8
+ error: ResultHandlerError;
9
+ logger: Logger;
10
+ response: Response;
11
+ }
6
12
  interface ResultHandlerParams<RES> {
7
13
  error: Error | null;
8
14
  input: any;
@@ -55,4 +61,5 @@ export declare const defaultResultHandler: ResultHandlerDefinition<ApiResponse<z
55
61
  message: string;
56
62
  };
57
63
  }>>>;
64
+ export declare const lastResortHandler: ({ error, logger, response }: LastResortHandlerParams) => void;
58
65
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultResultHandler = exports.createResultHandler = void 0;
3
+ exports.lastResortHandler = exports.defaultResultHandler = exports.createResultHandler = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const api_response_1 = require("./api-response");
6
6
  const helpers_1 = require("./helpers");
@@ -38,4 +38,10 @@ exports.defaultResultHandler = (0, exports.createResultHandler)({
38
38
  });
39
39
  }
40
40
  });
41
+ const lastResortHandler = ({ error, logger, response }) => {
42
+ logger.error(`Result handler failure: ${error.message}.`);
43
+ response.status(500).end(`An error occurred while serving the result: ${error.message}.` +
44
+ (error.hasOriginalError() ? `\nOriginal error: ${error.getOriginalErrorMessage()}.` : ''));
45
+ };
46
+ exports.lastResortHandler = lastResortHandler;
41
47
  //# sourceMappingURL=result-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-handler.js","sourceRoot":"","sources":["../src/result-handler.ts"],"names":[],"mappings":";;;AAEA,6BAAsB;AACtB,iDAA8D;AAC9D,uCAKmB;AAmBZ,MAAM,mBAAmB,GAAG,CACjC,UAA6C,EAC7C,EAAE,CAAC,UAAU,CAAC;AAFH,QAAA,mBAAmB,uBAEhB;AAEH,QAAA,oBAAoB,GAAG,IAAA,2BAAmB,EAAC;IACtD,mBAAmB,EAAE,CAAuB,MAAW,EAAE,EAAE,CAAC,IAAA,gCAAiB,EAAC,OAAC,CAAC,MAAM,CAAC;QACrF,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,IAAI,EAAE,IAAA,oBAAU,EAAC,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,gCAAiB,EAAC,OAAC,CAAC,MAAM,CAAC;QACpD,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC1B,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;SACpB,CAAC;KACH,CAAC,CAAC;IACH,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAC,EAAE,EAAE;QAC7D,IAAI,CAAC,KAAK,EAAE;YACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACxB,MAAM,EAAE,SAAkB;gBAC1B,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,OAAO;SACR;QACD,MAAM,UAAU,GAAG,IAAA,gCAAsB,EAAC,KAAK,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,GAAG,EAAE;YACtB,MAAM,CAAC,KAAK,CACV,0BAA0B,KAAK,CAAC,KAAK,IAAI,EACzC;gBACE,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CACF,CAAC;SACH;QACD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE,OAAgB;YACxB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAA,6BAAmB,EAAC,KAAK,CAAC,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"result-handler.js","sourceRoot":"","sources":["../src/result-handler.ts"],"names":[],"mappings":";;;AAEA,6BAAsB;AACtB,iDAA8D;AAE9D,uCAKmB;AAyBZ,MAAM,mBAAmB,GAAG,CACjC,UAA6C,EAC7C,EAAE,CAAC,UAAU,CAAC;AAFH,QAAA,mBAAmB,uBAEhB;AAEH,QAAA,oBAAoB,GAAG,IAAA,2BAAmB,EAAC;IACtD,mBAAmB,EAAE,CAAuB,MAAW,EAAE,EAAE,CAAC,IAAA,gCAAiB,EAAC,OAAC,CAAC,MAAM,CAAC;QACrF,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,IAAI,EAAE,IAAA,oBAAU,EAAC,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAA,gCAAiB,EAAC,OAAC,CAAC,MAAM,CAAC;QACpD,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC1B,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;SACpB,CAAC;KACH,CAAC,CAAC;IACH,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAC,EAAE,EAAE;QAC7D,IAAI,CAAC,KAAK,EAAE;YACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACxB,MAAM,EAAE,SAAkB;gBAC1B,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,OAAO;SACR;QACD,MAAM,UAAU,GAAG,IAAA,gCAAsB,EAAC,KAAK,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,GAAG,EAAE;YACtB,MAAM,CAAC,KAAK,CACV,0BAA0B,KAAK,CAAC,KAAK,IAAI,EACzC;gBACE,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CACF,CAAC;SACH;QACD,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE,OAAgB;YACxB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAA,6BAAmB,EAAC,KAAK,CAAC,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEI,MAAM,iBAAiB,GAAG,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAA0B,EAAE,EAAE;IACtF,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CACtB,+CAA+C,KAAK,CAAC,OAAO,GAAG;QAC/D,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1F,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
package/dist/server.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  /// <reference types="node" />
2
+ import { ErrorRequestHandler, RequestHandler } from 'express';
2
3
  import { Server } from 'http';
4
+ import { Logger } from 'winston';
3
5
  import { AppConfig, CommonConfig, ServerConfig } from './config-type';
4
6
  import { Routing } from './routing';
7
+ export declare const createParserFailureHandler: (errorHandler: import("./result-handler").ResultHandlerDefinition<any, any>, logger: Logger) => ErrorRequestHandler;
8
+ export declare const createNotFoundHandler: (errorHandler: import("./result-handler").ResultHandlerDefinition<any, any>, logger: Logger) => RequestHandler;
5
9
  export declare function attachRouting(config: AppConfig & CommonConfig, routing: Routing): void;
6
10
  export declare function createServer(config: ServerConfig & CommonConfig, routing: Routing): Server;
package/dist/server.js CHANGED
@@ -1,16 +1,66 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
5
24
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createServer = exports.attachRouting = void 0;
7
- const express_1 = __importDefault(require("express"));
25
+ exports.createServer = exports.attachRouting = exports.createNotFoundHandler = exports.createParserFailureHandler = void 0;
26
+ const express_1 = __importStar(require("express"));
8
27
  const express_fileupload_1 = __importDefault(require("express-fileupload"));
28
+ const errors_1 = require("./errors");
9
29
  const helpers_1 = require("./helpers");
10
30
  const logger_1 = require("./logger");
11
31
  const result_handler_1 = require("./result-handler");
12
32
  const routing_1 = require("./routing");
13
33
  const http_errors_1 = __importDefault(require("http-errors"));
34
+ const createParserFailureHandler = (errorHandler, logger) => (error, request, response, next) => {
35
+ if (!error) {
36
+ return next();
37
+ }
38
+ errorHandler.handler({
39
+ error, request, response, logger,
40
+ input: request.body,
41
+ output: null
42
+ });
43
+ };
44
+ exports.createParserFailureHandler = createParserFailureHandler;
45
+ const createNotFoundHandler = (errorHandler, logger) => (request, response) => {
46
+ const error = (0, http_errors_1.default)(404, `Can not ${request.method} ${request.path}`);
47
+ try {
48
+ errorHandler.handler({
49
+ request, response, logger, error,
50
+ input: null,
51
+ output: null
52
+ });
53
+ }
54
+ catch (e) {
55
+ if (e instanceof Error) {
56
+ (0, result_handler_1.lastResortHandler)({
57
+ response, logger,
58
+ error: new errors_1.ResultHandlerError(e.message, error)
59
+ });
60
+ }
61
+ }
62
+ };
63
+ exports.createNotFoundHandler = createNotFoundHandler;
14
64
  function attachRouting(config, routing) {
15
65
  const logger = (0, helpers_1.isLoggerConfig)(config.logger) ? (0, logger_1.createLogger)(config.logger) : config.logger;
16
66
  return (0, routing_1.initRouting)({ app: config.app, routing, logger, config });
@@ -20,34 +70,16 @@ function createServer(config, routing) {
20
70
  const logger = (0, helpers_1.isLoggerConfig)(config.logger) ? (0, logger_1.createLogger)(config.logger) : config.logger;
21
71
  const app = (0, express_1.default)();
22
72
  const errorHandler = config.errorHandler || result_handler_1.defaultResultHandler;
23
- const jsonParser = config.server.jsonParser || express_1.default.json();
73
+ const jsonParser = config.server.jsonParser || (0, express_1.json)();
24
74
  const multipartParser = config.server.upload ? (0, express_fileupload_1.default)({
25
75
  ...(typeof config.server.upload === 'object' ? config.server.upload : {}),
26
76
  abortOnLimit: false,
27
77
  parseNested: true,
28
78
  }) : undefined;
29
- const parserFailureHandler = (error, request, response, next) => {
30
- if (!error) {
31
- return next();
32
- }
33
- errorHandler.handler({
34
- error, request, response, logger,
35
- input: request.body,
36
- output: null
37
- });
38
- };
39
- const lastResortHandler = (request, response) => {
40
- errorHandler.handler({
41
- request, response, logger,
42
- error: (0, http_errors_1.default)(404, `Can not ${request.method} ${request.path}`),
43
- input: null,
44
- output: null
45
- });
46
- };
47
79
  app.use([jsonParser].concat(multipartParser || []));
48
- app.use(parserFailureHandler);
80
+ app.use((0, exports.createParserFailureHandler)(errorHandler, logger));
49
81
  (0, routing_1.initRouting)({ app, routing, logger, config });
50
- app.use(lastResortHandler);
82
+ app.use((0, exports.createNotFoundHandler)(errorHandler, logger));
51
83
  return app.listen(config.server.listen, () => {
52
84
  logger.info(`Listening ${config.server.listen}`);
53
85
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-zod-api",
3
- "version": "2.5.1",
3
+ "version": "2.5.2",
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": {