UNPKG

@prismicio/mock

Version:

Generate mock Prismic documents, fields, Slices, and models for development and testing environments

25 lines (19 loc) 978 B
import type * as prismic from "@prismicio/client" import { sentenceCase } from "../lib/changeCase" import { createFaker } from "../lib/createFaker" import type { MockValueStateConfig, MockValueConfig } from "../types" export type MockKeyTextValueConfig< Model extends prismic.CustomTypeModelKeyTextField = prismic.CustomTypeModelKeyTextField, State extends prismic.FieldState = prismic.FieldState, > = MockValueConfig<Model> & MockValueStateConfig<State> export type MockKeyTextValue<State extends prismic.FieldState = prismic.FieldState> = prismic.KeyTextField<State> export const keyText = < Model extends prismic.CustomTypeModelKeyTextField = prismic.CustomTypeModelKeyTextField, State extends prismic.FieldState = "filled", >( config: MockKeyTextValueConfig<Model, State>, ): MockKeyTextValue<State> => { const faker = config.faker || createFaker(config.seed) return (config.state === "empty" ? null : sentenceCase(faker.words(3))) as MockKeyTextValue<State> }