contensis-core-api
Version:
A dependency library used by contensis-delivery-api and contensis-management-api
54 lines (48 loc) • 1.26 kB
text/typescript
import { Editor } from './Editor';
import { LocalisedString, LocalisedValue } from './Localised';
import { Validations } from './Validations';
type FieldDataTypeMap<T> = {
'boolean': T,
'booleanArray': T,
'dateTime': T,
'dateTimeArray': T,
'decimal': T,
'decimalArray': T,
'integer': T,
'integerArray': T,
'object': T,
'objectArray': T,
'string': T,
'stringArray': T
};
type FieldDataFormatMap<T> = {
'asset': T,
'daterange': T,
'embed': T,
'entry': T,
'field': T,
'heading': T,
'html': T,
'image': T,
'location': T,
'markdown': T,
'quote': T,
'taxonomy': T,
'component': T,
'contenttype': T,
'tag': T
};
export type FieldDataType = keyof FieldDataTypeMap<any>;
export type FieldDataFormat = keyof FieldDataFormatMap<any> | string; // `component.${string}` or `tag.${string}`;
export interface Field {
id: string;
name: LocalisedString;
description?: LocalisedString;
dataType: FieldDataType;
dataFormat?: FieldDataFormat;
default?: LocalisedValue<any>;
groupId?: string;
validations?: Validations<Field>;
editor?: Editor;
readonly fields?: Field[];
}