@sap-ux/ui5-proxy-middleware 1.1.4 → 1.1.5

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.
@@ -28,6 +28,9 @@ exports.ui5Proxy = (config, options, filter) => {
28
28
  pathRewrite: { [config.path]: ui5Ver + config.path },
29
29
  onProxyRes: (proxyRes) => {
30
30
  utils_1.proxyResponseHandler(proxyRes, etag);
31
+ },
32
+ onError: (err, req, res, target) => {
33
+ utils_1.proxyErrorHandler(err, req, logger, res, target);
31
34
  }
32
35
  };
33
36
  Object.assign(proxyConfig, options);
@@ -1,8 +1,10 @@
1
+ /// <reference types="node" />
1
2
  import type { ClientRequest, IncomingMessage, ServerResponse } from 'http';
2
3
  import type { ToolsLogger } from '@sap-ux/logger';
3
4
  import type { Manifest } from '@sap-ux/ui5-config';
4
5
  import type { NextFunction, Request, Response } from 'express';
5
6
  import type { ProxyConfig } from './types';
7
+ import type { Url } from 'url';
6
8
  /**
7
9
  * Handler for the proxy response event.
8
10
  * Sets an Etag which will be used for re-validation of the cached UI5 sources.
@@ -121,4 +123,19 @@ export declare const injectScripts: (req: Request, res: Response, next: NextFunc
121
123
  * @returns True, indicating that the request should be proxied
122
124
  */
123
125
  export declare const filterCompressedHtmlFiles: (_pathname: string, req: IncomingMessage) => boolean;
126
+ /**
127
+ * Specifically handling errors due to undefined and empty errors.
128
+ *
129
+ * @param err the error thrown when proxying the request or processing the response
130
+ * @param req request causing the error
131
+ * @param logger logger instance
132
+ * @param _res (not used)
133
+ * @param _target (not used)
134
+ */
135
+ export declare function proxyErrorHandler(err: Error & {
136
+ code?: string;
137
+ }, req: IncomingMessage & {
138
+ next?: Function;
139
+ originalUrl?: string;
140
+ }, logger: ToolsLogger, _res?: ServerResponse, _target?: string | Partial<Url>): void;
124
141
  //# sourceMappingURL=utils.d.ts.map
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.filterCompressedHtmlFiles = exports.injectScripts = exports.injectUI5Url = exports.resolveUI5Version = exports.getUI5VersionFromManifest = exports.getManifest = exports.setHtmlResponse = exports.getWebAppFolderFromYaml = exports.getYamlFile = exports.getHtmlFile = exports.isHostExcludedFromProxy = exports.hideProxyCredentials = exports.getCorporateProxyServer = exports.proxyRequestHandler = exports.proxyResponseHandler = void 0;
12
+ exports.proxyErrorHandler = exports.filterCompressedHtmlFiles = exports.injectScripts = exports.injectUI5Url = exports.resolveUI5Version = exports.getUI5VersionFromManifest = exports.getManifest = exports.setHtmlResponse = exports.getWebAppFolderFromYaml = exports.getYamlFile = exports.getHtmlFile = exports.isHostExcludedFromProxy = exports.hideProxyCredentials = exports.getCorporateProxyServer = exports.proxyRequestHandler = exports.proxyResponseHandler = void 0;
13
13
  const ui5_config_1 = require("@sap-ux/ui5-config");
14
14
  const fs_1 = require("fs");
15
15
  const path_1 = require("path");
@@ -293,4 +293,28 @@ exports.filterCompressedHtmlFiles = (_pathname, req) => {
293
293
  }
294
294
  return true;
295
295
  };
296
+ /**
297
+ * Specifically handling errors due to undefined and empty errors.
298
+ *
299
+ * @param err the error thrown when proxying the request or processing the response
300
+ * @param req request causing the error
301
+ * @param logger logger instance
302
+ * @param _res (not used)
303
+ * @param _target (not used)
304
+ */
305
+ function proxyErrorHandler(err, req, logger, _res, _target) {
306
+ var _a;
307
+ if (err && ((_a = err.stack) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== 'error') {
308
+ if (typeof req.next === 'function') {
309
+ req.next(err);
310
+ }
311
+ else {
312
+ throw err;
313
+ }
314
+ }
315
+ else {
316
+ logger.debug(i18n_1.t('error.noCodeError', { error: JSON.stringify(err, null, 2), request: req.originalUrl }));
317
+ }
318
+ }
319
+ exports.proxyErrorHandler = proxyErrorHandler;
296
320
  //# sourceMappingURL=utils.js.map
@@ -1,5 +1,8 @@
1
1
  {
2
2
  "info": {
3
3
  "ui5VersionSource": "Using UI5 version {{version}} based on {{-source}}"
4
+ },
5
+ "error": {
6
+ "noCodeError": "Error {{-error}} thrown for request {{-request}}"
4
7
  }
5
8
  }
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "bugs": {
10
10
  "url": "https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Aui5-proxy-middleware"
11
11
  },
12
- "version": "1.1.4",
12
+ "version": "1.1.5",
13
13
  "license": "Apache-2.0",
14
14
  "author": "@SAP/ux-tools-team",
15
15
  "main": "dist/index.js",