UNPKG

@prismicio/mock

Version:

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

66 lines (65 loc) 2.6 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const prismic = require("@prismicio/client"); const changeCase = require("../lib/changeCase.cjs"); const createFaker = require("../lib/createFaker.cjs"); const generateTags = require("../lib/generateTags.cjs"); const valueForModelMap = require("../lib/valueForModelMap.cjs"); const timestamp = require("./timestamp.cjs"); const buildAlternativeLanguage = require("../lib/buildAlternativeLanguage.cjs"); const customType$1 = require("../model/customType.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 customType = (config) => { const faker = config.faker || createFaker.createFaker(config.seed); const model = config.model || customType$1.customType({ faker }); const fieldModelsMap = Object.assign({}, ...Object.values(model.json)); const dataFieldModelsMap = {}; for (const key in fieldModelsMap) { const fieldModel = fieldModelsMap[key]; if (fieldModel.type !== prismic__namespace.CustomTypeModelFieldType.UID) { dataFieldModelsMap[key] = fieldModel; } } const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === prismic__namespace.CustomTypeModelFieldType.UID); const withURL = config.withURL ?? true; const alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) => buildAlternativeLanguage.buildAlternativeLanguage({ document: alternateLanguageDocument })); return { type: model.id, id: faker.hash(7), uid: hasUID ? changeCase.snakeCase(faker.words(faker.range(1, 3))) : null, url: withURL ? faker.url() : null, href: faker.url(), lang: faker.word(), tags: generateTags.generateTags({ faker }), slugs: [], linked_documents: [], alternate_languages: alternateLanguages, first_publication_date: timestamp.timestamp({ faker }), last_publication_date: timestamp.timestamp({ faker }), data: valueForModelMap.valueForModelMap({ faker, map: dataFieldModelsMap, configs: config.configs }) }; }; exports.customType = customType; //# sourceMappingURL=customType.cjs.map