@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
72 lines (71 loc) • 2.23 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const prismic = require("@prismicio/client");
const changeCase = require("../../lib/changeCase.cjs");
const createFaker = require("../../lib/createFaker.cjs");
const title = require("../../model/title.cjs");
function _interopNamespaceDefault(e) {
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
if (e) {
for (const k in e) {
if (k !== "default") {
const d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: () => e[k]
});
}
}
}
n.default = e;
return Object.freeze(n);
}
const prismic__namespace = /* @__PURE__ */ _interopNamespaceDefault(prismic);
const patterns = {
short: {
minWords: 1,
maxWords: 3
},
medium: {
minWords: 3,
maxWords: 6
},
long: {
minWords: 6,
maxWords: 12
}
};
const headingNoteTypes = [
prismic__namespace.RichTextNodeType.heading1,
prismic__namespace.RichTextNodeType.heading2,
prismic__namespace.RichTextNodeType.heading3,
prismic__namespace.RichTextNodeType.heading4,
prismic__namespace.RichTextNodeType.heading5,
prismic__namespace.RichTextNodeType.heading6
];
const heading = (config) => {
const faker = config.faker || createFaker.createFaker(config.seed);
const model = config.model || title.title({ faker });
let types = [];
if (model.config) {
if ("single" in model.config && model.config.single) {
types = model.config.single.split(",").filter((type2) => headingNoteTypes.includes(type2));
} else if ("multi" in model.config && model.config.multi) {
types = model.config.multi.split(",").filter((type2) => headingNoteTypes.includes(type2));
}
}
const type = faker.randomElement(types);
if (type) {
const patternKey = config.pattern || faker.randomElement(Object.keys(patterns));
const pattern = patterns[patternKey];
return {
type,
text: changeCase.capitalCase(faker.words(faker.range(pattern.minWords, pattern.maxWords))),
spans: []
};
} else {
return void 0;
}
};
exports.heading = heading;
//# sourceMappingURL=heading.cjs.map