UNPKG

@prismicio/mock

Version:

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

52 lines (51 loc) 1.61 kB
import * as prismic from "@prismicio/client"; import { sentenceCase } from "../lib/changeCase.js"; import { createFaker } from "../lib/createFaker.js"; import { contentRelationship } from "./contentRelationship.js"; import { linkToMedia } from "./linkToMedia.js"; import { link as link$1 } from "../model/link.js"; const link = (config) => { var _a, _b; 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 ?? (((_a = model.config) == null ? void 0 : _a.allowTargetBlank) && faker.boolean()) ? "_blank" : void 0, ...config.withText ?? (((_b = model.config) == null ? void 0 : _b.allowText) && faker.boolean()) ? { text: sentenceCase(faker.words(2)) } : {} }; } } } }; export { link }; //# sourceMappingURL=link.js.map