UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

32 lines (31 loc) 1.33 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; }