@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
34 lines (33 loc) • 2.04 kB
JavaScript
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
const require_createFaker = require("../lib/createFaker.cjs");
const require_generateTags = require("../lib/generateTags.cjs");
const require_contentRelationship = require("../model/contentRelationship.cjs");
const require_customType = require("./customType.cjs");
const require_buildContentRelationshipField = require("../lib/buildContentRelationshipField.cjs");
const require_generateCustomTypeId = require("../lib/generateCustomTypeId.cjs");
let _prismicio_client = require("@prismicio/client");
_prismicio_client = require_runtime.__toESM(_prismicio_client);
//#region src/value/contentRelationship.ts
const contentRelationship = (config) => {
const faker = config.faker || require_createFaker.createFaker(config.seed);
if (config.state === "empty") return { link_type: _prismicio_client.LinkType.Document };
else {
const model = config.model || require_contentRelationship.contentRelationship({ faker });
const linkableDocuments = config.linkableDocuments ? config.linkableDocuments.filter((document) => {
let shouldKeep = true;
if (model.config?.customtypes) shouldKeep = shouldKeep && model.config.customtypes.includes(document.type);
if (model.config?.tags) shouldKeep = shouldKeep && model.config.tags.some((tag) => document.tags.includes(tag));
return shouldKeep;
}) : [{
...require_customType.customType({ faker }),
type: model.config?.customtypes ? faker.randomElement(model.config.customtypes) : require_generateCustomTypeId.generateCustomTypeId({ faker }),
tags: model.config?.tags ? faker.randomElements(model.config.tags) : require_generateTags.generateTags({ faker })
}];
const document = faker.randomElement(linkableDocuments);
if (!document) throw new Error("A linkable document could not be found.");
return require_buildContentRelationshipField.buildContentRelationshipField({ document });
}
};
//#endregion
exports.contentRelationship = contentRelationship;
//# sourceMappingURL=contentRelationship.cjs.map