@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
44 lines (43 loc) • 1.74 kB
JavaScript
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