UNPKG

@prismicio/mock

Version:

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

47 lines (46 loc) 2.09 kB
const require_runtime = require("../_virtual/_rolldown/runtime.cjs"); const require_createFaker = require("../lib/createFaker.cjs"); const require_sliceZone = require("../model/sliceZone.cjs"); const require_slice = require("./slice.cjs"); const require_sharedSlice = require("./sharedSlice.cjs"); let _prismicio_client = require("@prismicio/client"); _prismicio_client = require_runtime.__toESM(_prismicio_client); //#region src/value/sliceZone.ts const sliceZone = (config) => { if (config.state === "empty") return []; else { const faker = config.faker || require_createFaker.createFaker(config.seed); const model = config.model || require_sliceZone.sliceZone({ faker }); if (model.config?.choices && Object.keys(model.config.choices).length > 0) { const itemsCount = config.itemsCount ?? faker.range(1, 6); return Array(itemsCount).fill(void 0).map(() => { const choices = model.config?.choices && Object.entries(model.config.choices) || []; const [choiceType, choiceModel] = faker.randomElement(choices); const choiceLabels = model.config?.labels?.[choiceType] || []; const choiceLabel = faker.randomElement(choiceLabels); switch (choiceModel.type) { case _prismicio_client.CustomTypeModelSliceType.Slice: return require_slice.slice({ faker, model: choiceModel, type: choiceType, label: choiceLabel ? choiceLabel.name : null, primaryFieldConfigs: config.primaryFieldConfigs, itemsFieldConfigs: config.itemsFieldConfigs }); case _prismicio_client.CustomTypeModelSliceType.SharedSlice: { const sharedSliceModel = config.sharedSliceModels?.find((sharedSliceModel) => sharedSliceModel.id === choiceType); if (sharedSliceModel) return require_sharedSlice.sharedSlice({ faker, model: sharedSliceModel, primaryFieldConfigs: config.primaryFieldConfigs, itemsFieldConfigs: config.itemsFieldConfigs }); } } }).filter((slice) => slice !== void 0); } else return []; } }; //#endregion exports.sliceZone = sliceZone; //# sourceMappingURL=sliceZone.cjs.map