UNPKG

@prismicio/mock

Version:

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

31 lines (24 loc) 990 B
import * as prismic from "@prismicio/client"; import { sentenceCase } from "../lib/changeCase"; import { createFaker } from "../lib/createFaker"; import { 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>; };