UNPKG

@prismicio/mock

Version:

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

71 lines (70 loc) 2.87 kB
"use strict"; 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