UNPKG

@prismicio/mock

Version:

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

1 lines 3.33 kB
{"version":3,"file":"table.cjs","sources":["../../../src/value/table.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker, Faker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\nimport { richText } from \"./richText\";\n\nexport type MockTableValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\nexport type MockTableValue<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.TableField<State>;\n\nexport const table = <\n\tModel extends\n\t\tprismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockTableValueConfig<Model, State>,\n): MockTableValue<State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst cells = faker.range(1, 10);\n\tconst bodyRows = faker.range(1, 10);\n\n\treturn (\n\t\tconfig.state === \"empty\"\n\t\t\t? null\n\t\t\t: {\n\t\t\t\t\thead: {\n\t\t\t\t\t\trows: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcells: Array.from({ length: cells }, () =>\n\t\t\t\t\t\t\t\t\tmockTableCell({\n\t\t\t\t\t\t\t\t\t\ttype: \"header\",\n\t\t\t\t\t\t\t\t\t\tfaker,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\tbody: {\n\t\t\t\t\t\trows: Array.from({ length: bodyRows }, () => ({\n\t\t\t\t\t\t\tcells: Array.from({ length: cells }, () =>\n\t\t\t\t\t\t\t\tmockTableCell({\n\t\t\t\t\t\t\t\t\ttype: \"data\",\n\t\t\t\t\t\t\t\t\tfaker,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t})),\n\t\t\t\t\t},\n\t\t\t\t}\n\t) as MockTableValue<State>;\n};\n\n// Only exported for testing purposes, to ensure the model used is in sync with the internal one.\nexport const TableCell = {\n\ttype: \"StructuredText\",\n\tconfig: {\n\t\tmulti: [\n\t\t\tprismic.RichTextNodeType.paragraph,\n\t\t\tprismic.RichTextNodeType.strong,\n\t\t\tprismic.RichTextNodeType.em,\n\t\t\tprismic.RichTextNodeType.hyperlink,\n\t\t].join(\",\"),\n\t},\n} as const;\n\nconst mockTableCell = ({\n\ttype,\n\tfaker,\n}: {\n\ttype: \"header\" | \"data\";\n\tfaker: Faker;\n}) => ({\n\ttype,\n\tcontent: richText({\n\t\tfaker,\n\t\tmodel: TableCell,\n\t}),\n});\n"],"names":["createFaker","prismic","richText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiBa,MAAA,QAAQ,CAKpB,WAC0B;AAC1B,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,QAAQ,MAAM,MAAM,GAAG,EAAE;AAC/B,QAAM,WAAW,MAAM,MAAM,GAAG,EAAE;AAGjC,SAAA,OAAO,UAAU,UACd,OACA;AAAA,IACA,MAAM;AAAA,MACL,MAAM;AAAA,QACL;AAAA,UACC,OAAO,MAAM,KAAK,EAAE,QAAQ,SAAS,MACpC,cAAc;AAAA,YACb,MAAM;AAAA,YACN;AAAA,UAAA,CACA,CAAC;AAAA,QAEH;AAAA,MACD;AAAA,IACD;AAAA,IACD,MAAM;AAAA,MACL,MAAM,MAAM,KAAK,EAAE,QAAQ,YAAY,OAAO;AAAA,QAC7C,OAAO,MAAM,KAAK,EAAE,QAAQ,SAAS,MACpC,cAAc;AAAA,UACb,MAAM;AAAA,UACN;AAAA,QAAA,CACA,CAAC;AAAA,MAAA,EAEF;AAAA,IACF;AAAA,EAAA;AAGN;AAGO,MAAM,YAAY;AAAA,EACxB,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO;AAAA,MACNC,mBAAQ,iBAAiB;AAAA,MACzBA,mBAAQ,iBAAiB;AAAA,MACzBA,mBAAQ,iBAAiB;AAAA,MACzBA,mBAAQ,iBAAiB;AAAA,IAAA,EACxB,KAAK,GAAG;AAAA,EACV;;AAGF,MAAM,gBAAgB,CAAC,EACtB,MACA,aAIM;AAAA,EACN;AAAA,EACA,SAASC,MAAAA,SAAS;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,EAAA,CACP;AACD;;;"}