ajv Пример добавления собственной функции проверки и сообщения об ошибке

Пример добавления правила, которое позволяет проверить, что значение состоит не только из пробелов:

import Ajv from 'ajv';
import addFormats from "ajv-formats";

const ajv = new Ajv({ allErrors: true, verbose: true });
addFormats(ajv);

ajv.addKeyword('isNotEmpty', {
    keyword: 'string',
    validate: function (schema: any, data: any) { 
        return typeof data === 'string' && data.trim() !== ''
    },
    errors: false,
    error: {
        message: "Значение не должно состоять из одних пробелов"
    }
});

const validate = ajv.compile(
    {
        type: "object",
        "properties": {
            "name": {
                type: "string",
                maxLength: 15,
                "isNotEmpty": true,
            },
            "email": { type: "string", format: "email" },
            "count": { type: "number", },
        },
        required: ["name"]
    }
);

Ну и где-то далее в коде используем определенную выше функцию:

 let valid = validate(data);
        if (valid) {
// .......

Подробнее об определении сообщения об ошибке (может принимать параметры): https://ajv.js.org/keywords.html#reporti...

Key Words for FKN + antitotal forum (CS VSU):