diff --git a/packages/common/pipes/validation.pipe.ts b/packages/common/pipes/validation.pipe.ts index fd37802b5f0..3aa325b684f 100644 --- a/packages/common/pipes/validation.pipe.ts +++ b/packages/common/pipes/validation.pipe.ts @@ -18,7 +18,7 @@ import { HttpErrorByCode, } from '../utils/http-error-by-code.util'; import { loadPackage } from '../utils/load-package.util'; -import { isNil } from '../utils/shared.utils'; +import { isNil, isUndefined } from '../utils/shared.utils'; export interface ValidationPipeOptions extends ValidatorOptions { transform?: boolean; @@ -179,6 +179,12 @@ export class ValidationPipe implements PipeTransform { return value; } if (metatype === Boolean) { + if (isUndefined(value)) { + // This is an workaround to deal with optional boolean values since + // the default value of an optional boolean shouldn't be a valid boolean + return undefined; + } + // Any fasly value but `undefined` will be parsed to `false` return value === true || value === 'true'; } if (metatype === Number) {