UNPKG

@prismicio/mock

Version:

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

1 lines 2.97 kB
{"version":3,"file":"richText.cjs","sources":["../../../src/model/richText.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { capitalCase, sentenceCase } from \"../lib/changeCase\";\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockRichTextModelConfig<\n\tWithMultipleBlocks extends boolean = boolean,\n> = {\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\tconfig.withMultipleBlocks ?? faker.boolean()\n\t\t\t? { multi: blockTypes }\n\t\t\t: { 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"],"names":["createFaker","prismic","capitalCase","sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaa,MAAA,WAAW,CACvB,WAG+C;AAC/C,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE/C,QAAA,aAAa,MACjB,eAAe;AAAA,IACfC,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,IACzBA,mBAAQ,iBAAiB;AAAA,EAAA,CACzB,EACA,KAAK,GAAG;AAEV,QAAM,kBACL,OAAO,sBAAsB,MAAM,QAAS,IACzC,EAAE,OAAO,WAAY,IACrB,EAAE,QAAQ;AAEP,SAAA;AAAA,IACN,MAAMA,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,WAAA,YAAY,MAAM,MAAM;AAAA,MAC/B,aAAaC,WAAAA,aAAa,MAAM,MAAM,CAAC,CAAC;AAAA,MACxC,kBAAkB,MAAM,YAAY,OAAO;AAAA,MAC3C,GAAG;AAAA,IACH;AAAA,EAAA;AAIH;;"}