@prismicio/mock 0.7.0-alpha.0 → 0.7.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,6 +24,7 @@ const sliceZone = require("./sliceZone.cjs");
24
24
  const timestamp = require("./timestamp.cjs");
25
25
  const title = require("./title.cjs");
26
26
  const uid = require("./uid.cjs");
27
+ const table = require("./table.cjs");
27
28
  const buildMockGroupFieldMap = require("./buildMockGroupFieldMap.cjs");
28
29
  const createModelMockFactory = require("./createModelMockFactory.cjs");
29
30
  exports.boolean = boolean.boolean;
@@ -50,6 +51,7 @@ exports.sliceZone = sliceZone.sliceZone;
50
51
  exports.timestamp = timestamp.timestamp;
51
52
  exports.title = title.title;
52
53
  exports.uid = uid.uid;
54
+ exports.table = table.table;
53
55
  exports.buildMockGroupFieldMap = buildMockGroupFieldMap.buildMockGroupFieldMap;
54
56
  exports.createModelFactory = createModelMockFactory.createModelMockFactory;
55
57
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -22,5 +22,6 @@ export { sliceZone } from "./sliceZone";
22
22
  export { timestamp } from "./timestamp";
23
23
  export { title } from "./title";
24
24
  export { uid } from "./uid";
25
+ export { table } from "./table";
25
26
  export { buildMockGroupFieldMap } from "./buildMockGroupFieldMap";
26
27
  export { createModelMockFactory as createModelFactory } from "./createModelMockFactory";
@@ -22,6 +22,7 @@ import { sliceZone } from "./sliceZone.js";
22
22
  import { timestamp } from "./timestamp.js";
23
23
  import { title } from "./title.js";
24
24
  import { uid } from "./uid.js";
25
+ import { table } from "./table.js";
25
26
  import { buildMockGroupFieldMap } from "./buildMockGroupFieldMap.js";
26
27
  import { createModelMockFactory } from "./createModelMockFactory.js";
27
28
  export {
@@ -48,6 +49,7 @@ export {
48
49
  sharedSliceVariation,
49
50
  slice,
50
51
  sliceZone,
52
+ table,
51
53
  timestamp,
52
54
  title,
53
55
  uid
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const prismic = require("@prismicio/client");
4
+ const changeCase = require("../lib/changeCase.cjs");
5
+ const createFaker = require("../lib/createFaker.cjs");
6
+ function _interopNamespaceDefault(e) {
7
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
+ if (e) {
9
+ for (const k in e) {
10
+ if (k !== "default") {
11
+ const d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: () => e[k]
15
+ });
16
+ }
17
+ }
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+ const prismic__namespace = /* @__PURE__ */ _interopNamespaceDefault(prismic);
23
+ const table = (config) => {
24
+ const faker = config.faker || createFaker.createFaker(config.seed);
25
+ return {
26
+ type: prismic__namespace.CustomTypeModelFieldType.Table,
27
+ config: {
28
+ label: changeCase.capitalCase(faker.word())
29
+ }
30
+ };
31
+ };
32
+ exports.table = table;
33
+ //# sourceMappingURL=table.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.cjs","sources":["../../../src/model/table.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { capitalCase } from \"../lib/changeCase\";\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockTableModelConfig = MockModelConfig;\n\nexport const table = (\n\tconfig: MockTableModelConfig,\n): prismic.CustomTypeModelTableField => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Table,\n\t\tconfig: {\n\t\t\tlabel: capitalCase(faker.word()),\n\t\t},\n\t};\n};\n"],"names":["createFaker","prismic","capitalCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASa,MAAA,QAAQ,CACpB,WACsC;AACtC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,WAAA,YAAY,MAAM,MAAM;AAAA,IAC/B;AAAA,EAAA;AAEH;;"}
@@ -0,0 +1,4 @@
1
+ import * as prismic from "@prismicio/client";
2
+ import { MockModelConfig } from "../types";
3
+ export type MockTableModelConfig = MockModelConfig;
4
+ export declare const table: (config: MockTableModelConfig) => prismic.CustomTypeModelTableField;
@@ -0,0 +1,16 @@
1
+ import * as prismic from "@prismicio/client";
2
+ import { capitalCase } from "../lib/changeCase.js";
3
+ import { createFaker } from "../lib/createFaker.js";
4
+ const table = (config) => {
5
+ const faker = config.faker || createFaker(config.seed);
6
+ return {
7
+ type: prismic.CustomTypeModelFieldType.Table,
8
+ config: {
9
+ label: capitalCase(faker.word())
10
+ }
11
+ };
12
+ };
13
+ export {
14
+ table
15
+ };
16
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sources":["../../../src/model/table.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { capitalCase } from \"../lib/changeCase\";\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockTableModelConfig = MockModelConfig;\n\nexport const table = (\n\tconfig: MockTableModelConfig,\n): prismic.CustomTypeModelTableField => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Table,\n\t\tconfig: {\n\t\t\tlabel: capitalCase(faker.word()),\n\t\t},\n\t};\n};\n"],"names":[],"mappings":";;;AASa,MAAA,QAAQ,CACpB,WACsC;AACtC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAM,QAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAO,YAAY,MAAM,MAAM;AAAA,IAC/B;AAAA,EAAA;AAEH;"}
@@ -23,6 +23,7 @@ const sharedSliceVariation = require("./sharedSliceVariation.cjs");
23
23
  const timestamp = require("./timestamp.cjs");
24
24
  const title = require("./title.cjs");
25
25
  const uid = require("./uid.cjs");
26
+ const table = require("./table.cjs");
26
27
  exports.boolean = boolean.boolean;
27
28
  exports.customType = customType.customType;
28
29
  exports.document = customType.customType;
@@ -47,4 +48,5 @@ exports.sharedSliceVariation = sharedSliceVariation.sharedSliceVariation;
47
48
  exports.timestamp = timestamp.timestamp;
48
49
  exports.title = title.title;
49
50
  exports.uid = uid.uid;
51
+ exports.table = table.table;
50
52
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -46,3 +46,5 @@ export { title } from "./title";
46
46
  export type { MockTitleValueConfig } from "./title";
47
47
  export { uid } from "./uid";
48
48
  export type { MockUIDValueConfig } from "./uid";
49
+ export { table } from "./table";
50
+ export type { MockTableValueConfig } from "./table";
@@ -21,6 +21,7 @@ import { sharedSliceVariation } from "./sharedSliceVariation.js";
21
21
  import { timestamp } from "./timestamp.js";
22
22
  import { title } from "./title.js";
23
23
  import { uid } from "./uid.js";
24
+ import { table } from "./table.js";
24
25
  export {
25
26
  boolean,
26
27
  color,
@@ -43,6 +44,7 @@ export {
43
44
  sharedSliceVariation,
44
45
  slice,
45
46
  sliceZone,
47
+ table,
46
48
  timestamp,
47
49
  title,
48
50
  uid
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const prismic = require("@prismicio/client");
4
+ const createFaker = require("../lib/createFaker.cjs");
5
+ const index = require("./richText/index.cjs");
6
+ function _interopNamespaceDefault(e) {
7
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
+ if (e) {
9
+ for (const k in e) {
10
+ if (k !== "default") {
11
+ const d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: () => e[k]
15
+ });
16
+ }
17
+ }
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+ const prismic__namespace = /* @__PURE__ */ _interopNamespaceDefault(prismic);
23
+ const table = (config) => {
24
+ const faker = config.faker || createFaker.createFaker(config.seed);
25
+ return config.state === "empty" ? null : {
26
+ head: {
27
+ rows: [
28
+ {
29
+ cells: Array.from({ length: 3 }, () => mockTableCell({
30
+ type: "header",
31
+ faker
32
+ }))
33
+ }
34
+ ]
35
+ },
36
+ body: {
37
+ rows: Array.from({ length: 3 }, () => ({
38
+ cells: Array.from({ length: 3 }, () => mockTableCell({
39
+ type: "data",
40
+ faker
41
+ }))
42
+ }))
43
+ }
44
+ };
45
+ };
46
+ const mockTableCell = ({ type, faker }) => ({
47
+ type,
48
+ content: index.richText({
49
+ faker,
50
+ model: {
51
+ type: "StructuredText",
52
+ config: {
53
+ multi: [
54
+ prismic__namespace.RichTextNodeType.paragraph,
55
+ prismic__namespace.RichTextNodeType.strong,
56
+ prismic__namespace.RichTextNodeType.em,
57
+ prismic__namespace.RichTextNodeType.hyperlink
58
+ ].join(",")
59
+ }
60
+ }
61
+ })
62
+ });
63
+ exports.table = table;
64
+ //# sourceMappingURL=table.cjs.map
@@ -0,0 +1 @@
1
+ {"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\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: 3 }, () =>\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: 3 }, () => ({\n\t\t\t\t\t\t\tcells: Array.from({ length: 3 }, () =>\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\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: {\n\t\t\ttype: \"StructuredText\",\n\t\t\tconfig: {\n\t\t\t\tmulti: [\n\t\t\t\t\tprismic.RichTextNodeType.paragraph,\n\t\t\t\t\tprismic.RichTextNodeType.strong,\n\t\t\t\t\tprismic.RichTextNodeType.em,\n\t\t\t\t\tprismic.RichTextNodeType.hyperlink,\n\t\t\t\t].join(\",\"),\n\t\t\t},\n\t\t},\n\t}),\n});\n"],"names":["createFaker","richText","prismic"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiBa,MAAA,QAAQ,CAKpB,WAC0B;AAC1B,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAGpD,SAAA,OAAO,UAAU,UACd,OACA;AAAA,IACA,MAAM;AAAA,MACL,MAAM;AAAA,QACL;AAAA,UACC,OAAO,MAAM,KAAK,EAAE,QAAQ,KAAK,MAChC,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,KAAK,OAAO;AAAA,QACtC,OAAO,MAAM,KAAK,EAAE,QAAQ,KAAK,MAChC,cAAc;AAAA,UACb,MAAM;AAAA,UACN;AAAA,QAAA,CACA,CAAC;AAAA,MAAA,EAEF;AAAA,IACF;AAAA,EAAA;AAGN;AAEA,MAAM,gBAAgB,CAAC,EACtB,MACA,aAIM;AAAA,EACN;AAAA,EACA,SAASC,MAAAA,SAAS;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,QACP,OAAO;AAAA,UACNC,mBAAQ,iBAAiB;AAAA,UACzBA,mBAAQ,iBAAiB;AAAA,UACzBA,mBAAQ,iBAAiB;AAAA,UACzBA,mBAAQ,iBAAiB;AAAA,QAAA,EACxB,KAAK,GAAG;AAAA,MACV;AAAA,IACD;AAAA,EAAA,CACD;AACD;;"}
@@ -0,0 +1,5 @@
1
+ import * as prismic from "@prismicio/client";
2
+ import { MockValueStateConfig, MockValueConfig } from "../types";
3
+ export type MockTableValueConfig<Model extends prismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField, State extends prismic.FieldState = prismic.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
4
+ export type MockTableValue<State extends prismic.FieldState = prismic.FieldState> = prismic.TableField<State>;
5
+ export declare const table: <Model extends prismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField, State extends prismic.FieldState = "filled">(config: MockTableValueConfig<Model, State>) => MockTableValue<State>;
@@ -0,0 +1,47 @@
1
+ import * as prismic from "@prismicio/client";
2
+ import { createFaker } from "../lib/createFaker.js";
3
+ import { richText } from "./richText/index.js";
4
+ const table = (config) => {
5
+ const faker = config.faker || createFaker(config.seed);
6
+ return config.state === "empty" ? null : {
7
+ head: {
8
+ rows: [
9
+ {
10
+ cells: Array.from({ length: 3 }, () => mockTableCell({
11
+ type: "header",
12
+ faker
13
+ }))
14
+ }
15
+ ]
16
+ },
17
+ body: {
18
+ rows: Array.from({ length: 3 }, () => ({
19
+ cells: Array.from({ length: 3 }, () => mockTableCell({
20
+ type: "data",
21
+ faker
22
+ }))
23
+ }))
24
+ }
25
+ };
26
+ };
27
+ const mockTableCell = ({ type, faker }) => ({
28
+ type,
29
+ content: richText({
30
+ faker,
31
+ model: {
32
+ type: "StructuredText",
33
+ config: {
34
+ multi: [
35
+ prismic.RichTextNodeType.paragraph,
36
+ prismic.RichTextNodeType.strong,
37
+ prismic.RichTextNodeType.em,
38
+ prismic.RichTextNodeType.hyperlink
39
+ ].join(",")
40
+ }
41
+ }
42
+ })
43
+ });
44
+ export {
45
+ table
46
+ };
47
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","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\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: 3 }, () =>\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: 3 }, () => ({\n\t\t\t\t\t\t\tcells: Array.from({ length: 3 }, () =>\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\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: {\n\t\t\ttype: \"StructuredText\",\n\t\t\tconfig: {\n\t\t\t\tmulti: [\n\t\t\t\t\tprismic.RichTextNodeType.paragraph,\n\t\t\t\t\tprismic.RichTextNodeType.strong,\n\t\t\t\t\tprismic.RichTextNodeType.em,\n\t\t\t\t\tprismic.RichTextNodeType.hyperlink,\n\t\t\t\t].join(\",\"),\n\t\t\t},\n\t\t},\n\t}),\n});\n"],"names":[],"mappings":";;;AAiBa,MAAA,QAAQ,CAKpB,WAC0B;AAC1B,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAGpD,SAAA,OAAO,UAAU,UACd,OACA;AAAA,IACA,MAAM;AAAA,MACL,MAAM;AAAA,QACL;AAAA,UACC,OAAO,MAAM,KAAK,EAAE,QAAQ,KAAK,MAChC,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,KAAK,OAAO;AAAA,QACtC,OAAO,MAAM,KAAK,EAAE,QAAQ,KAAK,MAChC,cAAc;AAAA,UACb,MAAM;AAAA,UACN;AAAA,QAAA,CACA,CAAC;AAAA,MAAA,EAEF;AAAA,IACF;AAAA,EAAA;AAGN;AAEA,MAAM,gBAAgB,CAAC,EACtB,MACA,aAIM;AAAA,EACN;AAAA,EACA,SAAS,SAAS;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,QACP,OAAO;AAAA,UACN,QAAQ,iBAAiB;AAAA,UACzB,QAAQ,iBAAiB;AAAA,UACzB,QAAQ,iBAAiB;AAAA,UACzB,QAAQ,iBAAiB;AAAA,QAAA,EACxB,KAAK,GAAG;AAAA,MACV;AAAA,IACD;AAAA,EAAA,CACD;AACD;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismicio/mock",
3
- "version": "0.7.0-alpha.0",
3
+ "version": "0.7.0-alpha.1",
4
4
  "description": "Generate mock Prismic documents, fields, Slices, and models for development and testing environments",
5
5
  "keywords": [
6
6
  "typescript",
@@ -60,7 +60,7 @@
60
60
  "unit:watch": "npm run unit -- --watch"
61
61
  },
62
62
  "devDependencies": {
63
- "@prismicio/client": "7.16.0-alpha.0",
63
+ "@prismicio/client": "7.16.0-alpha.1",
64
64
  "@size-limit/preset-small-lib": "^11.1.2",
65
65
  "@types/node": "^20.12.7",
66
66
  "@typescript-eslint/eslint-plugin": "^7.6.0",
@@ -22,6 +22,7 @@ export { sliceZone } from "./sliceZone";
22
22
  export { timestamp } from "./timestamp";
23
23
  export { title } from "./title";
24
24
  export { uid } from "./uid";
25
+ export { table } from "./table";
25
26
 
26
27
  export { buildMockGroupFieldMap } from "./buildMockGroupFieldMap";
27
28
 
@@ -0,0 +1,21 @@
1
+ import * as prismic from "@prismicio/client";
2
+
3
+ import { capitalCase } from "../lib/changeCase";
4
+ import { createFaker } from "../lib/createFaker";
5
+
6
+ import { MockModelConfig } from "../types";
7
+
8
+ export type MockTableModelConfig = MockModelConfig;
9
+
10
+ export const table = (
11
+ config: MockTableModelConfig,
12
+ ): prismic.CustomTypeModelTableField => {
13
+ const faker = config.faker || createFaker(config.seed);
14
+
15
+ return {
16
+ type: prismic.CustomTypeModelFieldType.Table,
17
+ config: {
18
+ label: capitalCase(faker.word()),
19
+ },
20
+ };
21
+ };
@@ -69,3 +69,6 @@ export type { MockTitleValueConfig } from "./title";
69
69
 
70
70
  export { uid } from "./uid";
71
71
  export type { MockUIDValueConfig } from "./uid";
72
+
73
+ export { table } from "./table";
74
+ export type { MockTableValueConfig } from "./table";
@@ -0,0 +1,79 @@
1
+ import * as prismic from "@prismicio/client";
2
+
3
+ import { createFaker, Faker } from "../lib/createFaker";
4
+
5
+ import { MockValueStateConfig, MockValueConfig } from "../types";
6
+ import { richText } from "./richText";
7
+
8
+ export type MockTableValueConfig<
9
+ Model extends
10
+ prismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField,
11
+ State extends prismic.FieldState = prismic.FieldState,
12
+ > = MockValueConfig<Model> & MockValueStateConfig<State>;
13
+
14
+ export type MockTableValue<
15
+ State extends prismic.FieldState = prismic.FieldState,
16
+ > = prismic.TableField<State>;
17
+
18
+ export const table = <
19
+ Model extends
20
+ prismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField,
21
+ State extends prismic.FieldState = "filled",
22
+ >(
23
+ config: MockTableValueConfig<Model, State>,
24
+ ): MockTableValue<State> => {
25
+ const faker = config.faker || createFaker(config.seed);
26
+
27
+ return (
28
+ config.state === "empty"
29
+ ? null
30
+ : {
31
+ head: {
32
+ rows: [
33
+ {
34
+ cells: Array.from({ length: 3 }, () =>
35
+ mockTableCell({
36
+ type: "header",
37
+ faker,
38
+ }),
39
+ ),
40
+ },
41
+ ],
42
+ },
43
+ body: {
44
+ rows: Array.from({ length: 3 }, () => ({
45
+ cells: Array.from({ length: 3 }, () =>
46
+ mockTableCell({
47
+ type: "data",
48
+ faker,
49
+ }),
50
+ ),
51
+ })),
52
+ },
53
+ }
54
+ ) as MockTableValue<State>;
55
+ };
56
+
57
+ const mockTableCell = ({
58
+ type,
59
+ faker,
60
+ }: {
61
+ type: "header" | "data";
62
+ faker: Faker;
63
+ }) => ({
64
+ type,
65
+ content: richText({
66
+ faker,
67
+ model: {
68
+ type: "StructuredText",
69
+ config: {
70
+ multi: [
71
+ prismic.RichTextNodeType.paragraph,
72
+ prismic.RichTextNodeType.strong,
73
+ prismic.RichTextNodeType.em,
74
+ prismic.RichTextNodeType.hyperlink,
75
+ ].join(","),
76
+ },
77
+ },
78
+ }),
79
+ });