bc579d64a6
* Rename Money/Url to Currency/Link * regenerate front types * renaming money/url field types * fix double text * fix tests * fix server tests * fix generate-target-column-map * fix currency convert * fix: tests --------- Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { BadRequestException } from '@nestjs/common';
|
|
|
|
import { FieldMetadataDefaultSerializableValue } from 'src/metadata/field-metadata/interfaces/field-metadata-default-value.interface';
|
|
|
|
export const serializeDefaultValue = (
|
|
defaultValue?: FieldMetadataDefaultSerializableValue,
|
|
) => {
|
|
if (defaultValue === undefined || defaultValue === null) {
|
|
return null;
|
|
}
|
|
|
|
// Dynamic default values
|
|
if (typeof defaultValue === 'object' && 'type' in defaultValue) {
|
|
switch (defaultValue.type) {
|
|
case 'uuid':
|
|
return 'public.uuid_generate_v4()';
|
|
case 'now':
|
|
return 'now()';
|
|
default:
|
|
throw new BadRequestException('Invalid dynamic default value type');
|
|
}
|
|
}
|
|
|
|
// Static default values
|
|
if (typeof defaultValue === 'string') {
|
|
return `'${defaultValue}'`;
|
|
}
|
|
|
|
if (typeof defaultValue === 'number') {
|
|
return defaultValue;
|
|
}
|
|
|
|
if (typeof defaultValue === 'boolean') {
|
|
return defaultValue;
|
|
}
|
|
|
|
if (defaultValue instanceof Date) {
|
|
return `'${defaultValue.toISOString()}'`;
|
|
}
|
|
|
|
if (typeof defaultValue === 'object') {
|
|
return `'${JSON.stringify(defaultValue)}'`;
|
|
}
|
|
|
|
throw new BadRequestException('Invalid default value');
|
|
};
|