Files
lynchmark.com/tests/8_json_validator/outputs/openrouter_sherlock-think-alpha.js
T

21 lines
626 B
JavaScript

let ajvInstance;
async function validateJSON(data, schema) {
if (!ajvInstance) {
const { default: Ajv } = await import('https://cdn.skypack.dev/ajv@8');
ajvInstance = new Ajv({ allErrors: true });
}
const ajv = ajvInstance;
try {
const validate = ajv.compile(schema);
const valid = validate(data);
const errors = valid ? [] : ajv.errorsText(validate.errors, { separator: '\n' })
.split('\n')
.map(s => s.trim())
.filter(Boolean);
return { valid, errors };
} catch (e) {
return { valid: false, errors: [`Schema error: ${e.message}`] };
}
}
export default validateJSON;