@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
1 lines • 1.54 kB
Source Map (JSON)
{"version":3,"file":"sliceZone.cjs","names":["prismic"],"sources":["../../src/model/sliceZone.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\"\n\nimport type { MockModelConfig } from \"../types\"\n\nexport type MockSliceZoneModelConfig<\n\tSlices extends Record<string, prismic.CustomTypeModelSlice | prismic.CustomTypeModelSharedSlice> =\n\t\tRecord<string, prismic.CustomTypeModelSlice | prismic.CustomTypeModelSharedSlice>,\n> = {\n\tchoices?: Slices\n} & MockModelConfig\n\nexport const sliceZone = <\n\tSlices extends Record<string, prismic.CustomTypeModelSlice | prismic.CustomTypeModelSharedSlice>,\n>(\n\tconfig: MockSliceZoneModelConfig<Slices>,\n): prismic.CustomTypeModelSliceZoneField<Slices> => {\n\tconst labels = {} as NonNullable<\n\t\tNonNullable<prismic.CustomTypeModelSliceZoneField<Slices>[\"config\"]>[\"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"],"mappings":";;;;AAWA,MAAa,aAGZ,WACmD;CACnD,MAAM,SAAS,EAAE;AAIjB,MAAK,MAAM,YAAY,OAAO,QAG7B,KAFe,OAAO,QAAQ,UAEnB,SAASA,kBAAQ,yBAAyB,MACpD,QAAO,YAA8C,EAAE;AAIzD,QAAO;EACN,MAAMA,kBAAQ,yBAAyB;EACvC,UAAU;EACV,QAAQ;GACP;GACA,SAAS,OAAO,WAAY,EAAE;GAC9B;EACD"}