224c8d361b
New strategy: - add settings field on FieldMetadata. Contains a boolean isIdField and for numbers, a precision - if idField, the graphql scalar returned will be a GraphQL id. This will allow the app to work even for ids that are not uuid - remove globals dateScalar and numberScalar modes. These were not used - set limit as Integer - check manually in query runner mutations that we send a valid id Todo left: - remove WorkspaceBuildSchemaOptions since this is not used anymore. Will do in another PR --------- Co-authored-by: Thomas Trompette <thomast@twenty.com> Co-authored-by: Weiko <corentin@twenty.com>
25 lines
723 B
TypeScript
25 lines
723 B
TypeScript
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
|
|
|
type FieldMetadataDefaultSettings = {
|
|
isForeignKey?: boolean;
|
|
};
|
|
|
|
type FieldMetadataNumberSettings = {
|
|
precision: number;
|
|
};
|
|
|
|
type FieldMetadataSettingsMapping = {
|
|
[FieldMetadataType.NUMBER]: FieldMetadataNumberSettings;
|
|
};
|
|
|
|
type SettingsByFieldMetadata<T extends FieldMetadataType | 'default'> =
|
|
T extends keyof FieldMetadataSettingsMapping
|
|
? FieldMetadataSettingsMapping[T] & FieldMetadataDefaultSettings
|
|
: T extends 'default'
|
|
? FieldMetadataDefaultSettings
|
|
: never;
|
|
|
|
export type FieldMetadataSettings<
|
|
T extends FieldMetadataType | 'default' = 'default',
|
|
> = SettingsByFieldMetadata<T>;
|