egg-typebox-validate
Version:
another validate for typescript egg projects
45 lines • 2.56 kB
JavaScript
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();
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
keyWords(ajv, 'transform');
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLFFBQVEsTUFBTSxjQUFjLENBQUM7QUFFcEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO0lBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdEIsNkRBQTZEO0lBQzdELGFBQWE7SUFDYixRQUFRLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLDZEQUE2RDtJQUM3RCxhQUFhO0lBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFdBQVc7UUFDWCxNQUFNO1FBQ04sTUFBTTtRQUNOLE9BQU87UUFDUCxVQUFVO1FBQ1YsTUFBTTtRQUNOLE1BQU07UUFDTixLQUFLO1FBQ0wsZUFBZTtRQUNmLE1BQU07UUFDTixjQUFjO1FBQ2QsY0FBYztRQUNkLHVCQUF1QjtRQUN2QixPQUFPO0tBQ1IsQ0FBQztTQUNDLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDbEIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE9BQU8sT0FBTyxXQUFXO0lBQ3ZCLEdBQUcsQ0FBVTtJQUVwQixZQUFZLEdBQVk7UUFDdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxjQUFjLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDL0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==