UNPKG

@prismicio/mock

Version:

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

1 lines 2.81 kB
{"version":3,"file":"richText.cjs","names":["createFaker","prismic","capitalCase","sentenceCase"],"sources":["../../src/model/richText.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\"\n\nimport { capitalCase, sentenceCase } from \"../lib/changeCase\"\nimport { createFaker } from \"../lib/createFaker\"\nimport type { MockModelConfig } from \"../types\"\n\nexport type MockRichTextModelConfig<WithMultipleBlocks extends boolean = boolean> = {\n\twithMultipleBlocks?: WithMultipleBlocks\n} & MockModelConfig\n\nexport const richText = <WithMultipleBlocks extends boolean = boolean>(\n\tconfig: MockRichTextModelConfig<WithMultipleBlocks>,\n): WithMultipleBlocks extends true\n\t? prismic.CustomTypeModelRichTextMultiField\n\t: prismic.CustomTypeModelRichTextSingleField => {\n\tconst faker = config.faker || createFaker(config.seed)\n\n\tconst blockTypes = faker\n\t\t.randomElements([\n\t\t\tprismic.RichTextNodeType.heading1,\n\t\t\tprismic.RichTextNodeType.heading2,\n\t\t\tprismic.RichTextNodeType.heading3,\n\t\t\tprismic.RichTextNodeType.heading4,\n\t\t\tprismic.RichTextNodeType.heading5,\n\t\t\tprismic.RichTextNodeType.heading6,\n\t\t\tprismic.RichTextNodeType.paragraph,\n\t\t\tprismic.RichTextNodeType.preformatted,\n\t\t\tprismic.RichTextNodeType.strong,\n\t\t\tprismic.RichTextNodeType.em,\n\t\t\tprismic.RichTextNodeType.listItem,\n\t\t\tprismic.RichTextNodeType.oListItem,\n\t\t\tprismic.RichTextNodeType.image,\n\t\t\tprismic.RichTextNodeType.embed,\n\t\t\tprismic.RichTextNodeType.hyperlink,\n\t\t])\n\t\t.join(\",\")\n\n\tconst blockTypeConfig =\n\t\t(config.withMultipleBlocks ?? faker.boolean()) ? { multi: blockTypes } : { single: blockTypes }\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.StructuredText,\n\t\tconfig: {\n\t\t\tlabel: capitalCase(faker.word()),\n\t\t\tplaceholder: sentenceCase(faker.words(3)),\n\t\t\tallowTargetBlank: faker.boolean() ? true : undefined,\n\t\t\t...blockTypeConfig,\n\t\t},\n\t} as WithMultipleBlocks extends true\n\t\t? prismic.CustomTypeModelRichTextMultiField\n\t\t: prismic.CustomTypeModelRichTextSingleField\n}\n"],"mappings":";;;;;;AAUA,MAAa,YACZ,WAGgD;CAChD,MAAM,QAAQ,OAAO,SAASA,oBAAAA,YAAY,OAAO,KAAK;CAEtD,MAAM,aAAa,MACjB,eAAe;EACfC,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzBA,kBAAQ,iBAAiB;EACzB,CAAC,CACD,KAAK,IAAI;CAEX,MAAM,kBACJ,OAAO,sBAAsB,MAAM,SAAS,GAAI,EAAE,OAAO,YAAY,GAAG,EAAE,QAAQ,YAAY;AAEhG,QAAO;EACN,MAAMA,kBAAQ,yBAAyB;EACvC,QAAQ;GACP,OAAOC,mBAAAA,YAAY,MAAM,MAAM,CAAC;GAChC,aAAaC,mBAAAA,aAAa,MAAM,MAAM,EAAE,CAAC;GACzC,kBAAkB,MAAM,SAAS,GAAG,OAAO,KAAA;GAC3C,GAAG;GACH;EACD"}