UNPKG

@prismicio/mock

Version:

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

42 lines (41 loc) 1.39 kB
import { sentenceCase } from "../lib/changeCase.js"; import { createFaker } from "../lib/createFaker.js"; import { link as link$1 } from "../model/link.js"; import { contentRelationship } from "./contentRelationship.js"; import { linkToMedia } from "./linkToMedia.js"; import * as prismic from "@prismicio/client"; //#region src/value/link.ts const link = (config) => { const faker = config.faker || createFaker(config.seed); const type = config.type || faker.randomElement([ prismic.LinkType.Web, prismic.LinkType.Document, prismic.LinkType.Media ]); if (config.state === "empty") return { link_type: type }; else switch (type) { case prismic.LinkType.Document: return contentRelationship({ faker, state: config.state, linkableDocuments: config.linkableDocuments }); case prismic.LinkType.Media: return linkToMedia({ faker, state: config.state, withText: config.withText }); case prismic.LinkType.Web: default: { const model = config.model || link$1({ faker }); return { link_type: prismic.LinkType.Web, url: faker.url(), target: config.withTargetBlank ?? (model.config?.allowTargetBlank && faker.boolean()) ? "_blank" : void 0, ...config.withText ?? (model.config?.allowText && faker.boolean()) ? { text: sentenceCase(faker.words(2)) } : {} }; } } }; //#endregion export { link }; //# sourceMappingURL=link.js.map