mirror of
https://github.com/lynchmarkHQ/lynchmark.com.git
synced 2026-10-15 16:47:52 +00:00
17 lines
508 B
JavaScript
17 lines
508 B
JavaScript
const validateJSON = async (data, schema) => {
|
|
try {
|
|
const { default: Ajv } = await import('https://esm.sh/ajv@8');
|
|
const validate = new Ajv({ allErrors: true }).compile(schema);
|
|
const valid = validate(data);
|
|
|
|
return {
|
|
valid,
|
|
errors: valid ? [] : (validate.errors ?? []).map(
|
|
({ instancePath, message }) => `${instancePath || 'root'} ${message}`.trim()
|
|
),
|
|
};
|
|
} catch (e) {
|
|
return { valid: false, errors: [e.message] };
|
|
}
|
|
};
|
|
export default validateJSON; |