import * as prismic from "@prismicio/client" import { capitalCase, sentenceCase } from "../lib/changeCase" import { createFaker } from "../lib/createFaker" import type { MockModelConfig } from "../types" type MockLinkToMediaModel = prismic.CustomTypeModelLinkToMediaField & { config: AllowText extends true ? { allowText: true } : { allowText?: undefined } } export type MockLinkToMediaModelConfig = MockModelConfig & { allowText?: AllowText } export const linkToMedia = ( config: MockLinkToMediaModelConfig, ): MockLinkToMediaModel => { const faker = config.faker || createFaker(config.seed) return { type: prismic.CustomTypeModelFieldType.Link, config: { label: capitalCase(faker.word()), placeholder: sentenceCase(faker.words(3)), select: prismic.CustomTypeModelLinkSelectType.Media, allowText: ("allowText" in config ? config.allowText : faker.boolean()) || undefined, }, } as MockLinkToMediaModel }