mirror of
https://github.com/lynchmarkHQ/lynchmark.com.git
synced 2026-10-17 17:27:53 +00:00
15 lines
664 B
JavaScript
15 lines
664 B
JavaScript
async function validateJSON(data, schema) {
|
|
const {default: Ajv} = await import('https://cdn.jsdelivr.net/npm/ajv@8/dist/ajv.min.js')
|
|
const ajv = new Ajv({allErrors:true, strict:false})
|
|
const validate = ajv.compile(schema)
|
|
const valid = validate(data)
|
|
if (valid) return {valid:true, errors:[]}
|
|
const errors = (validate.errors || []).map(e => {
|
|
const path = (e.instancePath || e.dataPath || '') || (e.schemaPath || '')
|
|
const msg = e.message || 'Invalid value'
|
|
const params = e.params ? JSON.stringify(e.params) : ''
|
|
return [path, msg, params].filter(Boolean).join(' - ')
|
|
})
|
|
return {valid:false, errors}
|
|
}
|
|
export default validateJSON; |