diff --git a/packages/core/src/lib/utils/normalizedStringValue.ts b/packages/core/src/lib/utils/normalizedStringValue.ts index 3922cd59..36392131 100644 --- a/packages/core/src/lib/utils/normalizedStringValue.ts +++ b/packages/core/src/lib/utils/normalizedStringValue.ts @@ -1,3 +1,4 @@ +import { isUndefined } from 'lodash'; import { UserError } from './errors'; export const canBeNormalized = (type: string) => { @@ -7,10 +8,14 @@ export const canBeNormalized = (type: string) => { }; export const normalizeStringValue = ( - value: string, + value: string | undefined, dataName: string, dataType: string ) => { + if (isUndefined(value)) { + return undefined; + } + switch (dataType.toLowerCase()) { case 'number': { if (value === '') { diff --git a/packages/core/src/lib/validators/built-in-validators/dateTypeValidator.ts b/packages/core/src/lib/validators/built-in-validators/dateTypeValidator.ts index eb729fd9..ddbc2697 100644 --- a/packages/core/src/lib/validators/built-in-validators/dateTypeValidator.ts +++ b/packages/core/src/lib/validators/built-in-validators/dateTypeValidator.ts @@ -39,6 +39,8 @@ export class DateTypeValidator extends InputValidator { } public validateData(value: string, args?: DateInputArgs) { + if (isUndefined(value)) return; + let valid = dayjs(value).isValid(); // if there are args passed if (!isUndefined(args)) { diff --git a/packages/core/test/utils/normalizedStringValue.spec.ts b/packages/core/test/utils/normalizedStringValue.spec.ts index 80df5c11..e6d396b6 100644 --- a/packages/core/test/utils/normalizedStringValue.spec.ts +++ b/packages/core/test/utils/normalizedStringValue.spec.ts @@ -22,15 +22,19 @@ it.each([ ['number', '1234', 1234], ['number', '-1234', -1234], ['number', '0', 0], + ['number', undefined, undefined], ['boolean', '', true], ['boolean', '1', true], ['boolean', 'true', true], ['boolean', '0', false], ['boolean', 'false', false], + ['boolean', undefined, undefined], ['date', '2022-08-23 14:44:23', new Date('2022-08-23 14:44:23')], + ['date', undefined, undefined], ['string', '1234', '1234'], ['string', 'true', 'true'], ['string', '', ''], + ['string', undefined, undefined], ])( `Normalizer should return correct value with type %s and value %p`, (type, value, expectedValue) => {