UNPKG

@prismicio/mock

Version:

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

1 lines 2.79 kB
{"version":3,"file":"linkToMedia.cjs","sources":["../../../src/value/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { sentenceCase, snakeCase } from \"../lib/changeCase\";\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockLinkToMediaValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\twithText?: NonNullable<Model[\"config\"]>[\"allowText\"] extends undefined\n\t\t? false\n\t\t: boolean;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkToMediaValue<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.LinkToMediaField<State>;\n\nexport const linkToMedia = <\n\tModel extends\n\t\tprismic.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"],"names":["createFaker","prismic","modelGen.link","snakeCase","sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwBa,MAAA,cAAc,CAK1B,WACgC;;AAChC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAWC,mBAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACN,UAAM,QAAQ,OAAO,SAASC,KAAAA,KAAc,EAAE,OAAO;AAE9C,WAAA;AAAA,MACN,WAAWD,mBAAQ,SAAS;AAAA,MAC5B,IAAI,MAAM,KAAK,EAAE;AAAA,MACjB,MAAM,GAAGE,qBAAU,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAAA,MAClD,MAAMA,WAAA,UAAU,MAAM,MAAM;AAAA,MAC5B,KAAK,MAAM,IAAK;AAAA,MAChB,MAAM,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACvC,QAAQ,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACzC,OAAO,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACxC,GAAI,OAAO,eAAa,WAAM,WAAN,mBAAc,cAAa,MAAM,aACtD,EAAE,MAAMC,WAAAA,aAAa,MAAM,MAAM,CAAC,CAAC,EAAA,IACnC;;EAEL;AACD;;"}