twenty / packages /twenty-server /src /engine /metadata-modules /flat-field-metadata /utils /nullify-empty-emails-default-value.util.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
1.07 kB
import { type FieldMetadataDefaultValueForAnyType } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { isNullEquivalentArrayFieldValue } from 'src/engine/api/common/common-args-processors/data-arg-processor/utils/is-null-equivalent-array-field-value.util';
import { isNullEquivalentTextDefaultValue } from './is-null-equivalent-text-default-value.util';
export const nullifyEmptyEmailsDefaultValue = (
defaultValue: FieldMetadataDefaultValueForAnyType,
): FieldMetadataDefaultValueForAnyType => {
if (!isDefined(defaultValue)) {
return null;
}
const v = defaultValue as {
primaryEmail?: string | null;
additionalEmails?: object | null;
};
const primaryEmail = isNullEquivalentTextDefaultValue(v.primaryEmail)
? null
: (v.primaryEmail ?? null);
const additionalEmails = isNullEquivalentArrayFieldValue(v.additionalEmails)
? null
: (v.additionalEmails ?? null);
if (primaryEmail === null && additionalEmails === null) {
return null;
}
return { primaryEmail, additionalEmails };
};