egg-typebox-validate
Version:
another validate for typescript egg projects
51 lines • 2.81 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ajv_formats_1 = __importDefault(require("ajv-formats"));
const _2019_js_1 = require("ajv/dist/2019.js");
const ajv_keywords_1 = __importDefault(require("ajv-keywords"));
const getAjvInstance = () => {
const ajv = new _2019_js_1.Ajv2019();
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
(0, ajv_keywords_1.default)(ajv, 'transform');
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
(0, ajv_formats_1.default)(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;
};
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);
}
}
}
exports.default = AppBootHook;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDhEQUFxQztBQUNyQywrQ0FBa0Q7QUFDbEQsZ0VBQW9DO0FBRXBDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLGtCQUFHLEVBQUUsQ0FBQztJQUN0Qiw2REFBNkQ7SUFDN0QsYUFBYTtJQUNiLElBQUEsc0JBQVEsRUFBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0IsNkRBQTZEO0lBQzdELGFBQWE7SUFDYixJQUFBLHFCQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsV0FBVztRQUNYLE1BQU07UUFDTixNQUFNO1FBQ04sT0FBTztRQUNQLFVBQVU7UUFDVixNQUFNO1FBQ04sTUFBTTtRQUNOLEtBQUs7UUFDTCxlQUFlO1FBQ2YsTUFBTTtRQUNOLGNBQWM7UUFDZCxjQUFjO1FBQ2QsdUJBQXVCO1FBQ3ZCLE9BQU87S0FDUixDQUFDO1NBQ0MsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUNsQixVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFxQixXQUFXO0lBQ3ZCLEdBQUcsQ0FBVTtJQUVwQixZQUFZLEdBQVk7UUFDdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxjQUFjLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDL0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFmRCw4QkFlQyJ9