UNPKG

@eggjs/typebox-validate

Version:

another validate for typescript egg projects

43 lines 2.5 kB
import addFormats from 'ajv-formats'; import { Ajv2019 as Ajv } from 'ajv/dist/2019.js'; import keyWords from 'ajv-keywords'; const getAjvInstance = () => { const ajv = new Ajv(); // @ts-expect-error - keyWords types are not fully compatible keyWords(ajv, 'transform'); // @ts-expect-error - addFormats types are not fully compatible addFormats(ajv, [ 'date-time', 'time', 'date', 'email', 'hostname', 'ipv4', 'ipv6', 'uri', 'uri-reference', 'uuid', 'uri-template', 'json-pointer', 'relative-json-pointer', 'regex', ]) .addKeyword('kind') .addKeyword('modifier'); return ajv; }; export default class AppBootHook { app; constructor(app) { this.app = app; this.app.ajv = getAjvInstance(); } async configDidLoad() { const config = this.app.config; const typeboxValidate = config.typeboxValidate; if (typeboxValidate) { typeboxValidate.patchAjv?.(this.app.ajv); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLFFBQVEsTUFBTSxjQUFjLENBQUM7QUFFcEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO0lBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdEIsNkRBQTZEO0lBQzdELFFBQVEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0IsK0RBQStEO0lBQy9ELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxXQUFXO1FBQ1gsTUFBTTtRQUNOLE1BQU07UUFDTixPQUFPO1FBQ1AsVUFBVTtRQUNWLE1BQU07UUFDTixNQUFNO1FBQ04sS0FBSztRQUNMLGVBQWU7UUFDZixNQUFNO1FBQ04sY0FBYztRQUNkLGNBQWM7UUFDZCx1QkFBdUI7UUFDdkIsT0FBTztLQUNSLENBQUM7U0FDQyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQ2xCLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sV0FBVztJQUN2QixHQUFHLENBQWM7SUFFeEIsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYTtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMvQixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQy9DLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7Q0FDRiJ9