@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
15 lines (14 loc) • 1.77 kB
TypeScript
import * as prismic from "@prismicio/client";
import { MockValueStateConfig, MockValueConfig } from "../types";
export type MockLinkValueConfig<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], Model extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField, State extends prismic.FieldState = prismic.FieldState> = {
type?: LinkType;
withTargetBlank?: NonNullable<Model["config"]>["allowTargetBlank"] extends undefined ? false : boolean;
withText?: NonNullable<Model["config"]>["allowText"] extends undefined ? false : boolean;
/**
* A list of potential documents to which the field can be linked.
*/
linkableDocuments?: LinkType extends typeof prismic.LinkType.Document ? prismic.PrismicDocument[] : never;
} & MockValueConfig<Model> & MockValueStateConfig<State>;
type MockLinkValue<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], State extends prismic.FieldState = "filled"> = State extends "empty" ? prismic.EmptyLinkField<LinkType> : LinkType extends typeof prismic.LinkType.Web ? prismic.FilledLinkToWebField : LinkType extends typeof prismic.LinkType.Media ? prismic.FilledLinkToMediaField : LinkType extends typeof prismic.LinkType.Document ? prismic.FilledContentRelationshipField : never;
export declare const link: <LinkType extends "Document" | "Media" | "Web" | "Any" = "Document" | "Media" | "Web" | "Any", Model extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField, State extends prismic.FieldState = "filled">(config: MockLinkValueConfig<LinkType, Model, State>) => MockLinkValue<LinkType, State>;
export {};