payload
Version:
Node, React, Headless CMS and Application Framework built on Next.js
53 lines (52 loc) • 1.7 kB
JavaScript
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