UNPKG

@prismicio/mock

Version:

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

44 lines (36 loc) 1.04 kB
import * as prismic from "@prismicio/client" import { sentenceCase } from "../../lib/changeCase" import { createFaker } from "../../lib/createFaker" import type { MockRichTextValueConfig } from "../../types" const patterns = { short: { sentenceCount: 2, }, medium: { sentenceCount: 6, }, long: { sentenceCount: 12, }, } as const type MockRichTextPreformattedValueConfig = { pattern?: keyof typeof patterns } & MockRichTextValueConfig export const preformatted = ( config: MockRichTextPreformattedValueConfig, ): prismic.RTPreformattedNode | undefined => { const faker = config.faker || createFaker(config.seed) const patternKey = config.pattern || faker.randomElement(Object.keys(patterns) as (keyof typeof patterns)[]) const pattern = patterns[patternKey] // TODO: Use code, not lorem ipsum. const text = Array.from( { length: pattern.sentenceCount }, () => sentenceCase(faker.words(faker.range(5, 15))) + ".", ).join(" ") return { type: prismic.RichTextNodeType.preformatted, text, spans: [], } }