mirror of
https://github.com/lynchmarkHQ/lynchmark.com.git
synced 2026-10-14 16:17:53 +00:00
24 lines
611 B
JavaScript
24 lines
611 B
JavaScript
let a, c;
|
|
|
|
export const validateJSON = async (d, s) => {
|
|
try {
|
|
if (!a) {
|
|
const { default: Ajv } = await import('https://esm.sh/ajv?bundle');
|
|
a = new Ajv({ allErrors: true });
|
|
c = new Map();
|
|
}
|
|
const k = JSON.stringify(s);
|
|
if (!c.has(k)) c.set(k, a.compile(s));
|
|
const v = c.get(k);
|
|
const valid = v(d);
|
|
return {
|
|
valid,
|
|
errors: valid ? [] : v.errors.map(e => `${e.instancePath || 'root'} ${e.message}`)
|
|
};
|
|
} catch (e) {
|
|
return { valid: false, errors: [e.message] };
|
|
}
|
|
};
|
|
export default validateJSON;
|
|
// Generation time: 19.566s
|
|
// Result: PASS
|