From ea6b0af05eb70c399861d9922014c4d5663805bf Mon Sep 17 00:00:00 2001 From: constanzaderienzo Date: Wed, 19 Jun 2024 14:12:04 -0300 Subject: [PATCH 1/2] add ajv keywords --- src/framework/ajv/options.ts | 3 ++- src/framework/types.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/framework/ajv/options.ts b/src/framework/ajv/options.ts index 5bf32b09..ec0aa2ae 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 } = this.options; const serDesMap = {}; for (const serDesObject of serDes) { @@ -73,6 +73,7 @@ export class AjvOptions { formats, serDesMap, ajvFormats, + keywords: ajvKeywords }; return options; diff --git a/src/framework/types.ts b/src/framework/types.ts index 9d4d0c65..f9843a47 100644 --- a/src/framework/types.ts +++ b/src/framework/types.ts @@ -149,6 +149,7 @@ export interface OpenApiValidatorOpts { unknownFormats?: true | string[] | 'ignore'; serDes?: SerDes[]; formats?: Format[] | Record; + ajvKeywords?: ajv.Vocabulary ajvFormats?: FormatsPluginOptions; fileUploader?: boolean | multer.Options; multerOpts?: multer.Options; From cc7cdad3d30c3e4f355a76c6a0abdbc083ed0386 Mon Sep 17 00:00:00 2001 From: constanzaderienzo Date: Tue, 2 Jul 2024 15:45:40 -0300 Subject: [PATCH 2/2] useDefaults --- src/framework/ajv/options.ts | 4 ++-- src/framework/types.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/framework/ajv/options.ts b/src/framework/ajv/options.ts index ec0aa2ae..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, ajvKeywords } = + const { coerceTypes, formats, validateFormats, serDes, ajvFormats, ajvKeywords, useDefaults } = this.options; const serDesMap = {}; for (const serDesObject of serDes) { @@ -67,7 +67,7 @@ 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, diff --git a/src/framework/types.ts b/src/framework/types.ts index f9843a47..a19fc496 100644 --- a/src/framework/types.ts +++ b/src/framework/types.ts @@ -149,7 +149,8 @@ export interface OpenApiValidatorOpts { unknownFormats?: true | string[] | 'ignore'; serDes?: SerDes[]; formats?: Format[] | Record; - ajvKeywords?: ajv.Vocabulary + ajvKeywords?: ajv.Vocabulary; + useDefaults?: boolean | 'empty'; ajvFormats?: FormatsPluginOptions; fileUploader?: boolean | multer.Options; multerOpts?: multer.Options;