diff --git a/src/framework/ajv/options.ts b/src/framework/ajv/options.ts index 5bf32b09..9bf761b0 100644 --- a/src/framework/ajv/options.ts +++ b/src/framework/ajv/options.ts @@ -44,7 +44,7 @@ export class AjvOptions { } private baseOptions(): Options { - const { coerceTypes, formats, validateFormats, serDes, ajvFormats } = + const { coerceTypes, formats, validateFormats, serDes, ajvFormats, ajvKeywords, useDefaults } = this.options; const serDesMap = {}; for (const serDesObject of serDes) { @@ -67,12 +67,13 @@ export class AjvOptions { allowUnionTypes: false, validateSchema: false, // this is true for startup validation, thus it can be bypassed here coerceTypes, - useDefaults: true, + useDefaults: useDefaults ?? true, removeAdditional: false, validateFormats: validateFormats, formats, serDesMap, ajvFormats, + keywords: ajvKeywords }; return options; diff --git a/src/framework/types.ts b/src/framework/types.ts index 9d4d0c65..a19fc496 100644 --- a/src/framework/types.ts +++ b/src/framework/types.ts @@ -149,6 +149,8 @@ export interface OpenApiValidatorOpts { unknownFormats?: true | string[] | 'ignore'; serDes?: SerDes[]; formats?: Format[] | Record; + ajvKeywords?: ajv.Vocabulary; + useDefaults?: boolean | 'empty'; ajvFormats?: FormatsPluginOptions; fileUploader?: boolean | multer.Options; multerOpts?: multer.Options;