@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
71 lines (70 loc) • 2.87 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const prismic = require("@prismicio/client");
const createFaker = require("../lib/createFaker.cjs");
const slice = require("./slice.cjs");
const sharedSlice = require("./sharedSlice.cjs");
const sliceZone$1 = require("../model/sliceZone.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 sliceZone = (config) => {
var _a;
if (config.state === "empty") {
return [];
} else {
const faker = config.faker || createFaker.createFaker(config.seed);
const model = config.model || sliceZone$1.sliceZone({ faker });
if (((_a = model.config) == null ? void 0 : _a.choices) && Object.keys(model.config.choices).length > 0) {
const itemsCount = config.itemsCount ?? faker.range(1, 6);
return Array(itemsCount).fill(void 0).map(() => {
var _a2, _b, _c, _d;
const choices = ((_a2 = model.config) == null ? void 0 : _a2.choices) && Object.entries(model.config.choices) || [];
const [choiceType, choiceModel] = faker.randomElement(choices);
const choiceLabels = ((_c = (_b = model.config) == null ? void 0 : _b.labels) == null ? void 0 : _c[choiceType]) || [];
const choiceLabel = faker.randomElement(choiceLabels);
switch (choiceModel.type) {
case prismic__namespace.CustomTypeModelSliceType.Slice: {
return slice.slice({
faker,
model: choiceModel,
type: choiceType,
label: choiceLabel ? choiceLabel.name : null,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs
});
}
case prismic__namespace.CustomTypeModelSliceType.SharedSlice: {
const sharedSliceModel = (_d = config.sharedSliceModels) == null ? void 0 : _d.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
if (sharedSliceModel) {
return sharedSlice.sharedSlice({
faker,
model: sharedSliceModel,
primaryFieldConfigs: config.primaryFieldConfigs,
itemsFieldConfigs: config.itemsFieldConfigs
});
}
}
}
}).filter((slice2) => slice2 !== void 0);
} else {
return [];
}
}
};
exports.sliceZone = sliceZone;
//# sourceMappingURL=sliceZone.cjs.map