UNPKG

@prismicio/mock

Version:

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

31 lines (25 loc) 1.01 kB
import type * as prismic from "@prismicio/client" import { createFaker } from "../lib/createFaker" import type { 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> }