UNPKG

@prismicio/mock

Version:

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

51 lines (50 loc) 2.71 kB
const require_runtime = require("../_virtual/_rolldown/runtime.cjs"); const require_createFaker = require("./createFaker.cjs"); const require_valueForModel = require("./valueForModel.cjs"); let _prismicio_client = require("@prismicio/client"); _prismicio_client = require_runtime.__toESM(_prismicio_client); //#region src/lib/valueForModelMap.ts const getValueConfigType = (model) => { switch (model.type) { case _prismicio_client.CustomTypeModelFieldType.Boolean: return "boolean"; case _prismicio_client.CustomTypeModelFieldType.Color: return "color"; case _prismicio_client.CustomTypeModelFieldType.Date: return "date"; case _prismicio_client.CustomTypeModelFieldType.Embed: return "embed"; case _prismicio_client.CustomTypeModelFieldType.GeoPoint: return "geoPoint"; case _prismicio_client.CustomTypeModelFieldType.Group: return "group"; case _prismicio_client.CustomTypeModelFieldType.Image: return "image"; case _prismicio_client.CustomTypeModelFieldType.Link: switch (model.config?.select) { case _prismicio_client.CustomTypeModelLinkSelectType.Document: return "contentRelationship"; case _prismicio_client.CustomTypeModelLinkSelectType.Media: return "linkToMedia"; default: return "link"; } case _prismicio_client.CustomTypeModelFieldType.Number: return "number"; case _prismicio_client.CustomTypeModelFieldType.Select: return "select"; case _prismicio_client.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"; else return "richText"; case _prismicio_client.CustomTypeModelFieldType.Text: return "keyText"; case _prismicio_client.CustomTypeModelFieldType.Timestamp: return "timestamp"; case _prismicio_client.CustomTypeModelFieldType.UID: return "uid"; case _prismicio_client.CustomTypeModelFieldType.Integration: return "integration"; case _prismicio_client.CustomTypeModelFieldType.Slices: return "sliceZone"; default: throw new Error(`The "${model.type}" field type is not supported in @prismicio/mock.`); } }; const valueForModelMap = (config) => { const faker = config.faker || require_createFaker.createFaker(config.seed); const result = {}; for (const fieldId in config.map) { const fieldModel = config.map[fieldId]; const fieldConfigType = getValueConfigType(fieldModel); const fieldConfig = config.configs?.[fieldConfigType]; result[fieldId] = require_valueForModel.valueForModel({ faker, model: fieldModel, config: fieldConfig }); } return result; }; //#endregion exports.valueForModelMap = valueForModelMap; //# sourceMappingURL=valueForModelMap.cjs.map