@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
192 lines (191 loc) • 5.54 kB
JavaScript
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const prismic = require("@prismicio/client");
const createFaker = require("./createFaker.cjs");
const sliceZone = require("../value/sliceZone.cjs");
const group = require("../value/group.cjs");
const uid = require("../value/uid.cjs");
const integration = require("../value/integration.cjs");
const title = require("../value/title.cjs");
const index = require("../value/richText/index.cjs");
const timestamp = require("../value/timestamp.cjs");
const select = require("../value/select.cjs");
const number = require("../value/number.cjs");
const keyText = require("../value/keyText.cjs");
const image = require("../value/image.cjs");
const geoPoint = require("../value/geoPoint.cjs");
const embed = require("../value/embed.cjs");
const date = require("../value/date.cjs");
const link = require("../value/link.cjs");
const linkToMedia = require("../value/linkToMedia.cjs");
const contentRelationship = require("../value/contentRelationship.cjs");
const color = require("../value/color.cjs");
const boolean = require("../value/boolean.cjs");
function _interopNamespaceDefault(e) {
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
if (e) {
for (const k in e) {
if (k !== "default") {
const d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: () => e[k]
});
}
}
}
n.default = e;
return Object.freeze(n);
}
const prismic__namespace = /* @__PURE__ */ _interopNamespaceDefault(prismic);
const valueForModel = (config) => {
var _a;
const faker = config.faker || createFaker.createFaker(config.seed);
const model = config.model;
switch (model.type) {
case prismic__namespace.CustomTypeModelFieldType.Boolean: {
return boolean.boolean({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Color: {
return color.color({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Link: {
switch ((_a = model.config) == null ? void 0 : _a.select) {
case prismic__namespace.CustomTypeModelLinkSelectType.Document: {
return contentRelationship.contentRelationship({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelLinkSelectType.Media: {
return linkToMedia.linkToMedia({
faker,
model,
...config.config
});
}
default: {
return link.link({
faker,
model,
...config.config
});
}
}
}
case prismic__namespace.CustomTypeModelFieldType.Date: {
return date.date({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Embed: {
return embed.embed({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.GeoPoint: {
return geoPoint.geoPoint({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Image: {
return image.image({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Text: {
return keyText.keyText({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Number: {
return number.number({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Select: {
return select.select({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Timestamp: {
return timestamp.timestamp({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.StructuredText: {
if (model.config && "single" in model.config && model.config.single && model.config.single.split(",").every((element) => /heading[1-6]/.test(element.trim()))) {
return title.title({
faker,
model,
...config.config
});
} else {
return index.richText({
faker,
model,
...config.config
});
}
}
case prismic__namespace.CustomTypeModelFieldType.Integration: {
return integration.integration({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.UID: {
return uid.uid({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.Group: {
return group.group({
faker,
model,
...config.config
});
}
case prismic__namespace.CustomTypeModelFieldType.LegacySlices:
case prismic__namespace.CustomTypeModelFieldType.Slices: {
return sliceZone.sliceZone({
faker,
model,
...config.config
});
}
default: {
throw new Error(`The "${model.type}" field type is not supported in @prismicio/mock.`);
}
}
};
exports.valueForModel = valueForModel;
//# sourceMappingURL=valueForModel.cjs.map