UNPKG

@prismicio/mock

Version:

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

1 lines 2.18 kB
{"version":3,"file":"group.cjs","sources":["../../../src/value/group.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport {\n\tvalueForModelMap,\n\tValueForModelMapConfigs,\n} from \"../lib/valueForModelMap\";\n\nimport { MockValueConfig, MockValueStateConfig, ModelValue } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockGroupValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelGroupField = prismic.CustomTypeModelGroupField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\titemsCount?: State extends \"empty\" ? 0 : number;\n\tconfigs?: ValueForModelMapConfigs;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\nexport type MockGroupValue<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.DateField<State>;\n\nexport const group = <\n\tModel extends\n\t\tprismic.CustomTypeModelGroupField = prismic.CustomTypeModelGroupField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockGroupValueConfig<Model, State>,\n): ModelValue<Model, State> => {\n\tif (config.state === \"empty\") {\n\t\treturn [] as ModelValue<Model, State>;\n\t} else {\n\t\tconst faker = config.faker || createFaker(config.seed);\n\n\t\tconst model = config.model || modelGen.group({ faker });\n\n\t\tconst itemsCount = config.itemsCount ?? faker.range(1, 6);\n\n\t\treturn 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.config?.fields || {},\n\t\t\t\t\tconfigs: config.configs,\n\t\t\t\t});\n\t\t\t}) as ModelValue<Model, State>;\n\t}\n};\n"],"names":["createFaker","modelGen.group","valueForModelMap"],"mappings":";;;;;AA0Ba,MAAA,QAAQ,CAKpB,WAC6B;AACzB,MAAA,OAAO,UAAU,SAAS;AAC7B,WAAO;SACD;AACN,UAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,UAAM,QAAQ,OAAO,SAASC,QAAAA,MAAe,EAAE,OAAO;AAEtD,UAAM,aAAa,OAAO,cAAc,MAAM,MAAM,GAAG,CAAC;AAExD,WAAO,MAAM,UAAU,EACrB,KAAK,MAAS,EACd,IAAI,MAAK;;AACT,aAAOC,kCAAiB;AAAA,QACvB;AAAA,QACA,OAAK,WAAM,WAAN,mBAAc,WAAU,CAAE;AAAA,QAC/B,SAAS,OAAO;AAAA,MAAA,CAChB;AAAA,IAAA,CACD;AAAA,EACH;AACD;;"}