@stackbit/sdk
Version:
55 lines • 5.25 kB
TypeScript
import { Model, ObjectModel, DataModel, PageModel, ConfigModel, YamlModel, YamlObjectModel, YamlPageModel, YamlDataModel, YamlDataModelList, Field, FieldSpecificProps, FieldEnumProps, FieldList, FieldListItems, FieldListModel, FieldListObject, FieldListReference, FieldModelProps, FieldObjectProps, FieldReferenceProps, FieldCrossReferenceProps, DataModelList, FieldListProps } from '../config/config-types';
export declare function getModelByName(models: Model[], modelName: string): Model | undefined;
export declare function isConfigModel(model: Model): model is ConfigModel;
export declare function isDataModel(model: Model | YamlModel): model is DataModel | YamlDataModel;
export declare function isListDataModel(model: Model | YamlModel): model is DataModelList | YamlDataModelList;
export declare function isPageModel(model: Model | YamlModel): model is PageModel | YamlPageModel;
export declare function isObjectModel(model: Model | YamlModel): model is ObjectModel | YamlObjectModel;
export declare function isSingleInstanceModel(model: Model | YamlModel): boolean;
export declare function isObjectField(field: FieldSpecificProps): field is FieldObjectProps;
export declare function isModelField(field: FieldSpecificProps): field is FieldModelProps;
export declare function isReferenceField(field: FieldSpecificProps): field is FieldReferenceProps;
export declare function isCrossReferenceField(field: FieldSpecificProps): field is FieldCrossReferenceProps;
export declare function isCustomModelField(field: FieldSpecificProps, modelsByName: Record<string, Model>): boolean;
export declare function isEnumField(field: FieldSpecificProps): field is FieldEnumProps;
export declare function isListOfObjectsField(field: Field): field is FieldListObject;
export declare function isListOfModelsField(field: Field): field is FieldListModel;
export declare function isListOfReferencesField(field: Field): field is FieldListReference;
export declare function isListOfCustomModelsField(field: Field, modelsByName?: Record<string, Model>): field is FieldList;
export declare function isListField(field: Field): field is FieldList;
export declare function isObjectListItems(items: FieldListItems): items is FieldObjectProps;
export declare function isModelListItems(items: FieldListItems): items is FieldModelProps;
export declare function isReferenceListItems(items: FieldListItems): items is FieldReferenceProps;
export declare function isCustomModelListItems(items: FieldListItems, modelsByName?: Record<string, Model>): boolean;
/**
* Gets a list field and returns its items field. If list field does not define
* items field, the default field is string:
*
* @example
* listItemField = getListFieldItems({
* type: 'list',
* name: '...',
* items: { type: 'object', fields: [] }
* }
* listItemField => {
* type: 'object',
* name: '...',
* fields: []
* }
*
* // list field without `items`
* listItemField = getListFieldItems({ type: 'list', name: '...' }
* listItemField => { type: 'string' }
*
* @param {Object} field
* @return {Object}
*/
export declare function getListFieldItems(field: FieldList): FieldListItems;
export declare function normalizeListField(field: FieldList): FieldList;
export declare function normalizeListFieldInPlace(field: FieldList | DataModelList): FieldList | DataModelList;
export declare function getListItemsOrSelf(field: Field): Exclude<FieldSpecificProps, FieldListProps>;
export declare function mapListItemsPropsOrSelfSpecificProps(field: Field, func: <T extends Exclude<FieldSpecificProps, FieldListProps>>(listItemsPropsOrField: T) => T): Field;
export declare function assignLabelFieldIfNeeded(modelOrField: Model | FieldObjectProps): void;
export declare function resolveLabelFieldForModel(modelOrField: Model | FieldObjectProps): string | null;
export declare function getModelFieldForModelKeyPath(model: Model | YamlModel, modelKeyPath: string[]): import("@stackbit/types").FieldStringProps | import("@stackbit/types").FieldUrlProps | import("@stackbit/types").FieldSlugProps | import("@stackbit/types").FieldTextProps | import("@stackbit/types").FieldMarkdownProps | import("@stackbit/types").FieldHtmlProps | import("@stackbit/types/dist/model-fields").FieldNumberProps | import("@stackbit/types").FieldBooleanProps | import("@stackbit/types").FieldDateProps | import("@stackbit/types").FieldDatetimeProps | import("@stackbit/types").FieldColorProps | import("@stackbit/types").FieldJsonProps | import("@stackbit/types").FieldRichTextProps | import("@stackbit/types").FieldFileProps | import("@stackbit/types/dist/model-fields").FieldEnumDropdownProps | import("@stackbit/types/dist/model-fields").FieldEnumThumbnailsProps | import("@stackbit/types/dist/model-fields").FieldEnumPaletteProps | import("@stackbit/types").FieldEnumPaletteColorsProps | import("@stackbit/types/dist/model-fields").FieldImageProps | FieldObjectProps | FieldModelProps | FieldReferenceProps | FieldCrossReferenceProps | import("@stackbit/types/dist/model-fields").FieldStyle | FieldList | YamlObjectModel | YamlPageModel | import("../config/config-types").YamlConfigModel | import("../config/config-types").YamlDataModelSingle | YamlDataModelList | null;
//# sourceMappingURL=model-utils.d.ts.map