Spaces:
Build error
Build error
twenty / packages /twenty-server /src /engine /metadata-modules /field-metadata /utils /serialize-default-value.ts
| import { type FieldMetadataDefaultValueForAnyType } from 'twenty-shared/types'; | |
| import { | |
| FieldMetadataException, | |
| FieldMetadataExceptionCode, | |
| } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception'; | |
| import { isFunctionDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/is-function-default-value.util'; | |
| import { serializeFunctionDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/serialize-function-default-value.util'; | |
| export const serializeDefaultValue = ( | |
| defaultValue?: FieldMetadataDefaultValueForAnyType, | |
| ) => { | |
| if (defaultValue === undefined || defaultValue === null) { | |
| return null; | |
| } | |
| // Function default values | |
| if (isFunctionDefaultValue(defaultValue)) { | |
| const serializedTypeDefaultValue = | |
| serializeFunctionDefaultValue(defaultValue); | |
| if (!serializedTypeDefaultValue) { | |
| throw new FieldMetadataException( | |
| 'Invalid default value', | |
| FieldMetadataExceptionCode.INVALID_FIELD_INPUT, | |
| ); | |
| } | |
| return serializedTypeDefaultValue; | |
| } | |
| // Static default values | |
| if (typeof defaultValue === 'string' && defaultValue.startsWith("'")) { | |
| return defaultValue; | |
| } | |
| if (typeof defaultValue === 'number') { | |
| return defaultValue; | |
| } | |
| if (typeof defaultValue === 'boolean') { | |
| return defaultValue; | |
| } | |
| if (defaultValue instanceof Date) { | |
| return `'${defaultValue.toISOString()}'`; | |
| } | |
| if (Array.isArray(defaultValue)) { | |
| return `'{${defaultValue | |
| .map((value) => value.replace(/'/g, '')) | |
| .join(',')}}'`; | |
| } | |
| if (typeof defaultValue === 'object') { | |
| return `'${JSON.stringify(defaultValue)}'`; | |
| } | |
| throw new FieldMetadataException( | |
| `Invalid default value "${defaultValue}"`, | |
| FieldMetadataExceptionCode.INVALID_FIELD_INPUT, | |
| ); | |
| }; | |