INNER CODE UNIT · TypeScript
createValidator
transitive-bullshit/functional-typescript · packages/fts-validator/src/index.ts:43
export function createValidator(opts?: any): Validator {
const ajv = new Ajv({
useDefaults: true,
coerceTypes: true,
unknownFormats: 'ignore',
...opts
})
ajv.addKeyword('coerceTo', coerceToKeyword)
ajv.addKeyword('coerceFrom', coerceFromKeyword)
return {
ajv,
decoder: (schema: any): Ajv.ValidateFunction => {
const temp = cloneDeep(schema)
convertSchema(temp, (schema, key) => {
if (key === 'coerceFrom') {
const type = schema[key]
delete schema[key]