UNPKG

@stackbit/sdk

Version:
55 lines 5.25 kB
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