@canard/schema-form-ajv8-plugin
Version:
AJV 8.x validator plugin for @canard/schema-form providing JSON Schema validation with latest Draft 2020-12 and Draft 2019-09 support
20 lines (17 loc) • 551 B
JavaScript
import Ajv from 'ajv';
import { createValidatorFactory } from '../validator/createValidatorFactory.mjs';
const defaultSettings = {
allErrors: true,
strictSchema: false,
validateFormats: false,
};
let ajvInstance = null;
const ajvValidatorPlugin = {
bind: (instance) => (ajvInstance = instance),
compile: (jsonSchema) => {
if (!ajvInstance)
ajvInstance = new Ajv(defaultSettings);
return createValidatorFactory(ajvInstance)(jsonSchema);
},
};
export { ajvValidatorPlugin, createValidatorFactory };