UNPKG

@prismicio/mock

Version:

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

51 lines (50 loc) 1.76 kB
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs"); const require_changeCase = require("../../lib/changeCase.cjs"); const require_createFaker = require("../../lib/createFaker.cjs"); const require_title = require("../../model/title.cjs"); let _prismicio_client = require("@prismicio/client"); _prismicio_client = require_runtime.__toESM(_prismicio_client); //#region src/value/richText/heading.ts const patterns = { short: { minWords: 1, maxWords: 3 }, medium: { minWords: 3, maxWords: 6 }, long: { minWords: 6, maxWords: 12 } }; const headingNoteTypes = [ _prismicio_client.RichTextNodeType.heading1, _prismicio_client.RichTextNodeType.heading2, _prismicio_client.RichTextNodeType.heading3, _prismicio_client.RichTextNodeType.heading4, _prismicio_client.RichTextNodeType.heading5, _prismicio_client.RichTextNodeType.heading6 ]; const heading = (config) => { const faker = config.faker || require_createFaker.createFaker(config.seed); const model = config.model || require_title.title({ faker }); let types = []; if (model.config) { if ("single" in model.config && model.config.single) types = model.config.single.split(",").filter((type) => headingNoteTypes.includes(type)); else if ("multi" in model.config && model.config.multi) types = model.config.multi.split(",").filter((type) => headingNoteTypes.includes(type)); } const type = faker.randomElement(types); if (type) { const pattern = patterns[config.pattern || faker.randomElement(Object.keys(patterns))]; return { type, text: require_changeCase.capitalCase(faker.words(faker.range(pattern.minWords, pattern.maxWords))), spans: [] }; } else return; }; //#endregion exports.heading = heading; //# sourceMappingURL=heading.cjs.map