UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

49 lines (48 loc) 1.5 kB
import type { CustomTypeModelField } from "./types"; /** * A Prismic custom type model. * * @typeParam ID - API ID of the custom type. * @typeParam Definition - The custom type's tabs and their fields. */ export interface CustomTypeModel<ID extends string = string, Definition extends CustomTypeModelDefinition = CustomTypeModelDefinition> { /** * The ID of the custom type model. */ id: ID; /** * The human readable name of the custom type model. */ label: string | null | undefined; /** * The format of the custom type model. * * Fallback to "custom" if undefined. */ format?: "page" | "custom"; /** * Determines if more than one document for the custom type can be created. */ repeatable: boolean; /** * The custom type model definition. */ json: Definition; /** * Determines if new documents for the custom type can be created. */ status: boolean; } /** * A Prismic custom type's tabs and their fields. * * @typeParam TabName - Names of custom type tabs. */ export type CustomTypeModelDefinition<TabName extends string = string> = Record<TabName, CustomTypeModelTab>; /** * A custom type's tab. Each tab can contain any number of fields but is limited * to one Slice Zone. * * @typeParam FieldName - API IDs of the fields. */ export type CustomTypeModelTab<Fields extends Record<string, CustomTypeModelField> = Record<string, CustomTypeModelField>> = Fields;