@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
1 lines • 2.67 kB
Source Map (JSON)
{"version":3,"file":"linkToMedia.cjs","names":["createFaker","prismic","snakeCase","sentenceCase"],"sources":["../../src/value/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\"\n\nimport { sentenceCase, snakeCase } from \"../lib/changeCase\"\nimport { createFaker } from \"../lib/createFaker\"\nimport * as modelGen from \"../model\"\nimport type { MockValueStateConfig, MockValueConfig } from \"../types\"\n\nexport type MockLinkToMediaValueConfig<\n\tModel extends prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\twithText?: NonNullable<Model[\"config\"]>[\"allowText\"] extends undefined ? false : boolean\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>\n\nexport type MockLinkToMediaValue<State extends prismic.FieldState = prismic.FieldState> =\n\tprismic.LinkToMediaField<State>\n\nexport const linkToMedia = <\n\tModel extends prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkToMediaValueConfig<Model, State>,\n): MockLinkToMediaValue<State> => {\n\tconst faker = config.faker || createFaker(config.seed)\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t} as MockLinkToMediaValue<State>\n\t} else {\n\t\tconst model = config.model || modelGen.link({ faker })\n\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t\tid: faker.hash(11),\n\t\t\tname: `${snakeCase(faker.words(faker.range(1, 2)))}.example`,\n\t\t\tkind: snakeCase(faker.word()),\n\t\t\turl: faker.url(),\n\t\t\tsize: faker.range(500, 3000).toString(),\n\t\t\theight: faker.range(500, 3000).toString(),\n\t\t\twidth: faker.range(500, 3000).toString(),\n\t\t\t...((config.withText ?? (model.config?.allowText && faker.boolean()))\n\t\t\t\t? { text: sentenceCase(faker.words(2)) }\n\t\t\t\t: {}),\n\t\t} as MockLinkToMediaValue<State>\n\t}\n}\n"],"mappings":";;;;;;;AAkBA,MAAa,eAIZ,WACiC;CACjC,MAAM,QAAQ,OAAO,SAASA,oBAAAA,YAAY,OAAO,KAAK;AAEtD,KAAI,OAAO,UAAU,QACpB,QAAO,EACN,WAAWC,kBAAQ,SAAS,OAC5B;MACK;EACN,MAAM,QAAQ,OAAO,SAAA,aAAA,KAAuB,EAAE,OAAO,CAAC;AAEtD,SAAO;GACN,WAAWA,kBAAQ,SAAS;GAC5B,IAAI,MAAM,KAAK,GAAG;GAClB,MAAM,GAAGC,mBAAAA,UAAU,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;GACnD,MAAMA,mBAAAA,UAAU,MAAM,MAAM,CAAC;GAC7B,KAAK,MAAM,KAAK;GAChB,MAAM,MAAM,MAAM,KAAK,IAAK,CAAC,UAAU;GACvC,QAAQ,MAAM,MAAM,KAAK,IAAK,CAAC,UAAU;GACzC,OAAO,MAAM,MAAM,KAAK,IAAK,CAAC,UAAU;GACxC,GAAK,OAAO,aAAa,MAAM,QAAQ,aAAa,MAAM,SAAS,IAChE,EAAE,MAAMC,mBAAAA,aAAa,MAAM,MAAM,EAAE,CAAC,EAAE,GACtC,EAAE;GACL"}