twenty / packages /twenty-server /src /engine /metadata-modules /flat-field-metadata /utils /nullify-empty-composite-default-value.util.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
2.11 kB
import {
FieldMetadataType,
type FieldMetadataDefaultValueForAnyType,
} from 'twenty-shared/types';
import { assertUnreachable } from 'twenty-shared/utils';
import { CompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/types/composite-field-metadata-type.type';
import { nullifyEmptyActorDefaultValue } from './nullify-empty-actor-default-value.util';
import { nullifyEmptyAddressDefaultValue } from './nullify-empty-address-default-value.util';
import { nullifyEmptyCurrencyDefaultValue } from './nullify-empty-currency-default-value.util';
import { nullifyEmptyEmailsDefaultValue } from './nullify-empty-emails-default-value.util';
import { nullifyEmptyFullNameDefaultValue } from './nullify-empty-full-name-default-value.util';
import { nullifyEmptyLinksDefaultValue } from './nullify-empty-links-default-value.util';
import { nullifyEmptyPhonesDefaultValue } from './nullify-empty-phones-default-value.util';
import { nullifyEmptyRichTextDefaultValue } from './nullify-empty-rich-text-default-value.util';
export const nullifyEmptyCompositeDefaultValue = ({
defaultValue,
fieldType,
}: {
defaultValue: FieldMetadataDefaultValueForAnyType;
fieldType: CompositeFieldMetadataType;
}): FieldMetadataDefaultValueForAnyType => {
switch (fieldType) {
case FieldMetadataType.PHONES:
return nullifyEmptyPhonesDefaultValue(defaultValue);
case FieldMetadataType.EMAILS:
return nullifyEmptyEmailsDefaultValue(defaultValue);
case FieldMetadataType.LINKS:
return nullifyEmptyLinksDefaultValue(defaultValue);
case FieldMetadataType.ADDRESS:
return nullifyEmptyAddressDefaultValue(defaultValue);
case FieldMetadataType.FULL_NAME:
return nullifyEmptyFullNameDefaultValue(defaultValue);
case FieldMetadataType.ACTOR:
return nullifyEmptyActorDefaultValue(defaultValue);
case FieldMetadataType.CURRENCY:
return nullifyEmptyCurrencyDefaultValue(defaultValue);
case FieldMetadataType.RICH_TEXT:
return nullifyEmptyRichTextDefaultValue(defaultValue);
default:
assertUnreachable(fieldType);
}
};