@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
34 lines (33 loc) • 1.35 kB
JavaScript
const require_changeCase = require("../lib/changeCase.cjs");
const require_createFaker = require("../lib/createFaker.cjs");
const require_valueForModelMap = require("../lib/valueForModelMap.cjs");
const require_slice = require("../model/slice.cjs");
const require_generateFieldId = require("../lib/generateFieldId.cjs");
//#region src/value/slice.ts
const slice = (config) => {
const faker = config.faker || require_createFaker.createFaker(config.seed);
const model = config.model || require_slice.slice({ faker });
const sliceType = config.type ?? require_generateFieldId.generateFieldId({ faker });
const sliceLabel = config.label !== void 0 ? config.label : require_changeCase.capitalCase(faker.words(faker.range(1, 2)));
const itemsCount = model.repeat && Object.keys(model.repeat).length > 0 ? config.itemsCount ?? faker.range(1, 6) : 0;
return {
id: faker.hash(11),
slice_type: sliceType,
slice_label: sliceLabel,
primary: require_valueForModelMap.valueForModelMap({
faker,
map: model["non-repeat"] || {},
configs: config.primaryFieldConfigs
}),
items: Array(itemsCount).fill(void 0).map(() => {
return require_valueForModelMap.valueForModelMap({
faker,
map: model.repeat || {},
configs: config.itemsFieldConfigs
});
})
};
};
//#endregion
exports.slice = slice;
//# sourceMappingURL=slice.cjs.map