UNPKG

@prismicio/mock

Version:

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

35 lines (28 loc) 1.02 kB
import * as prismic from "@prismicio/client"; import { createFaker } from "../lib/createFaker"; import { MockValueStateConfig, MockValueConfig } from "../types"; export type MockGeoPointValueConfig< Model extends prismic.CustomTypeModelGeoPointField = prismic.CustomTypeModelGeoPointField, State extends prismic.FieldState = prismic.FieldState, > = MockValueConfig<Model> & MockValueStateConfig<State>; export type MockGeoPointValue< State extends prismic.FieldState = prismic.FieldState, > = prismic.GeoPointField<State>; export const geoPoint = < Model extends prismic.CustomTypeModelGeoPointField = prismic.CustomTypeModelGeoPointField, State extends prismic.FieldState = "filled", >( config: MockGeoPointValueConfig<Model, State>, ): MockGeoPointValue<State> => { const faker = config.faker || createFaker(config.seed); return ( config.state === "empty" ? {} : { longitude: faker.rangeFloat(-180, 180), latitude: faker.rangeFloat(-90, 90), } ) as MockGeoPointValue<State>; };