UNPKG

@prismicio/mock

Version:

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

1 lines 2.56 kB
{"version":3,"file":"sharedSliceVariation.cjs","names":["createFaker","capitalCase","snakeCase","pascalCase","getMockImageData","sentenceCase"],"sources":["../../src/model/sharedSliceVariation.ts"],"sourcesContent":["import type * as prismic from \"@prismicio/client\"\n\nimport { capitalCase, pascalCase, sentenceCase, snakeCase } from \"../lib/changeCase\"\nimport { createFaker } from \"../lib/createFaker\"\nimport { getMockImageData } from \"../lib/getMockImageData\"\nimport type { MockModelConfig, NestedGroupFieldModelMap, SlicePrimaryFieldModelMap } from \"../types\"\n\nexport type MockSharedSliceVariationModelConfig<\n\tID extends string = string,\n\tPrimaryFields extends SlicePrimaryFieldModelMap = SlicePrimaryFieldModelMap,\n\tItemsFields extends NestedGroupFieldModelMap = NestedGroupFieldModelMap,\n> = {\n\tid?: ID\n\tname?: string\n\tprimaryFields?: PrimaryFields\n\titemsFields?: ItemsFields\n} & MockModelConfig\n\nexport const sharedSliceVariation = <\n\tID extends string,\n\tPrimaryFields extends SlicePrimaryFieldModelMap,\n\tItemsFields extends NestedGroupFieldModelMap,\n>(\n\tconfig: MockSharedSliceVariationModelConfig<ID, PrimaryFields, ItemsFields>,\n): prismic.SharedSliceModelVariation<ID, PrimaryFields, ItemsFields> => {\n\tconst faker = config.faker || createFaker(config.seed)\n\n\tlet name: string = config.name || capitalCase(faker.words(faker.range(1, 2)))\n\tlet id: ID = config.id || (snakeCase(name) as ID)\n\n\tif (config.id && !config.name) {\n\t\tname = pascalCase(config.id)\n\t} else if (config.name && !config.id) {\n\t\tid = snakeCase(config.name) as ID\n\t}\n\n\tconst imageData = getMockImageData({ faker })\n\n\treturn {\n\t\tid,\n\t\tname,\n\t\tdescription: sentenceCase(faker.words(faker.range(5, 10))),\n\t\tdocURL: faker.url(),\n\t\tversion: faker.hash(7),\n\t\tprimary: config.primaryFields || ({} as PrimaryFields),\n\t\titems: config.itemsFields || ({} as ItemsFields),\n\t\timageUrl: imageData.url,\n\t}\n}\n"],"mappings":";;;;AAkBA,MAAa,wBAKZ,WACuE;CACvE,MAAM,QAAQ,OAAO,SAASA,oBAAAA,YAAY,OAAO,KAAK;CAEtD,IAAI,OAAe,OAAO,QAAQC,mBAAAA,YAAY,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;CAC7E,IAAI,KAAS,OAAO,MAAOC,mBAAAA,UAAU,KAAK;AAE1C,KAAI,OAAO,MAAM,CAAC,OAAO,KACxB,QAAOC,mBAAAA,WAAW,OAAO,GAAG;UAClB,OAAO,QAAQ,CAAC,OAAO,GACjC,MAAKD,mBAAAA,UAAU,OAAO,KAAK;CAG5B,MAAM,YAAYE,yBAAAA,iBAAiB,EAAE,OAAO,CAAC;AAE7C,QAAO;EACN;EACA;EACA,aAAaC,mBAAAA,aAAa,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC;EAC1D,QAAQ,MAAM,KAAK;EACnB,SAAS,MAAM,KAAK,EAAE;EACtB,SAAS,OAAO,iBAAkB,EAAE;EACpC,OAAO,OAAO,eAAgB,EAAE;EAChC,UAAU,UAAU;EACpB"}