@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
1 lines • 1.81 kB
Source Map (JSON)
{"version":3,"file":"paragraph.cjs","sources":["../../../../src/value/richText/paragraph.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { sentenceCase } from \"../../lib/changeCase\";\nimport { createFaker } from \"../../lib/createFaker\";\n\nimport { MockRichTextValueConfig } from \"../../types\";\n\nconst patterns = {\n\tshort: {\n\t\tsentenceCount: 2,\n\t},\n\tmedium: {\n\t\tsentenceCount: 6,\n\t},\n\tlong: {\n\t\tsentenceCount: 12,\n\t},\n} as const;\n\ntype MockRichTextParagraphValueConfig = {\n\tpattern?: keyof typeof patterns;\n} & MockRichTextValueConfig;\n\nexport const paragraph = (\n\tconfig: MockRichTextParagraphValueConfig,\n): prismic.RTParagraphNode | undefined => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst patternKey =\n\t\tconfig.pattern ||\n\t\tfaker.randomElement(Object.keys(patterns) as (keyof typeof patterns)[]);\n\tconst pattern = patterns[patternKey];\n\n\tconst text = Array.from(\n\t\t{ length: pattern.sentenceCount },\n\t\t() => sentenceCase(faker.words(faker.range(5, 15))) + \".\",\n\t).join(\" \");\n\n\treturn {\n\t\ttype: prismic.RichTextNodeType.paragraph,\n\t\ttext,\n\t\tspans: [],\n\t};\n};\n"],"names":["createFaker","sentenceCase","prismic"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,WAAW;AAAA,EAChB,OAAO;AAAA,IACN,eAAe;AAAA,EACf;AAAA,EACD,QAAQ;AAAA,IACP,eAAe;AAAA,EACf;AAAA,EACD,MAAM;AAAA,IACL,eAAe;AAAA,EACf;;AAOW,MAAA,YAAY,CACxB,WACwC;AACxC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE/C,QAAA,aACL,OAAO,WACP,MAAM,cAAc,OAAO,KAAK,QAAQ,CAA8B;AACjE,QAAA,UAAU,SAAS,UAAU;AAE7B,QAAA,OAAO,MAAM,KAClB,EAAE,QAAQ,QAAQ,cAAA,GAClB,MAAMC,WAAAA,aAAa,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,EACxD,KAAK,GAAG;AAEH,SAAA;AAAA,IACN,MAAMC,mBAAQ,iBAAiB;AAAA,IAC/B;AAAA,IACA,OAAO,CAAE;AAAA,EAAA;AAEX;;"}