import type * as prismic from "@prismicio/client" import { createFaker } from "../lib/createFaker" import type { MockValueConfig, MockValueStateConfig } from "../types" import { heading, type MockRichTextHeadingValueConfig } from "./richText/heading" export type MockTitleValueConfig< Model extends prismic.CustomTypeModelTitleField = prismic.CustomTypeModelTitleField, State extends prismic.FieldState = prismic.FieldState, > = { pattern?: MockRichTextHeadingValueConfig["pattern"] } & MockValueConfig & MockValueStateConfig export type MockTitleValue = prismic.TitleField export const title = < Model extends prismic.CustomTypeModelTitleField = prismic.CustomTypeModelTitleField, State extends prismic.FieldState = "filled", >( config: MockTitleValueConfig, ): MockTitleValue => { const faker = config.faker || createFaker(config.seed) if (config.state === "empty") { return [] as MockTitleValue } else { return [ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion heading({ faker, model: config.model, pattern: config.pattern, })!, ] as MockTitleValue } }