UNPKG

@prismicio/mock

Version:

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

44 lines (43 loc) 1.74 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_link = require("../model/link.cjs"); const require_contentRelationship = require("./contentRelationship.cjs"); const require_linkToMedia = require("./linkToMedia.cjs"); let _prismicio_client = require("@prismicio/client"); _prismicio_client = require_runtime.__toESM(_prismicio_client); //#region src/value/link.ts const link = (config) => { const faker = config.faker || require_createFaker.createFaker(config.seed); const type = config.type || faker.randomElement([ _prismicio_client.LinkType.Web, _prismicio_client.LinkType.Document, _prismicio_client.LinkType.Media ]); if (config.state === "empty") return { link_type: type }; else switch (type) { case _prismicio_client.LinkType.Document: return require_contentRelationship.contentRelationship({ faker, state: config.state, linkableDocuments: config.linkableDocuments }); case _prismicio_client.LinkType.Media: return require_linkToMedia.linkToMedia({ faker, state: config.state, withText: config.withText }); case _prismicio_client.LinkType.Web: default: { const model = config.model || require_link.link({ faker }); return { link_type: _prismicio_client.LinkType.Web, url: faker.url(), target: config.withTargetBlank ?? (model.config?.allowTargetBlank && faker.boolean()) ? "_blank" : void 0, ...config.withText ?? (model.config?.allowText && faker.boolean()) ? { text: require_changeCase.sentenceCase(faker.words(2)) } : {} }; } } }; //#endregion exports.link = link; //# sourceMappingURL=link.cjs.map