UNPKG

@prismicio/mock

Version:

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

41 lines (33 loc) 1.13 kB
import * as prismic from "@prismicio/client"; import { createFaker } from "../lib/createFaker"; import { MockValueStateConfig, MockValueConfig } from "../types"; import { MockTimestampValueConfig, timestamp } from "./timestamp"; export type MockDateValueConfig< Model extends prismic.CustomTypeModelDateField = prismic.CustomTypeModelDateField, State extends prismic.FieldState = prismic.FieldState, > = Pick<MockTimestampValueConfig, "after" | "before"> & MockValueConfig<Model> & MockValueStateConfig<State>; export type MockDateValue< State extends prismic.FieldState = prismic.FieldState, > = prismic.DateField<State>; export const date = < Model extends prismic.CustomTypeModelDateField = prismic.CustomTypeModelDateField, State extends prismic.FieldState = "filled", >( config: MockDateValueConfig<Model, State>, ): MockDateValue<State> => { const faker = config.faker || createFaker(config.seed); return ( config.state === "empty" ? null : timestamp({ faker, after: config.after, before: config.before, state: "filled", }).split("T")[0] ) as MockDateValue<State>; };