@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
21 lines (19 loc) • 490 B
JavaScript
import { transformErrors } from "./utils/transformErrors.mjs";
//#region src/validator/createValidatorFactory.ts
const createValidatorFactory = (ajv) => (jsonSchema) => {
const validate = ajv.compile({
...jsonSchema,
$async: true
});
return async (data) => {
try {
await validate(data);
return null;
} catch (thrown) {
if (Array.isArray(thrown?.errors)) return transformErrors(thrown.errors);
throw thrown;
}
};
};
//#endregion
export { createValidatorFactory };