UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

115 lines (114 loc) 3.88 kB
import type { AnyRegularField } from "./types"; import type { GroupField } from "./group"; import type { SliceZone } from "./sliceZone"; import type { TimestampField } from "./timestamp"; /** * Document metadata for a translation of a Prismic document. */ export interface AlternateLanguage<TypeEnum = string, LangEnum = string> { id: string; uid?: string; type: TypeEnum; lang: LangEnum; } /** * Metadata for Prismic document */ export interface PrismicDocumentHeader<TypeEnum = string, LangEnum = string> { /** * The unique identifier for the document. Guaranteed to be unique among all * documents in the Prismic repository. */ id: string; /** * The unique identifier for the document. Guaranteed to be unique among all * Prismic documents of the same type. */ uid: string | null; /** * Url that refers to document. */ url: string | null; /** * Type of the document. */ type: TypeEnum; /** * Href for document. */ href: string; /** * Tags associated with document. */ tags: string[]; /** * The timestamp at which the document was first published. */ first_publication_date: TimestampField<"filled">; /** * The timestamp at which the document was last published. */ last_publication_date: TimestampField<"filled">; /** * Slugs associated with document. * * @deprecated Slugs are a deprecated feature used before the UID field was * introduced. Migrate to the UID field. For more details, see * https://community.prismic.io/t/what-are-slugs/6493 */ slugs: string[]; /** * Documents that are related to this document. */ linked_documents: unknown[]; /** * Language of document. */ lang: LangEnum; /** * Array to access alternate language versions for document. */ alternate_languages: AlternateLanguage<TypeEnum, LangEnum>[]; } /** * A Prismic document served through REST API v2. * * @see More details on custom types: {@link https://prismic.io/docs/custom-types} */ export interface PrismicDocument<DataInterface extends Record<string, AnyRegularField | GroupField | SliceZone> = Record<string, any>, TypeEnum = string, LangEnum = string> extends PrismicDocumentHeader<TypeEnum, LangEnum> { /** * Data contained in the document. */ data: DataInterface; } /** * A Prismic document served through REST API v2. Does not contain a UID (a * unique identifier). * * @see More details on custom types: {@link https://prismic.io/docs/custom-types} * @see More details on the UID field: {@link https://prismic.io/docs/uid} */ export interface PrismicDocumentWithoutUID<DataInterface extends Record<string, AnyRegularField | GroupField | SliceZone> = Record<string, any>, TypeEnum = string, LangEnum = string> extends PrismicDocument<DataInterface, TypeEnum, LangEnum> { /** * This document does not have a UID field. This property will always be * `null`. * * The unique identifier for the document. Guaranteed to be unique among all * Prismic documents of the same type. */ uid: null; } /** * A Prismic document served through REST API v2. Contains a UID (a unique * identifier). * * @see More details on custom types: {@link https://prismic.io/docs/custom-types} * @see More details on the UID field: {@link https://prismic.io/docs/uid} */ export interface PrismicDocumentWithUID<DataInterface extends Record<string, AnyRegularField | GroupField | SliceZone> = Record<string, any>, TypeEnum = string, LangEnum = string> extends PrismicDocument<DataInterface, TypeEnum, LangEnum> { /** * The unique identifier for the document. Guaranteed to be unique among all * Prismic documents of the same type. */ uid: string; }