UNPKG

payload

Version:

Node, React, Headless CMS and Application Framework built on Next.js

53 lines (52 loc) 1.7 kB
import { APIError } from '../errors/APIError.js'; import { ValidationError } from '../errors/ValidationError.js'; export const formatErrors = (incoming)=>{ if (incoming) { // Payload 'ValidationError' and 'APIError' if ((incoming instanceof ValidationError || incoming instanceof APIError) && incoming.data) { return { errors: [ { name: incoming.name, data: incoming.data, message: incoming.message } ] }; } // Mongoose 'ValidationError': https://mongoosejs.com/docs/api/error.html#Error.ValidationError if ('name' in incoming && incoming.name === 'ValidationError' && 'errors' in incoming && 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.' } ] }; }; //# sourceMappingURL=formatErrors.js.map