UNPKG

@prismicio/mock

Version:

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

47 lines (46 loc) 2.24 kB
const require_runtime = require("../_virtual/_rolldown/runtime.cjs"); const require_changeCase = require("../lib/changeCase.cjs"); const require_createFaker = require("../lib/createFaker.cjs"); const require_generateTags = require("../lib/generateTags.cjs"); const require_buildAlternativeLanguage = require("../lib/buildAlternativeLanguage.cjs"); const require_valueForModelMap = require("../lib/valueForModelMap.cjs"); const require_customType = require("../model/customType.cjs"); const require_timestamp = require("./timestamp.cjs"); let _prismicio_client = require("@prismicio/client"); _prismicio_client = require_runtime.__toESM(_prismicio_client); //#region src/value/customType.ts const customType = (config) => { const faker = config.faker || require_createFaker.createFaker(config.seed); const model = config.model || require_customType.customType({ faker }); const fieldModelsMap = Object.assign({}, ...Object.values(model.json)); const dataFieldModelsMap = {}; for (const key in fieldModelsMap) { const fieldModel = fieldModelsMap[key]; if (fieldModel.type !== _prismicio_client.CustomTypeModelFieldType.UID) dataFieldModelsMap[key] = fieldModel; } const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === _prismicio_client.CustomTypeModelFieldType.UID); const withURL = config.withURL ?? true; const alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) => require_buildAlternativeLanguage.buildAlternativeLanguage({ document: alternateLanguageDocument })); return { type: model.id, id: faker.hash(7), uid: hasUID ? require_changeCase.snakeCase(faker.words(faker.range(1, 3))) : null, url: withURL ? faker.url() : null, href: faker.url(), lang: faker.word(), tags: require_generateTags.generateTags({ faker }), slugs: [], linked_documents: [], alternate_languages: alternateLanguages, first_publication_date: require_timestamp.timestamp({ faker }), last_publication_date: require_timestamp.timestamp({ faker }), data: require_valueForModelMap.valueForModelMap({ faker, map: dataFieldModelsMap, configs: config.configs }) }; }; //#endregion exports.customType = customType; //# sourceMappingURL=customType.cjs.map