@energica-city/shared-amplify-utils
Version:
Shared utilities for AWS Amplify projects
48 lines • 1.56 kB
JavaScript
import * as yup from 'yup';
/**
* Extracts error details from Yup validation error
* Shared utility function for all validators
*/
export function extractYupErrors(error) {
const details = [];
if (error.inner && Array.isArray(error.inner)) {
// Multiple validation errors
for (const innerError of error.inner) {
details.push({
field: innerError.path || 'unknown',
message: innerError.message || 'Validation failed',
value: innerError.value,
type: innerError.type || 'validation',
});
}
}
else {
// Single validation error
details.push({
field: error.path || 'unknown',
message: error.message || 'Validation failed',
value: error.value,
type: error.type || 'validation',
});
}
return details;
}
/**
* Common validation patterns that can be reused across validators
*/
export const ValidationPatterns = {
/** UUID validation pattern */
uuid: () => yup.string().uuid().required(),
/** Email validation pattern */
email: () => yup.string().email().required(),
/** Pagination query parameters */
pagination: () => yup.object({
page: yup.number().positive().integer().default(1),
limit: yup.number().positive().integer().max(100).default(10),
}),
/** ID parameter for path parameters */
idParam: () => yup.object({
id: yup.string().required(),
}),
};
//# sourceMappingURL=validation.js.map