UNPKG

2.03 kBJavaScriptView Raw
1"use strict";
2// Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved.
3// Node module: @loopback/rest
4// This file is licensed under the MIT License.
5// License text available at https://opensource.org/licenses/MIT
6Object.defineProperty(exports, "__esModule", { value: true });
7exports.RejectProvider = void 0;
8const tslib_1 = require("tslib");
9const core_1 = require("@loopback/core");
10const strong_error_handler_1 = require("strong-error-handler");
11const keys_1 = require("../keys");
12// TODO(bajtos) Make this mapping configurable at RestServer level,
13// allow apps and extensions to contribute additional mappings.
14const codeToStatusCodeMap = {
15 ENTITY_NOT_FOUND: 404,
16};
17let RejectProvider = class RejectProvider {
18 static value(logError, errorWriterOptions) {
19 const reject = ({ request, response }, error) => {
20 const err = error;
21 if (!err.status && !err.statusCode && err.code) {
22 const customStatus = codeToStatusCodeMap[err.code];
23 if (customStatus) {
24 err.statusCode = customStatus;
25 }
26 }
27 const statusCode = err.statusCode || err.status || 500;
28 (0, strong_error_handler_1.writeErrorToResponse)(err, request, response, errorWriterOptions);
29 logError(error, statusCode, request);
30 };
31 return reject;
32 }
33};
34tslib_1.__decorate([
35 tslib_1.__param(0, (0, core_1.inject)(keys_1.RestBindings.SequenceActions.LOG_ERROR)),
36 tslib_1.__param(1, (0, core_1.inject)(keys_1.RestBindings.ERROR_WRITER_OPTIONS, { optional: true })),
37 tslib_1.__metadata("design:type", Function),
38 tslib_1.__metadata("design:paramtypes", [Function, Object]),
39 tslib_1.__metadata("design:returntype", Function)
40], RejectProvider, "value", null);
41RejectProvider = tslib_1.__decorate([
42 (0, core_1.injectable)({ scope: core_1.BindingScope.SINGLETON })
43], RejectProvider);
44exports.RejectProvider = RejectProvider;
45//# sourceMappingURL=reject.provider.js.map
\No newline at end of file