UNPKG

@prismicio/mock

Version:

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

38 lines (31 loc) 1.04 kB
import * as prismic from "@prismicio/client"; import { capitalCase } from "../lib/changeCase"; import { createFaker } from "../lib/createFaker"; import { MockModelConfig } from "../types"; export type MockImageModelConfig<ThumbnailNames extends string = string> = { withConstraint?: boolean; thumbnailNames?: readonly ThumbnailNames[]; } & MockModelConfig; export const image = <ThumbnailNames extends string = string>( config: MockImageModelConfig<ThumbnailNames>, ): prismic.CustomTypeModelImageField<ThumbnailNames> => { const faker = config.faker || createFaker(config.seed); const thumbnails = (config.thumbnailNames || []).map((name) => { return { name, width: faker.range(500, 2000), height: faker.range(500, 2000), }; }); return { type: prismic.CustomTypeModelFieldType.Image, config: { label: capitalCase(faker.word()), constraint: { width: config.withConstraint ? faker.range(500, 2000) : null, height: config.withConstraint ? faker.range(500, 2000) : null, }, thumbnails, }, }; };