@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
51 lines (50 loc) • 1.76 kB
JavaScript
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