UNPKG

@prismicio/mock

Version:

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

1 lines 2.02 kB
{"version":3,"file":"select.cjs","sources":["../../../src/value/select.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockSelectValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelSelectField = prismic.CustomTypeModelSelectField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockSelectValue<\n\tModel extends\n\t\tprismic.CustomTypeModelSelectField = prismic.CustomTypeModelSelectField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.SelectField<\n\tNonNullable<NonNullable<Model[\"config\"]>[\"options\"]>[number],\n\tState\n>;\n\nexport const select = <\n\tModel extends\n\t\tprismic.CustomTypeModelSelectField = prismic.CustomTypeModelSelectField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockSelectValueConfig<Model, State>,\n): MockSelectValue<Model, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst model = config.model || modelGen.select({ faker });\n\tconst defaultValue = model.config?.default_value;\n\tconst options = model.config?.options || [];\n\n\tif (config.state === \"empty\") {\n\t\treturn null as MockSelectValue<Model, State>;\n\t} else {\n\t\treturn (\n\t\t\ttypeof defaultValue === \"string\" && faker.boolean()\n\t\t\t\t? defaultValue\n\t\t\t\t: faker.randomElement(options)\n\t\t) as MockSelectValue<Model, State>;\n\t}\n};\n"],"names":["createFaker","modelGen.select"],"mappings":";;;;AAuBa,MAAA,SAAS,CAKrB,WACkC;;AAClC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,QAAQ,OAAO,SAASC,SAAAA,OAAgB,EAAE,OAAO;AACjD,QAAA,gBAAe,WAAM,WAAN,mBAAc;AACnC,QAAM,YAAU,WAAM,WAAN,mBAAc,YAAW,CAAA;AAErC,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,EAAA,OACD;AAEL,WAAA,OAAO,iBAAiB,YAAY,MAAM,YACvC,eACA,MAAM,cAAc,OAAO;AAAA,EAEhC;AACD;;"}