"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.transformError = void 0; var _boom = _interopRequireDefault(require("@hapi/boom")); var _bad_request_error = require("../bad_request_error"); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0 and the Server Side Public License, v 1; you may not use this file except * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ const transformError = err => { if (_boom.default.isBoom(err)) { return { message: err.output.payload.message, statusCode: err.output.statusCode }; } else { if (err.statusCode != null) { if (err.body != null && err.body.error != null) { return { statusCode: err.statusCode, message: `${err.body.error.type}: ${err.body.error.reason}` }; } else { return { statusCode: err.statusCode, message: err.message }; } } else if (err instanceof _bad_request_error.BadRequestError) { // allows us to throw request validation errors in the absence of Boom return { message: err.message, statusCode: 400 }; } else { // natively return the err and allow the regular framework // to deal with the error when it is a non Boom return { message: err.message != null ? err.message : '(unknown error message)', statusCode: 500 }; } } }; exports.transformError = transformError;