@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
1 lines • 2.74 kB
Source Map (JSON)
{"version":3,"file":"sharedSliceVariation.cjs","sources":["../../../src/value/sharedSliceVariation.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { MockValueConfig, ModelValue } from \"../types\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateFieldId } from \"../lib/generateFieldId\";\nimport {\n\tvalueForModelMap,\n\tValueForModelMapConfigs,\n} from \"../lib/valueForModelMap\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockSharedSliceVariationValueConfig<\n\tModel extends\n\t\tprismic.SharedSliceModelVariation = prismic.SharedSliceModelVariation,\n> = {\n\ttype?: string;\n\tlabel?: string;\n\titemsCount?: number;\n\tprimaryFieldConfigs?: ValueForModelMapConfigs;\n\titemsFieldConfigs?: ValueForModelMapConfigs;\n} & MockValueConfig<Model>;\n\nexport const sharedSliceVariation = <\n\tModel extends\n\t\tprismic.SharedSliceModelVariation = prismic.SharedSliceModelVariation,\n>(\n\tconfig: MockSharedSliceVariationValueConfig<Model>,\n): ModelValue<Model> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst model = config.model || modelGen.sharedSliceVariation({ faker });\n\n\tconst sliceType = config.type ?? generateFieldId({ faker });\n\n\tconst itemsCount =\n\t\tmodel.items && Object.keys(model.items).length > 0\n\t\t\t? config.itemsCount ?? faker.range(1, 6)\n\t\t\t: 0;\n\n\treturn {\n\t\tid: faker.hash(11),\n\t\tslice_type: sliceType,\n\t\tslice_label: null,\n\t\tvariation: model.id,\n\t\tversion: faker.hash(7),\n\t\tprimary: valueForModelMap({\n\t\t\tfaker,\n\t\t\tmap: model.primary || {},\n\t\t\tconfigs: config.primaryFieldConfigs,\n\t\t}),\n\t\titems: Array(itemsCount)\n\t\t\t.fill(undefined)\n\t\t\t.map(() => {\n\t\t\t\treturn valueForModelMap({\n\t\t\t\t\tfaker,\n\t\t\t\t\tmap: model.items || {},\n\t\t\t\t\tconfigs: config.itemsFieldConfigs,\n\t\t\t\t});\n\t\t\t}),\n\t} as ModelValue<Model>;\n};\n"],"names":["createFaker","modelGen.sharedSliceVariation","generateFieldId","valueForModelMap"],"mappings":";;;;;;AAwBa,MAAA,uBAAuB,CAInC,WACsB;AACtB,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,QAAQ,OAAO,SAASC,uBAAAA,qBAA8B,EAAE,OAAO;AAErE,QAAM,YAAY,OAAO,QAAQC,gBAAAA,gBAAgB,EAAE,OAAO;AAE1D,QAAM,aACL,MAAM,SAAS,OAAO,KAAK,MAAM,KAAK,EAAE,SAAS,IAC9C,OAAO,cAAc,MAAM,MAAM,GAAG,CAAC,IACrC;AAEG,SAAA;AAAA,IACN,IAAI,MAAM,KAAK,EAAE;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW,MAAM;AAAA,IACjB,SAAS,MAAM,KAAK,CAAC;AAAA,IACrB,SAASC,iBAAAA,iBAAiB;AAAA,MACzB;AAAA,MACA,KAAK,MAAM,WAAW,CAAE;AAAA,MACxB,SAAS,OAAO;AAAA,IAAA,CAChB;AAAA,IACD,OAAO,MAAM,UAAU,EACrB,KAAK,MAAS,EACd,IAAI,MAAK;AACT,aAAOA,kCAAiB;AAAA,QACvB;AAAA,QACA,KAAK,MAAM,SAAS,CAAE;AAAA,QACtB,SAAS,OAAO;AAAA,MAAA,CAChB;AAAA,IAAA,CACD;AAAA,EAAA;AAEJ;;"}