UNPKG

@prismicio/mock

Version:

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

1 lines 1.71 kB
{"version":3,"file":"sliceZone.cjs","sources":["../../../src/model/sliceZone.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockSliceZoneModelConfig<\n\tSlices extends Record<\n\t\tstring,\n\t\tprismic.CustomTypeModelSlice | prismic.CustomTypeModelSharedSlice\n\t> = Record<\n\t\tstring,\n\t\tprismic.CustomTypeModelSlice | prismic.CustomTypeModelSharedSlice\n\t>,\n> = {\n\tchoices?: Slices;\n} & MockModelConfig;\n\nexport const sliceZone = <\n\tSlices extends Record<\n\t\tstring,\n\t\tprismic.CustomTypeModelSlice | prismic.CustomTypeModelSharedSlice\n\t>,\n>(\n\tconfig: MockSliceZoneModelConfig<Slices>,\n): prismic.CustomTypeModelSliceZoneField<Slices> => {\n\tconst labels = {} as NonNullable<\n\t\tNonNullable<\n\t\t\tprismic.CustomTypeModelSliceZoneField<Slices>[\"config\"]\n\t\t>[\"labels\"]\n\t>;\n\n\tfor (const choiceId in config.choices) {\n\t\tconst choice = config.choices[choiceId];\n\n\t\tif (choice.type === prismic.CustomTypeModelSliceType.Slice) {\n\t\t\tlabels[choiceId as unknown as keyof typeof labels] = [];\n\t\t}\n\t}\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Slices,\n\t\tfieldset: \"Slice zone\",\n\t\tconfig: {\n\t\t\tlabels,\n\t\t\tchoices: config.choices || ({} as Slices),\n\t\t},\n\t};\n};\n"],"names":["prismic"],"mappings":";;;;;;;;;;;;;;;;;;;;AAgBa,MAAA,YAAY,CAMxB,WACkD;AAClD,QAAM,SAAS,CAAA;AAMJ,aAAA,YAAY,OAAO,SAAS;AAChC,UAAA,SAAS,OAAO,QAAQ,QAAQ;AAEtC,QAAI,OAAO,SAASA,mBAAQ,yBAAyB,OAAO;AACpD,aAAA,QAA0C,IAAI;IACtD;AAAA,EACD;AAEO,SAAA;AAAA,IACN,MAAMA,mBAAQ,yBAAyB;AAAA,IACvC,UAAU;AAAA,IACV,QAAQ;AAAA,MACP;AAAA,MACA,SAAS,OAAO,WAAY,CAAa;AAAA,IACzC;AAAA,EAAA;AAEH;;"}