UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

51 lines (46 loc) 1.31 kB
import type { AnyRegularField, FieldState } from "./types" import type { GroupField } from "./group" import type { SliceZone } from "./sliceZone" /** * Field for related documents * * @typeParam TypeEnum - Type API ID of the document. * @typeParam LangEnum - Language API ID of the document. * @typeParam DataInterface - Data fields for the document (filled in via * GraphQuery of `fetchLinks`). * @typeParam State - State of the field which determines its shape. */ export type ContentRelationshipField< TypeEnum = string, LangEnum = string, DataInterface extends | Record<string, AnyRegularField | GroupField | SliceZone> | unknown = unknown, State extends FieldState = FieldState, > = State extends "empty" ? EmptyContentRelationshipField : FilledContentRelationshipField<TypeEnum, LangEnum, DataInterface> export type EmptyContentRelationshipField = { link_type: "Any" } /** * Links that refer to documents */ export interface FilledContentRelationshipField< TypeEnum = string, LangEnum = string, DataInterface extends | Record<string, AnyRegularField | GroupField | SliceZone> | unknown = unknown, > { link_type: "Document" id: string uid?: string type: TypeEnum tags: string[] lang: LangEnum url?: string slug?: string isBroken?: boolean data?: DataInterface }