payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
67 lines (66 loc) • 5.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _APIError = /*#__PURE__*/ _interop_require_default(require("../../errors/APIError"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const formatErrorResponse = (incoming)=>{
if (incoming) {
if (incoming instanceof _APIError.default && incoming.data) {
return {
errors: [
{
name: incoming.name,
data: incoming.data,
message: incoming.message
}
]
};
}
// mongoose
if (!(incoming instanceof _APIError.default || incoming instanceof Error) && incoming.errors) {
return {
errors: Object.keys(incoming.errors).reduce((acc, key)=>{
acc.push({
field: incoming.errors[key].path,
message: incoming.errors[key].message
});
return acc;
}, [])
};
}
if (Array.isArray(incoming.message)) {
return {
errors: incoming.message
};
}
if (incoming.name) {
return {
errors: [
{
message: incoming.message
}
]
};
}
}
return {
errors: [
{
message: 'An unknown error occurred.'
}
]
};
};
const _default = formatErrorResponse;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHByZXNzL3Jlc3BvbnNlcy9mb3JtYXRFcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQVBJRXJyb3IgZnJvbSAnLi4vLi4vZXJyb3JzL0FQSUVycm9yJ1xuXG5leHBvcnQgdHlwZSBFcnJvclJlc3BvbnNlID0geyBkYXRhPzogYW55OyBlcnJvcnM6IHVua25vd25bXTsgc3RhY2s/OiBzdHJpbmcgfVxuXG5jb25zdCBmb3JtYXRFcnJvclJlc3BvbnNlID0gKFxuICBpbmNvbWluZzogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gfCBBUElFcnJvciB8IEVycm9yLFxuKTogRXJyb3JSZXNwb25zZSA9PiB7XG4gIGlmIChpbmNvbWluZykge1xuICAgIGlmIChpbmNvbWluZyBpbnN0YW5jZW9mIEFQSUVycm9yICYmIGluY29taW5nLmRhdGEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IGluY29taW5nLm5hbWUsXG4gICAgICAgICAgICBkYXRhOiBpbmNvbWluZy5kYXRhLFxuICAgICAgICAgICAgbWVzc2FnZTogaW5jb21pbmcubWVzc2FnZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1vbmdvb3NlXG4gICAgaWYgKCEoaW5jb21pbmcgaW5zdGFuY2VvZiBBUElFcnJvciB8fCBpbmNvbWluZyBpbnN0YW5jZW9mIEVycm9yKSAmJiBpbmNvbWluZy5lcnJvcnMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yczogT2JqZWN0LmtleXMoaW5jb21pbmcuZXJyb3JzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6IGluY29taW5nLmVycm9yc1trZXldLnBhdGgsXG4gICAgICAgICAgICBtZXNzYWdlOiBpbmNvbWluZy5lcnJvcnNba2V5XS5tZXNzYWdlLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LCBbXSksXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5jb21pbmcubWVzc2FnZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yczogaW5jb21pbmcubWVzc2FnZSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5jb21pbmcubmFtZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3JzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogaW5jb21pbmcubWVzc2FnZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZXJyb3JzOiBbXG4gICAgICB7XG4gICAgICAgIG1lc3NhZ2U6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLicsXG4gICAgICB9LFxuICAgIF0sXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0RXJyb3JSZXNwb25zZVxuIl0sIm5hbWVzIjpbImZvcm1hdEVycm9yUmVzcG9uc2UiLCJpbmNvbWluZyIsIkFQSUVycm9yIiwiZGF0YSIsImVycm9ycyIsIm5hbWUiLCJtZXNzYWdlIiwiRXJyb3IiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwiYWNjIiwia2V5IiwicHVzaCIsImZpZWxkIiwicGF0aCIsIkFycmF5IiwiaXNBcnJheSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyREE7OztlQUFBOzs7aUVBM0RxQjs7Ozs7O0FBSXJCLE1BQU1BLHNCQUFzQixDQUMxQkM7SUFFQSxJQUFJQSxVQUFVO1FBQ1osSUFBSUEsb0JBQW9CQyxpQkFBUSxJQUFJRCxTQUFTRSxJQUFJLEVBQUU7WUFDakQsT0FBTztnQkFDTEMsUUFBUTtvQkFDTjt3QkFDRUMsTUFBTUosU0FBU0ksSUFBSTt3QkFDbkJGLE1BQU1GLFNBQVNFLElBQUk7d0JBQ25CRyxTQUFTTCxTQUFTSyxPQUFPO29CQUMzQjtpQkFDRDtZQUNIO1FBQ0Y7UUFFQSxXQUFXO1FBQ1gsSUFBSSxDQUFFTCxDQUFBQSxvQkFBb0JDLGlCQUFRLElBQUlELG9CQUFvQk0sS0FBSSxLQUFNTixTQUFTRyxNQUFNLEVBQUU7WUFDbkYsT0FBTztnQkFDTEEsUUFBUUksT0FBT0MsSUFBSSxDQUFDUixTQUFTRyxNQUFNLEVBQUVNLE1BQU0sQ0FBQyxDQUFDQyxLQUFLQztvQkFDaERELElBQUlFLElBQUksQ0FBQzt3QkFDUEMsT0FBT2IsU0FBU0csTUFBTSxDQUFDUSxJQUFJLENBQUNHLElBQUk7d0JBQ2hDVCxTQUFTTCxTQUFTRyxNQUFNLENBQUNRLElBQUksQ0FBQ04sT0FBTztvQkFDdkM7b0JBQ0EsT0FBT0s7Z0JBQ1QsR0FBRyxFQUFFO1lBQ1A7UUFDRjtRQUVBLElBQUlLLE1BQU1DLE9BQU8sQ0FBQ2hCLFNBQVNLLE9BQU8sR0FBRztZQUNuQyxPQUFPO2dCQUNMRixRQUFRSCxTQUFTSyxPQUFPO1lBQzFCO1FBQ0Y7UUFFQSxJQUFJTCxTQUFTSSxJQUFJLEVBQUU7WUFDakIsT0FBTztnQkFDTEQsUUFBUTtvQkFDTjt3QkFDRUUsU0FBU0wsU0FBU0ssT0FBTztvQkFDM0I7aUJBQ0Q7WUFDSDtRQUNGO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xGLFFBQVE7WUFDTjtnQkFDRUUsU0FBUztZQUNYO1NBQ0Q7SUFDSDtBQUNGO01BRUEsV0FBZU4ifQ==