@prismicio/mock 0.3.7-alpha.1 → 0.3.8-alpha.0

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.
Files changed (45) hide show
  1. package/README.md +11 -11
  2. package/dist/lib/buildContentRelationshipField.cjs +2 -1
  3. package/dist/lib/buildContentRelationshipField.cjs.map +1 -1
  4. package/dist/lib/buildContentRelationshipField.d.ts +3 -2
  5. package/dist/lib/buildContentRelationshipField.js +2 -1
  6. package/dist/lib/buildContentRelationshipField.js.map +1 -1
  7. package/dist/model/contentRelationship.cjs +4 -1
  8. package/dist/model/contentRelationship.cjs.map +1 -1
  9. package/dist/model/contentRelationship.d.ts +12 -2
  10. package/dist/model/contentRelationship.js +4 -1
  11. package/dist/model/contentRelationship.js.map +1 -1
  12. package/dist/model/createModelMockFactory.d.ts +27 -3
  13. package/dist/model/link.cjs +4 -1
  14. package/dist/model/link.cjs.map +1 -1
  15. package/dist/model/link.d.ts +12 -3
  16. package/dist/model/link.js +4 -1
  17. package/dist/model/link.js.map +1 -1
  18. package/dist/model/linkToMedia.cjs +4 -1
  19. package/dist/model/linkToMedia.cjs.map +1 -1
  20. package/dist/model/linkToMedia.d.ts +13 -2
  21. package/dist/model/linkToMedia.js +4 -1
  22. package/dist/model/linkToMedia.js.map +1 -1
  23. package/dist/value/contentRelationship.cjs +4 -2
  24. package/dist/value/contentRelationship.cjs.map +1 -1
  25. package/dist/value/contentRelationship.d.ts +1 -0
  26. package/dist/value/contentRelationship.js +4 -2
  27. package/dist/value/contentRelationship.js.map +1 -1
  28. package/dist/value/link.cjs +4 -2
  29. package/dist/value/link.cjs.map +1 -1
  30. package/dist/value/link.d.ts +1 -0
  31. package/dist/value/link.js +4 -2
  32. package/dist/value/link.js.map +1 -1
  33. package/dist/value/linkToMedia.cjs +5 -1
  34. package/dist/value/linkToMedia.cjs.map +1 -1
  35. package/dist/value/linkToMedia.d.ts +3 -1
  36. package/dist/value/linkToMedia.js +6 -2
  37. package/dist/value/linkToMedia.js.map +1 -1
  38. package/package.json +5 -3
  39. package/src/lib/buildContentRelationshipField.ts +6 -2
  40. package/src/model/contentRelationship.ts +26 -3
  41. package/src/model/link.ts +39 -15
  42. package/src/model/linkToMedia.ts +24 -5
  43. package/src/value/contentRelationship.ts +8 -0
  44. package/src/value/link.ts +8 -0
  45. package/src/value/linkToMedia.ts +14 -1
package/README.md CHANGED
@@ -38,24 +38,24 @@ Whether you're helping us fix bugs, improve the docs, or spread the word, we'd l
38
38
 
39
39
  **Submitting code changes**: For small fixes, feel free to [open a pull request][repo-pull-requests] with a description of your changes. For large changes, please first [open an issue][repo-feature-request] so we can discuss if and how the changes should be implemented.
40
40
 
41
- For more clarity on this project and its structure you can also check out the detailed [CONTRIBUTING.md][contributing] document.
41
+ For more clarity on this project, check out the detailed [CONTRIBUTING.md][contributing] document.
42
42
 
43
43
  ## License
44
44
 
45
45
  ```
46
- Copyright 2013-2021 Prismic <contact@prismic.io> (https://prismic.io)
46
+ Copyright 2013-2024 Prismic <contact@prismic.io> (https://prismic.io)
47
47
 
48
- Licensed under the Apache License, Version 2.0 (the "License");
49
- you may not use this file except in compliance with the License.
50
- You may obtain a copy of the License at
48
+ Licensed under the Apache License, Version 2.0 (the "License");
49
+ you may not use this file except in compliance with the License.
50
+ You may obtain a copy of the License at
51
51
 
52
- http://www.apache.org/licenses/LICENSE-2.0
52
+ http://www.apache.org/licenses/LICENSE-2.0
53
53
 
54
- Unless required by applicable law or agreed to in writing, software
55
- distributed under the License is distributed on an "AS IS" BASIS,
56
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
57
- See the License for the specific language governing permissions and
58
- limitations under the License.
54
+ Unless required by applicable law or agreed to in writing, software
55
+ distributed under the License is distributed on an "AS IS" BASIS,
56
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
57
+ See the License for the specific language governing permissions and
58
+ limitations under the License.
59
59
  ```
60
60
 
61
61
  <!-- Links -->
@@ -28,7 +28,8 @@ const buildContentRelationshipField = (config) => {
28
28
  lang: config.document.lang,
29
29
  url: config.document.url || void 0,
30
30
  slug: config.document.slugs[0],
31
- isBroken: false
31
+ isBroken: false,
32
+ text: config.text
32
33
  };
33
34
  };
34
35
  exports.buildContentRelationshipField = buildContentRelationshipField;
@@ -1 +1 @@
1
- {"version":3,"file":"buildContentRelationshipField.cjs","sources":["../../../src/lib/buildContentRelationshipField.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\ntype BuildEmbedFieldConfig<Document extends prismic.PrismicDocument> = {\n\tdocument: Document;\n};\n\nexport const buildContentRelationshipField = <\n\tDocument extends prismic.PrismicDocument,\n>(\n\tconfig: BuildEmbedFieldConfig<Document>,\n): prismic.ContentRelationshipField<\n\tDocument[\"type\"],\n\tDocument[\"lang\"],\n\tnever,\n\t\"filled\"\n> => {\n\treturn {\n\t\tlink_type: prismic.LinkType.Document,\n\t\tid: config.document.id,\n\t\tuid: config.document.uid || undefined,\n\t\ttype: config.document.type,\n\t\ttags: config.document.tags,\n\t\tlang: config.document.lang,\n\t\turl: config.document.url || undefined,\n\t\tslug: config.document.slugs[0],\n\t\tisBroken: false,\n\t};\n};\n"],"names":["prismic"],"mappings":";;;;;;;;;;;;;;;;;;;;AAMa,MAAA,gCAAgC,CAG5C,WAMG;AACI,SAAA;AAAA,IACN,WAAWA,mBAAQ,SAAS;AAAA,IAC5B,IAAI,OAAO,SAAS;AAAA,IACpB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS,MAAM,CAAC;AAAA,IAC7B,UAAU;AAAA,EAAA;AAEZ;;"}
1
+ {"version":3,"file":"buildContentRelationshipField.cjs","sources":["../../../src/lib/buildContentRelationshipField.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\ntype BuildContentRelationshipFieldConfig<\n\tDocument extends prismic.PrismicDocument,\n> = {\n\tdocument: Document;\n\ttext?: string;\n};\n\nexport const buildContentRelationshipField = <\n\tDocument extends prismic.PrismicDocument,\n>(\n\tconfig: BuildContentRelationshipFieldConfig<Document>,\n): prismic.ContentRelationshipField<\n\tDocument[\"type\"],\n\tDocument[\"lang\"],\n\tnever,\n\t\"filled\"\n> => {\n\treturn {\n\t\tlink_type: prismic.LinkType.Document,\n\t\tid: config.document.id,\n\t\tuid: config.document.uid || undefined,\n\t\ttype: config.document.type,\n\t\ttags: config.document.tags,\n\t\tlang: config.document.lang,\n\t\turl: config.document.url || undefined,\n\t\tslug: config.document.slugs[0],\n\t\tisBroken: false,\n\t\ttext: config.text,\n\t};\n};\n"],"names":["prismic"],"mappings":";;;;;;;;;;;;;;;;;;;;AASa,MAAA,gCAAgC,CAG5C,WAMG;AACI,SAAA;AAAA,IACN,WAAWA,mBAAQ,SAAS;AAAA,IAC5B,IAAI,OAAO,SAAS;AAAA,IACpB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS,MAAM,CAAC;AAAA,IAC7B,UAAU;AAAA,IACV,MAAM,OAAO;AAAA,EAAA;AAEf;;"}
@@ -1,6 +1,7 @@
1
1
  import * as prismic from "@prismicio/client";
2
- type BuildEmbedFieldConfig<Document extends prismic.PrismicDocument> = {
2
+ type BuildContentRelationshipFieldConfig<Document extends prismic.PrismicDocument> = {
3
3
  document: Document;
4
+ text?: string;
4
5
  };
5
- export declare const buildContentRelationshipField: <Document extends prismic.PrismicDocument<Record<string, any>, string, string>>(config: BuildEmbedFieldConfig<Document>) => prismic.ContentRelationshipField<Document["type"], Document["lang"], never, "filled">;
6
+ export declare const buildContentRelationshipField: <Document extends prismic.PrismicDocument<Record<string, any>, string, string>>(config: BuildContentRelationshipFieldConfig<Document>) => prismic.ContentRelationshipField<Document["type"], Document["lang"], never, "filled">;
6
7
  export {};
@@ -9,7 +9,8 @@ const buildContentRelationshipField = (config) => {
9
9
  lang: config.document.lang,
10
10
  url: config.document.url || void 0,
11
11
  slug: config.document.slugs[0],
12
- isBroken: false
12
+ isBroken: false,
13
+ text: config.text
13
14
  };
14
15
  };
15
16
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"buildContentRelationshipField.js","sources":["../../../src/lib/buildContentRelationshipField.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\ntype BuildEmbedFieldConfig<Document extends prismic.PrismicDocument> = {\n\tdocument: Document;\n};\n\nexport const buildContentRelationshipField = <\n\tDocument extends prismic.PrismicDocument,\n>(\n\tconfig: BuildEmbedFieldConfig<Document>,\n): prismic.ContentRelationshipField<\n\tDocument[\"type\"],\n\tDocument[\"lang\"],\n\tnever,\n\t\"filled\"\n> => {\n\treturn {\n\t\tlink_type: prismic.LinkType.Document,\n\t\tid: config.document.id,\n\t\tuid: config.document.uid || undefined,\n\t\ttype: config.document.type,\n\t\ttags: config.document.tags,\n\t\tlang: config.document.lang,\n\t\turl: config.document.url || undefined,\n\t\tslug: config.document.slugs[0],\n\t\tisBroken: false,\n\t};\n};\n"],"names":[],"mappings":";AAMa,MAAA,gCAAgC,CAG5C,WAMG;AACI,SAAA;AAAA,IACN,WAAW,QAAQ,SAAS;AAAA,IAC5B,IAAI,OAAO,SAAS;AAAA,IACpB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS,MAAM,CAAC;AAAA,IAC7B,UAAU;AAAA,EAAA;AAEZ;"}
1
+ {"version":3,"file":"buildContentRelationshipField.js","sources":["../../../src/lib/buildContentRelationshipField.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\ntype BuildContentRelationshipFieldConfig<\n\tDocument extends prismic.PrismicDocument,\n> = {\n\tdocument: Document;\n\ttext?: string;\n};\n\nexport const buildContentRelationshipField = <\n\tDocument extends prismic.PrismicDocument,\n>(\n\tconfig: BuildContentRelationshipFieldConfig<Document>,\n): prismic.ContentRelationshipField<\n\tDocument[\"type\"],\n\tDocument[\"lang\"],\n\tnever,\n\t\"filled\"\n> => {\n\treturn {\n\t\tlink_type: prismic.LinkType.Document,\n\t\tid: config.document.id,\n\t\tuid: config.document.uid || undefined,\n\t\ttype: config.document.type,\n\t\ttags: config.document.tags,\n\t\tlang: config.document.lang,\n\t\turl: config.document.url || undefined,\n\t\tslug: config.document.slugs[0],\n\t\tisBroken: false,\n\t\ttext: config.text,\n\t};\n};\n"],"names":[],"mappings":";AASa,MAAA,gCAAgC,CAG5C,WAMG;AACI,SAAA;AAAA,IACN,WAAW,QAAQ,SAAS;AAAA,IAC5B,IAAI,OAAO,SAAS;AAAA,IACpB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,OAAO,SAAS;AAAA,IACtB,KAAK,OAAO,SAAS,OAAO;AAAA,IAC5B,MAAM,OAAO,SAAS,MAAM,CAAC;AAAA,IAC7B,UAAU;AAAA,IACV,MAAM,OAAO;AAAA,EAAA;AAEf;"}
@@ -29,7 +29,10 @@ const contentRelationship = (config) => {
29
29
  placeholder: index.sentenceCase(faker.words(3)),
30
30
  select: prismic__namespace.CustomTypeModelLinkSelectType.Document,
31
31
  customtypes: config.customTypeIDs,
32
- tags: config.tags
32
+ tags: config.tags,
33
+ text: config.text ? {
34
+ type: prismic__namespace.CustomTypeModelFieldType.Text
35
+ } : void 0
33
36
  }
34
37
  };
35
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contentRelationship.cjs","sources":["../../../src/model/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockContentRelationshipModelConfig<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n> = {\n\tcustomTypeIDs?: readonly CustomTypeIDs[];\n\ttags?: readonly Tags[];\n} & MockModelConfig;\n\nexport const contentRelationship = <\n\tCustomTypeIDs extends string,\n\tTags extends string,\n>(\n\tconfig: MockContentRelationshipModelConfig<CustomTypeIDs, Tags>,\n): prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Document,\n\t\t\tcustomtypes: config.customTypeIDs,\n\t\t\ttags: config.tags,\n\t\t},\n\t};\n};\n"],"names":["createFaker","prismic","changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAea,MAAA,sBAAsB,CAIlC,WACyE;AACzE,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,MAAuB,YAAA,MAAM,MAAM;AAAA,MAC1C,aAAaC,MAAAA,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQF,mBAAQ,8BAA8B;AAAA,MAC9C,aAAa,OAAO;AAAA,MACpB,MAAM,OAAO;AAAA,IACb;AAAA,EAAA;AAEH;;"}
1
+ {"version":3,"file":"contentRelationship.cjs","sources":["../../../src/model/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { LinkText } from \"./link\";\nimport { MockModelConfig } from \"../types\";\n\ntype MockContentRelationshipModel<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n\tText extends boolean = boolean,\n> = prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> & {\n\tconfig: Text extends true\n\t\t? {\n\t\t\t\ttext: LinkText;\n\t\t\t}\n\t\t: {\n\t\t\t\ttext?: undefined;\n\t\t\t};\n};\n\nexport type MockContentRelationshipModelConfig<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n\tText extends boolean = boolean,\n> = {\n\tcustomTypeIDs?: readonly CustomTypeIDs[];\n\ttags?: readonly Tags[];\n\ttext?: Text;\n} & MockModelConfig;\n\nexport const contentRelationship = <\n\tCustomTypeIDs extends string,\n\tTags extends string,\n\tText extends boolean = boolean,\n>(\n\tconfig: MockContentRelationshipModelConfig<CustomTypeIDs, Tags, Text>,\n): MockContentRelationshipModel<CustomTypeIDs, Tags, Text> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Document,\n\t\t\tcustomtypes: config.customTypeIDs,\n\t\t\ttags: config.tags,\n\t\t\ttext: config.text\n\t\t\t\t? {\n\t\t\t\t\t\ttype: prismic.CustomTypeModelFieldType.Text,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t} as MockContentRelationshipModel<CustomTypeIDs, Tags, Text>;\n};\n"],"names":["createFaker","prismic","changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgCa,MAAA,sBAAsB,CAKlC,WAC4D;AAC5D,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,MAAuB,YAAA,MAAM,MAAM;AAAA,MAC1C,aAAaC,MAAAA,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQF,mBAAQ,8BAA8B;AAAA,MAC9C,aAAa,OAAO;AAAA,MACpB,MAAM,OAAO;AAAA,MACb,MAAM,OAAO,OACV;AAAA,QACA,MAAMA,mBAAQ,yBAAyB;AAAA,MAEvC,IAAA;AAAA,IACH;AAAA,EAAA;AAEH;;"}
@@ -1,7 +1,17 @@
1
1
  import * as prismic from "@prismicio/client";
2
+ import { LinkText } from "./link";
2
3
  import { MockModelConfig } from "../types";
3
- export type MockContentRelationshipModelConfig<CustomTypeIDs extends string = string, Tags extends string = string> = {
4
+ type MockContentRelationshipModel<CustomTypeIDs extends string = string, Tags extends string = string, Text extends boolean = boolean> = prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> & {
5
+ config: Text extends true ? {
6
+ text: LinkText;
7
+ } : {
8
+ text?: undefined;
9
+ };
10
+ };
11
+ export type MockContentRelationshipModelConfig<CustomTypeIDs extends string = string, Tags extends string = string, Text extends boolean = boolean> = {
4
12
  customTypeIDs?: readonly CustomTypeIDs[];
5
13
  tags?: readonly Tags[];
14
+ text?: Text;
6
15
  } & MockModelConfig;
7
- export declare const contentRelationship: <CustomTypeIDs extends string, Tags extends string>(config: MockContentRelationshipModelConfig<CustomTypeIDs, Tags>) => prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags>;
16
+ export declare const contentRelationship: <CustomTypeIDs extends string, Tags extends string, Text extends boolean = boolean>(config: MockContentRelationshipModelConfig<CustomTypeIDs, Tags, Text>) => MockContentRelationshipModel<CustomTypeIDs, Tags, Text>;
17
+ export {};
@@ -10,7 +10,10 @@ const contentRelationship = (config) => {
10
10
  placeholder: sentenceCase(faker.words(3)),
11
11
  select: prismic.CustomTypeModelLinkSelectType.Document,
12
12
  customtypes: config.customTypeIDs,
13
- tags: config.tags
13
+ tags: config.tags,
14
+ text: config.text ? {
15
+ type: prismic.CustomTypeModelFieldType.Text
16
+ } : void 0
14
17
  }
15
18
  };
16
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contentRelationship.js","sources":["../../../src/model/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockContentRelationshipModelConfig<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n> = {\n\tcustomTypeIDs?: readonly CustomTypeIDs[];\n\ttags?: readonly Tags[];\n} & MockModelConfig;\n\nexport const contentRelationship = <\n\tCustomTypeIDs extends string,\n\tTags extends string,\n>(\n\tconfig: MockContentRelationshipModelConfig<CustomTypeIDs, Tags>,\n): prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Document,\n\t\t\tcustomtypes: config.customTypeIDs,\n\t\t\ttags: config.tags,\n\t\t},\n\t};\n};\n"],"names":["changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;AAea,MAAA,sBAAsB,CAIlC,WACyE;AACzE,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAM,QAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOA,YAAuB,MAAM,MAAM;AAAA,MAC1C,aAAaC,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ,QAAQ,8BAA8B;AAAA,MAC9C,aAAa,OAAO;AAAA,MACpB,MAAM,OAAO;AAAA,IACb;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"contentRelationship.js","sources":["../../../src/model/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { LinkText } from \"./link\";\nimport { MockModelConfig } from \"../types\";\n\ntype MockContentRelationshipModel<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n\tText extends boolean = boolean,\n> = prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> & {\n\tconfig: Text extends true\n\t\t? {\n\t\t\t\ttext: LinkText;\n\t\t\t}\n\t\t: {\n\t\t\t\ttext?: undefined;\n\t\t\t};\n};\n\nexport type MockContentRelationshipModelConfig<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n\tText extends boolean = boolean,\n> = {\n\tcustomTypeIDs?: readonly CustomTypeIDs[];\n\ttags?: readonly Tags[];\n\ttext?: Text;\n} & MockModelConfig;\n\nexport const contentRelationship = <\n\tCustomTypeIDs extends string,\n\tTags extends string,\n\tText extends boolean = boolean,\n>(\n\tconfig: MockContentRelationshipModelConfig<CustomTypeIDs, Tags, Text>,\n): MockContentRelationshipModel<CustomTypeIDs, Tags, Text> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Document,\n\t\t\tcustomtypes: config.customTypeIDs,\n\t\t\ttags: config.tags,\n\t\t\ttext: config.text\n\t\t\t\t? {\n\t\t\t\t\t\ttype: prismic.CustomTypeModelFieldType.Text,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t} as MockContentRelationshipModel<CustomTypeIDs, Tags, Text>;\n};\n"],"names":["changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;AAgCa,MAAA,sBAAsB,CAKlC,WAC4D;AAC5D,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAM,QAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOA,YAAuB,MAAM,MAAM;AAAA,MAC1C,aAAaC,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ,QAAQ,8BAA8B;AAAA,MAC9C,aAAa,OAAO;AAAA,MACpB,MAAM,OAAO;AAAA,MACb,MAAM,OAAO,OACV;AAAA,QACA,MAAM,QAAQ,yBAAyB;AAAA,MAEvC,IAAA;AAAA,IACH;AAAA,EAAA;AAEH;"}
@@ -38,7 +38,13 @@ export declare class ModelMockFactory {
38
38
  buildMockGroupFieldMap(config?: WithoutFakerConfig<BuildMockGroupFieldMapConfig>): NestedGroupFieldModelMap;
39
39
  boolean(config?: WithoutFakerConfig<MockBooleanModelConfig>): prismic.CustomTypeModelBooleanField;
40
40
  color(config?: WithoutFakerConfig<MockColorModelConfig>): prismic.CustomTypeModelColorField;
41
- contentRelationship<CustomTypeIDs extends string, Tags extends string>(config?: WithoutFakerConfig<MockContentRelationshipModelConfig<CustomTypeIDs, Tags>>): prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags>;
41
+ contentRelationship<CustomTypeIDs extends string, Tags extends string>(config?: WithoutFakerConfig<MockContentRelationshipModelConfig<CustomTypeIDs, Tags>>): prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> & {
42
+ config: {
43
+ text: prismic.CustomTypeModelKeyTextField;
44
+ } | {
45
+ text?: undefined;
46
+ };
47
+ };
42
48
  customType<Definition extends prismic.CustomTypeModelTab | prismic.CustomTypeModelDefinition>(config?: WithoutFakerConfig<MockCustomTypeModelConfig<Definition>>): (Definition extends Record<string, prismic.CustomTypeModelField> ? prismic.CustomTypeModel<string, Record<"Main", Definition>> : Definition extends prismic.CustomTypeModelDefinition ? prismic.CustomTypeModel<string, Definition> : never) & {
43
49
  label: string;
44
50
  };
@@ -49,8 +55,26 @@ export declare class ModelMockFactory {
49
55
  image<ThumbnailNames extends string = string>(config?: WithoutFakerConfig<MockImageModelConfig<ThumbnailNames>>): prismic.CustomTypeModelImageField<ThumbnailNames>;
50
56
  integration(config?: WithoutFakerConfig<MockIntegrationFieldModelConfig>): prismic.CustomTypeModelIntegrationField;
51
57
  keyText(config?: WithoutFakerConfig<MockKeyTextModelConfig>): prismic.CustomTypeModelKeyTextField;
52
- link<AllowTargetBlank extends boolean = boolean>(config?: WithoutFakerConfig<MockLinkModelConfig<AllowTargetBlank>>): import("./link").MockLinkModel<AllowTargetBlank>;
53
- linkToMedia(config?: WithoutFakerConfig<MockLinkToMediaModelConfig>): prismic.CustomTypeModelLinkToMediaField;
58
+ link<AllowTargetBlank extends boolean = boolean>(config?: WithoutFakerConfig<MockLinkModelConfig<AllowTargetBlank>>): prismic.CustomTypeModelLinkField & {
59
+ config: AllowTargetBlank extends true ? {
60
+ allowTargetBlank: true;
61
+ } : {
62
+ allowTargetBlank?: undefined;
63
+ };
64
+ } & {
65
+ config: {
66
+ text: prismic.CustomTypeModelKeyTextField;
67
+ } | {
68
+ text?: undefined;
69
+ };
70
+ };
71
+ linkToMedia(config?: WithoutFakerConfig<MockLinkToMediaModelConfig>): prismic.CustomTypeModelLinkToMediaField & {
72
+ config: {
73
+ text: prismic.CustomTypeModelKeyTextField;
74
+ } | {
75
+ text?: undefined;
76
+ };
77
+ };
54
78
  number(config?: WithoutFakerConfig<MockNumberModelConfig>): prismic.CustomTypeModelNumberField;
55
79
  richText<WithMultipleBlocks extends boolean = boolean>(config?: WithoutFakerConfig<MockRichTextModelConfig<WithMultipleBlocks>>): WithMultipleBlocks extends true ? prismic.CustomTypeModelRichTextMultiField : prismic.CustomTypeModelRichTextSingleField;
56
80
  select<Option extends string, DefaultOption extends Option>(config?: WithoutFakerConfig<MockSelectModelConfig<Option, DefaultOption>>): prismic.CustomTypeModelSelectField<Option, DefaultOption>;
@@ -28,7 +28,10 @@ const link = (config) => {
28
28
  label: index.capitalCase(faker.word()),
29
29
  placeholder: index.sentenceCase(faker.words(3)),
30
30
  select: null,
31
- allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.boolean()) || void 0
31
+ allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.boolean()) || void 0,
32
+ text: config.text ? {
33
+ type: prismic__namespace.CustomTypeModelFieldType.Text
34
+ } : void 0
32
35
  }
33
36
  };
34
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"link.cjs","sources":["../../../src/model/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockLinkModel<AllowTargetBlank extends boolean = boolean> =\n\tprismic.CustomTypeModelLinkField & {\n\t\tconfig: AllowTargetBlank extends true\n\t\t\t? {\n\t\t\t\t\tallowTargetBlank: true;\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tallowTargetBlank?: undefined;\n\t\t\t\t};\n\t};\n\nexport type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {\n\tallowTargetBlank?: AllowTargetBlank;\n} & MockModelConfig;\n\nexport const link = <AllowTargetBlank extends boolean = boolean>(\n\tconfig: MockLinkModelConfig<AllowTargetBlank>,\n): MockLinkModel<AllowTargetBlank> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: null,\n\t\t\tallowTargetBlank:\n\t\t\t\t(\"allowTargetBlank\" in config\n\t\t\t\t\t? config.allowTargetBlank\n\t\t\t\t\t: faker.boolean()) || undefined,\n\t\t},\n\t} as MockLinkModel<AllowTargetBlank>;\n};\n"],"names":["createFaker","prismic","changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBa,MAAA,OAAO,CACnB,WACoC;AACpC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,MAAuB,YAAA,MAAM,MAAM;AAAA,MAC1C,aAAaC,MAAAA,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ;AAAA,MACR,mBACE,sBAAsB,SACpB,OAAO,mBACP,MAAM,QAAc,MAAA;AAAA,IACxB;AAAA,EAAA;AAEH;;"}
1
+ {"version":3,"file":"link.cjs","sources":["../../../src/model/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type LinkText = prismic.CustomTypeModelKeyTextField;\n\ntype MockLinkModel<\n\tAllowTargetBlank extends boolean = boolean,\n\tText extends boolean = boolean,\n> = prismic.CustomTypeModelLinkField & {\n\tconfig: AllowTargetBlank extends true\n\t\t? {\n\t\t\t\tallowTargetBlank: true;\n\t\t\t}\n\t\t: {\n\t\t\t\tallowTargetBlank?: undefined;\n\t\t\t};\n} & {\n\tconfig: Text extends true\n\t\t? {\n\t\t\t\ttext: LinkText;\n\t\t\t}\n\t\t: {\n\t\t\t\ttext?: undefined;\n\t\t\t};\n};\n\nexport type MockLinkModelConfig<\n\tAllowTargetBlank extends boolean = boolean,\n\tText extends boolean = boolean,\n> = {\n\tallowTargetBlank?: AllowTargetBlank;\n\ttext?: Text;\n} & MockModelConfig;\n\nexport const link = <\n\tAllowTargetBlank extends boolean = boolean,\n\tText extends boolean = boolean,\n>(\n\tconfig: MockLinkModelConfig<AllowTargetBlank, Text>,\n): MockLinkModel<AllowTargetBlank, Text> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: null,\n\t\t\tallowTargetBlank:\n\t\t\t\t(\"allowTargetBlank\" in config\n\t\t\t\t\t? config.allowTargetBlank\n\t\t\t\t\t: faker.boolean()) || undefined,\n\t\t\ttext: config.text\n\t\t\t\t? {\n\t\t\t\t\t\ttype: prismic.CustomTypeModelFieldType.Text,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t} as MockLinkModel<AllowTargetBlank, Text>;\n};\n"],"names":["createFaker","prismic","changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsCa,MAAA,OAAO,CAInB,WAC0C;AAC1C,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,MAAuB,YAAA,MAAM,MAAM;AAAA,MAC1C,aAAaC,MAAAA,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ;AAAA,MACR,mBACE,sBAAsB,SACpB,OAAO,mBACP,MAAM,QAAc,MAAA;AAAA,MACxB,MAAM,OAAO,OACV;AAAA,QACA,MAAMF,mBAAQ,yBAAyB;AAAA,MAEvC,IAAA;AAAA,IACH;AAAA,EAAA;AAEH;;"}
@@ -1,13 +1,22 @@
1
1
  import * as prismic from "@prismicio/client";
2
2
  import { MockModelConfig } from "../types";
3
- export type MockLinkModel<AllowTargetBlank extends boolean = boolean> = prismic.CustomTypeModelLinkField & {
3
+ export type LinkText = prismic.CustomTypeModelKeyTextField;
4
+ type MockLinkModel<AllowTargetBlank extends boolean = boolean, Text extends boolean = boolean> = prismic.CustomTypeModelLinkField & {
4
5
  config: AllowTargetBlank extends true ? {
5
6
  allowTargetBlank: true;
6
7
  } : {
7
8
  allowTargetBlank?: undefined;
8
9
  };
10
+ } & {
11
+ config: Text extends true ? {
12
+ text: LinkText;
13
+ } : {
14
+ text?: undefined;
15
+ };
9
16
  };
10
- export type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {
17
+ export type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean, Text extends boolean = boolean> = {
11
18
  allowTargetBlank?: AllowTargetBlank;
19
+ text?: Text;
12
20
  } & MockModelConfig;
13
- export declare const link: <AllowTargetBlank extends boolean = boolean>(config: MockLinkModelConfig<AllowTargetBlank>) => MockLinkModel<AllowTargetBlank>;
21
+ export declare const link: <AllowTargetBlank extends boolean = boolean, Text extends boolean = boolean>(config: MockLinkModelConfig<AllowTargetBlank, Text>) => MockLinkModel<AllowTargetBlank, Text>;
22
+ export {};
@@ -9,7 +9,10 @@ const link = (config) => {
9
9
  label: capitalCase(faker.word()),
10
10
  placeholder: sentenceCase(faker.words(3)),
11
11
  select: null,
12
- allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.boolean()) || void 0
12
+ allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.boolean()) || void 0,
13
+ text: config.text ? {
14
+ type: prismic.CustomTypeModelFieldType.Text
15
+ } : void 0
13
16
  }
14
17
  };
15
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sources":["../../../src/model/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockLinkModel<AllowTargetBlank extends boolean = boolean> =\n\tprismic.CustomTypeModelLinkField & {\n\t\tconfig: AllowTargetBlank extends true\n\t\t\t? {\n\t\t\t\t\tallowTargetBlank: true;\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tallowTargetBlank?: undefined;\n\t\t\t\t};\n\t};\n\nexport type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {\n\tallowTargetBlank?: AllowTargetBlank;\n} & MockModelConfig;\n\nexport const link = <AllowTargetBlank extends boolean = boolean>(\n\tconfig: MockLinkModelConfig<AllowTargetBlank>,\n): MockLinkModel<AllowTargetBlank> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: null,\n\t\t\tallowTargetBlank:\n\t\t\t\t(\"allowTargetBlank\" in config\n\t\t\t\t\t? config.allowTargetBlank\n\t\t\t\t\t: faker.boolean()) || undefined,\n\t\t},\n\t} as MockLinkModel<AllowTargetBlank>;\n};\n"],"names":["changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;AAsBa,MAAA,OAAO,CACnB,WACoC;AACpC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAM,QAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOA,YAAuB,MAAM,MAAM;AAAA,MAC1C,aAAaC,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ;AAAA,MACR,mBACE,sBAAsB,SACpB,OAAO,mBACP,MAAM,QAAc,MAAA;AAAA,IACxB;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"link.js","sources":["../../../src/model/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type LinkText = prismic.CustomTypeModelKeyTextField;\n\ntype MockLinkModel<\n\tAllowTargetBlank extends boolean = boolean,\n\tText extends boolean = boolean,\n> = prismic.CustomTypeModelLinkField & {\n\tconfig: AllowTargetBlank extends true\n\t\t? {\n\t\t\t\tallowTargetBlank: true;\n\t\t\t}\n\t\t: {\n\t\t\t\tallowTargetBlank?: undefined;\n\t\t\t};\n} & {\n\tconfig: Text extends true\n\t\t? {\n\t\t\t\ttext: LinkText;\n\t\t\t}\n\t\t: {\n\t\t\t\ttext?: undefined;\n\t\t\t};\n};\n\nexport type MockLinkModelConfig<\n\tAllowTargetBlank extends boolean = boolean,\n\tText extends boolean = boolean,\n> = {\n\tallowTargetBlank?: AllowTargetBlank;\n\ttext?: Text;\n} & MockModelConfig;\n\nexport const link = <\n\tAllowTargetBlank extends boolean = boolean,\n\tText extends boolean = boolean,\n>(\n\tconfig: MockLinkModelConfig<AllowTargetBlank, Text>,\n): MockLinkModel<AllowTargetBlank, Text> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: null,\n\t\t\tallowTargetBlank:\n\t\t\t\t(\"allowTargetBlank\" in config\n\t\t\t\t\t? config.allowTargetBlank\n\t\t\t\t\t: faker.boolean()) || undefined,\n\t\t\ttext: config.text\n\t\t\t\t? {\n\t\t\t\t\t\ttype: prismic.CustomTypeModelFieldType.Text,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t} as MockLinkModel<AllowTargetBlank, Text>;\n};\n"],"names":["changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;AAsCa,MAAA,OAAO,CAInB,WAC0C;AAC1C,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAM,QAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOA,YAAuB,MAAM,MAAM;AAAA,MAC1C,aAAaC,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ;AAAA,MACR,mBACE,sBAAsB,SACpB,OAAO,mBACP,MAAM,QAAc,MAAA;AAAA,MACxB,MAAM,OAAO,OACV;AAAA,QACA,MAAM,QAAQ,yBAAyB;AAAA,MAEvC,IAAA;AAAA,IACH;AAAA,EAAA;AAEH;"}
@@ -27,7 +27,10 @@ const linkToMedia = (config) => {
27
27
  config: {
28
28
  label: index.capitalCase(faker.word()),
29
29
  placeholder: index.sentenceCase(faker.words(3)),
30
- select: prismic__namespace.CustomTypeModelLinkSelectType.Media
30
+ select: prismic__namespace.CustomTypeModelLinkSelectType.Media,
31
+ text: config.text ? {
32
+ type: prismic__namespace.CustomTypeModelFieldType.Text
33
+ } : void 0
31
34
  }
32
35
  };
33
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"linkToMedia.cjs","sources":["../../../src/model/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockLinkToMediaModelConfig = MockModelConfig;\n\nexport const linkToMedia = (\n\tconfig: MockLinkToMediaModelConfig,\n): prismic.CustomTypeModelLinkToMediaField => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Media,\n\t\t},\n\t};\n};\n"],"names":["createFaker","prismic","changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASa,MAAA,cAAc,CAC1B,WAC4C;AAC5C,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,MAAuB,YAAA,MAAM,MAAM;AAAA,MAC1C,aAAaC,MAAAA,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQF,mBAAQ,8BAA8B;AAAA,IAC9C;AAAA,EAAA;AAEH;;"}
1
+ {"version":3,"file":"linkToMedia.cjs","sources":["../../../src/model/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { LinkText } from \"./link\";\nimport { MockModelConfig } from \"../types\";\n\ntype MockLinkToMediaModel<Text extends boolean = boolean> =\n\tprismic.CustomTypeModelLinkToMediaField & {\n\t\tconfig: Text extends true\n\t\t\t? {\n\t\t\t\t\ttext: LinkText;\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\ttext?: undefined;\n\t\t\t\t};\n\t};\n\nexport type MockLinkToMediaModelConfig<Text extends boolean = boolean> = {\n\ttext?: Text;\n} & MockModelConfig;\n\nexport const linkToMedia = <Text extends boolean = boolean>(\n\tconfig: MockLinkToMediaModelConfig<Text>,\n): MockLinkToMediaModel<Text> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Media,\n\t\t\ttext: config.text\n\t\t\t\t? {\n\t\t\t\t\t\ttype: prismic.CustomTypeModelFieldType.Text,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t} as MockLinkToMediaModel<Text>;\n};\n"],"names":["createFaker","prismic","changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBa,MAAA,cAAc,CAC1B,WAC+B;AAC/B,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,MAAuB,YAAA,MAAM,MAAM;AAAA,MAC1C,aAAaC,MAAAA,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQF,mBAAQ,8BAA8B;AAAA,MAC9C,MAAM,OAAO,OACV;AAAA,QACA,MAAMA,mBAAQ,yBAAyB;AAAA,MAEvC,IAAA;AAAA,IACH;AAAA,EAAA;AAEH;;"}
@@ -1,4 +1,15 @@
1
1
  import * as prismic from "@prismicio/client";
2
+ import { LinkText } from "./link";
2
3
  import { MockModelConfig } from "../types";
3
- export type MockLinkToMediaModelConfig = MockModelConfig;
4
- export declare const linkToMedia: (config: MockLinkToMediaModelConfig) => prismic.CustomTypeModelLinkToMediaField;
4
+ type MockLinkToMediaModel<Text extends boolean = boolean> = prismic.CustomTypeModelLinkToMediaField & {
5
+ config: Text extends true ? {
6
+ text: LinkText;
7
+ } : {
8
+ text?: undefined;
9
+ };
10
+ };
11
+ export type MockLinkToMediaModelConfig<Text extends boolean = boolean> = {
12
+ text?: Text;
13
+ } & MockModelConfig;
14
+ export declare const linkToMedia: <Text extends boolean = boolean>(config: MockLinkToMediaModelConfig<Text>) => MockLinkToMediaModel<Text>;
15
+ export {};
@@ -8,7 +8,10 @@ const linkToMedia = (config) => {
8
8
  config: {
9
9
  label: capitalCase(faker.word()),
10
10
  placeholder: sentenceCase(faker.words(3)),
11
- select: prismic.CustomTypeModelLinkSelectType.Media
11
+ select: prismic.CustomTypeModelLinkSelectType.Media,
12
+ text: config.text ? {
13
+ type: prismic.CustomTypeModelFieldType.Text
14
+ } : void 0
12
15
  }
13
16
  };
14
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"linkToMedia.js","sources":["../../../src/model/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockLinkToMediaModelConfig = MockModelConfig;\n\nexport const linkToMedia = (\n\tconfig: MockLinkToMediaModelConfig,\n): prismic.CustomTypeModelLinkToMediaField => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Media,\n\t\t},\n\t};\n};\n"],"names":["changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;AASa,MAAA,cAAc,CAC1B,WAC4C;AAC5C,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAM,QAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOA,YAAuB,MAAM,MAAM;AAAA,MAC1C,aAAaC,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ,QAAQ,8BAA8B;AAAA,IAC9C;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"linkToMedia.js","sources":["../../../src/model/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { LinkText } from \"./link\";\nimport { MockModelConfig } from \"../types\";\n\ntype MockLinkToMediaModel<Text extends boolean = boolean> =\n\tprismic.CustomTypeModelLinkToMediaField & {\n\t\tconfig: Text extends true\n\t\t\t? {\n\t\t\t\t\ttext: LinkText;\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\ttext?: undefined;\n\t\t\t\t};\n\t};\n\nexport type MockLinkToMediaModelConfig<Text extends boolean = boolean> = {\n\ttext?: Text;\n} & MockModelConfig;\n\nexport const linkToMedia = <Text extends boolean = boolean>(\n\tconfig: MockLinkToMediaModelConfig<Text>,\n): MockLinkToMediaModel<Text> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.word()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.words(3)),\n\t\t\tselect: prismic.CustomTypeModelLinkSelectType.Media,\n\t\t\ttext: config.text\n\t\t\t\t? {\n\t\t\t\t\t\ttype: prismic.CustomTypeModelFieldType.Text,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t} as MockLinkToMediaModel<Text>;\n};\n"],"names":["changeCase.capitalCase","changeCase.sentenceCase"],"mappings":";;;AAuBa,MAAA,cAAc,CAC1B,WAC+B;AAC/B,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAM,QAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOA,YAAuB,MAAM,MAAM;AAAA,MAC1C,aAAaC,aAAwB,MAAM,MAAM,CAAC,CAAC;AAAA,MACnD,QAAQ,QAAQ,8BAA8B;AAAA,MAC9C,MAAM,OAAO,OACV;AAAA,QACA,MAAM,QAAQ,yBAAyB;AAAA,MAEvC,IAAA;AAAA,IACH;AAAA,EAAA;AAEH;"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const prismic = require("@prismicio/client");
4
+ const index = require('./../_node_modules/change-case/dist/index.cjs');
4
5
  const buildContentRelationshipField = require("../lib/buildContentRelationshipField.cjs");
5
6
  const createFaker = require("../lib/createFaker.cjs");
6
7
  const generateCustomTypeId = require("../lib/generateCustomTypeId.cjs");
@@ -25,7 +26,7 @@ function _interopNamespaceDefault(e) {
25
26
  }
26
27
  const prismic__namespace = /* @__PURE__ */ _interopNamespaceDefault(prismic);
27
28
  const contentRelationship = (config) => {
28
- var _a, _b;
29
+ var _a, _b, _c;
29
30
  const faker = config.faker || createFaker.createFaker(config.seed);
30
31
  if (config.state === "empty") {
31
32
  return {
@@ -55,7 +56,8 @@ const contentRelationship = (config) => {
55
56
  throw new Error("A linkable document could not be found.");
56
57
  }
57
58
  return buildContentRelationshipField.buildContentRelationshipField({
58
- document
59
+ document,
60
+ text: config.withText ?? ((_c = model.config) == null ? void 0 : _c.text) ? index.sentenceCase(faker.words(2)) : void 0
59
61
  });
60
62
  }
61
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contentRelationship.cjs","sources":["../../../src/value/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { buildContentRelationshipField } from \"../lib/buildContentRelationshipField\";\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateCustomTypeId } from \"../lib/generateCustomTypeId\";\nimport { generateTags } from \"../lib/generateTags\";\n\nimport {\n\tMockValueStateConfig,\n\tMockValueConfig,\n\tIterableElement,\n} from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { document as documentGen } from \"./document\";\n\nexport type MockContentRelationshipValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: prismic.PrismicDocument[];\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockContentRelationshipValue<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.ContentRelationshipField<\n\tIterableElement<NonNullable<Model[\"config\"]>[\"customtypes\"]>,\n\tstring,\n\tnever,\n\tState\n>;\n\nexport const contentRelationship = <\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockContentRelationshipValueConfig<Model, State>,\n): MockContentRelationshipValue<Model, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Document,\n\t\t} as MockContentRelationshipValue<Model, State>;\n\t} else {\n\t\tconst model = config.model || modelGen.contentRelationship({ faker });\n\n\t\tconst linkableDocuments = config.linkableDocuments\n\t\t\t? config.linkableDocuments.filter(\n\t\t\t\t\t(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t): document is prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t> => {\n\t\t\t\t\t\tlet shouldKeep = true;\n\n\t\t\t\t\t\tif (model.config?.customtypes) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep && model.config.customtypes.includes(document.type);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (model.config?.tags) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep &&\n\t\t\t\t\t\t\t\tmodel.config.tags.some((tag) => document.tags.includes(tag));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn shouldKeep;\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...documentGen({ faker }),\n\t\t\t\t\t\ttype: model.config?.customtypes\n\t\t\t\t\t\t\t? faker.randomElement(model.config.customtypes)\n\t\t\t\t\t\t\t: generateCustomTypeId({ faker }),\n\t\t\t\t\t\ttags: model.config?.tags\n\t\t\t\t\t\t\t? faker.randomElements(model.config.tags)\n\t\t\t\t\t\t\t: generateTags({ faker }),\n\t\t\t\t\t} as prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t>,\n\t\t\t\t];\n\n\t\tconst document = faker.randomElement(linkableDocuments);\n\n\t\tif (!document) {\n\t\t\tthrow new Error(\"A linkable document could not be found.\");\n\t\t}\n\n\t\treturn buildContentRelationshipField({\n\t\t\tdocument,\n\t\t}) as unknown as MockContentRelationshipValue<Model, State>;\n\t}\n};\n"],"names":["createFaker","prismic","modelGen.contentRelationship","document","_a","_b","documentGen","generateCustomTypeId","generateTags","buildContentRelationshipField"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwCa,MAAA,sBAAsB,CAKlC,WAC+C;;AAC/C,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAWC,mBAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACN,UAAM,QAAQ,OAAO,SAASC,sBAAAA,oBAA6B,EAAE,OAAO;AAEpE,UAAM,oBAAoB,OAAO,oBAC9B,OAAO,kBAAkB,OACzB,CACCC,cAIG;;AACH,UAAI,aAAa;AAEb,WAAAC,MAAA,MAAM,WAAN,gBAAAA,IAAc,aAAa;AAC9B,qBACC,cAAc,MAAM,OAAO,YAAY,SAASD,UAAS,IAAI;AAAA,MAC/D;AAEI,WAAAE,MAAA,MAAM,WAAN,gBAAAA,IAAc,MAAM;AAEtB,qBAAA,cACA,MAAM,OAAO,KAAK,KAAK,CAAC,QAAQF,UAAS,KAAK,SAAS,GAAG,CAAC;AAAA,MAC7D;AAEO,aAAA;AAAA,IAAA,CACP,IAED;AAAA,MACA;AAAA,QACC,GAAGG,WAAA,WAAY,EAAE,OAAO;AAAA,QACxB,QAAM,WAAM,WAAN,mBAAc,eACjB,MAAM,cAAc,MAAM,OAAO,WAAW,IAC5CC,0CAAqB,EAAE,OAAO;AAAA,QACjC,QAAM,WAAM,WAAN,mBAAc,QACjB,MAAM,eAAe,MAAM,OAAO,IAAI,IACtCC,0BAAa,EAAE,OAAO;AAAA,MAIzB;AAAA,IAAA;AAGE,UAAA,WAAW,MAAM,cAAc,iBAAiB;AAEtD,QAAI,CAAC,UAAU;AACR,YAAA,IAAI,MAAM,yCAAyC;AAAA,IAC1D;AAEA,WAAOC,4DAA8B;AAAA,MACpC;AAAA,IAAA,CACA;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"contentRelationship.cjs","sources":["../../../src/value/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { buildContentRelationshipField } from \"../lib/buildContentRelationshipField\";\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateCustomTypeId } from \"../lib/generateCustomTypeId\";\nimport { generateTags } from \"../lib/generateTags\";\n\nimport {\n\tMockValueStateConfig,\n\tMockValueConfig,\n\tIterableElement,\n} from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { document as documentGen } from \"./document\";\n\nexport type MockContentRelationshipValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\twithText?: NonNullable<Model[\"config\"]>[\"text\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: prismic.PrismicDocument[];\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockContentRelationshipValue<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.ContentRelationshipField<\n\tIterableElement<NonNullable<Model[\"config\"]>[\"customtypes\"]>,\n\tstring,\n\tnever,\n\tState\n>;\n\nexport const contentRelationship = <\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockContentRelationshipValueConfig<Model, State>,\n): MockContentRelationshipValue<Model, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Document,\n\t\t} as MockContentRelationshipValue<Model, State>;\n\t} else {\n\t\tconst model = config.model || modelGen.contentRelationship({ faker });\n\n\t\tconst linkableDocuments = config.linkableDocuments\n\t\t\t? config.linkableDocuments.filter(\n\t\t\t\t\t(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t): document is prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t> => {\n\t\t\t\t\t\tlet shouldKeep = true;\n\n\t\t\t\t\t\tif (model.config?.customtypes) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep && model.config.customtypes.includes(document.type);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (model.config?.tags) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep &&\n\t\t\t\t\t\t\t\tmodel.config.tags.some((tag) => document.tags.includes(tag));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn shouldKeep;\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...documentGen({ faker }),\n\t\t\t\t\t\ttype: model.config?.customtypes\n\t\t\t\t\t\t\t? faker.randomElement(model.config.customtypes)\n\t\t\t\t\t\t\t: generateCustomTypeId({ faker }),\n\t\t\t\t\t\ttags: model.config?.tags\n\t\t\t\t\t\t\t? faker.randomElements(model.config.tags)\n\t\t\t\t\t\t\t: generateTags({ faker }),\n\t\t\t\t\t} as prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t>,\n\t\t\t\t];\n\n\t\tconst document = faker.randomElement(linkableDocuments);\n\n\t\tif (!document) {\n\t\t\tthrow new Error(\"A linkable document could not be found.\");\n\t\t}\n\n\t\treturn buildContentRelationshipField({\n\t\t\tdocument,\n\t\t\ttext:\n\t\t\t\tconfig.withText ?? model.config?.text\n\t\t\t\t\t? changeCase.sentenceCase(faker.words(2))\n\t\t\t\t\t: undefined,\n\t\t}) as unknown as MockContentRelationshipValue<Model, State>;\n\t}\n};\n"],"names":["createFaker","prismic","modelGen.contentRelationship","document","_a","_b","documentGen","generateCustomTypeId","generateTags","buildContentRelationshipField","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA4Ca,MAAA,sBAAsB,CAKlC,WAC+C;;AAC/C,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAWC,mBAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACN,UAAM,QAAQ,OAAO,SAASC,sBAAAA,oBAA6B,EAAE,OAAO;AAEpE,UAAM,oBAAoB,OAAO,oBAC9B,OAAO,kBAAkB,OACzB,CACCC,cAIG;;AACH,UAAI,aAAa;AAEb,WAAAC,MAAA,MAAM,WAAN,gBAAAA,IAAc,aAAa;AAC9B,qBACC,cAAc,MAAM,OAAO,YAAY,SAASD,UAAS,IAAI;AAAA,MAC/D;AAEI,WAAAE,MAAA,MAAM,WAAN,gBAAAA,IAAc,MAAM;AAEtB,qBAAA,cACA,MAAM,OAAO,KAAK,KAAK,CAAC,QAAQF,UAAS,KAAK,SAAS,GAAG,CAAC;AAAA,MAC7D;AAEO,aAAA;AAAA,IAAA,CACP,IAED;AAAA,MACA;AAAA,QACC,GAAGG,WAAA,WAAY,EAAE,OAAO;AAAA,QACxB,QAAM,WAAM,WAAN,mBAAc,eACjB,MAAM,cAAc,MAAM,OAAO,WAAW,IAC5CC,0CAAqB,EAAE,OAAO;AAAA,QACjC,QAAM,WAAM,WAAN,mBAAc,QACjB,MAAM,eAAe,MAAM,OAAO,IAAI,IACtCC,0BAAa,EAAE,OAAO;AAAA,MAIzB;AAAA,IAAA;AAGE,UAAA,WAAW,MAAM,cAAc,iBAAiB;AAEtD,QAAI,CAAC,UAAU;AACR,YAAA,IAAI,MAAM,yCAAyC;AAAA,IAC1D;AAEA,WAAOC,4DAA8B;AAAA,MACpC;AAAA,MACA,MACC,OAAO,cAAY,WAAM,WAAN,mBAAc,QAC9BC,MAAW,aAAa,MAAM,MAAM,CAAC,CAAC,IACtC;AAAA,IAAA,CACJ;AAAA,EACF;AACD;;"}
@@ -1,6 +1,7 @@
1
1
  import * as prismic from "@prismicio/client";
2
2
  import { MockValueStateConfig, MockValueConfig, IterableElement } from "../types";
3
3
  export type MockContentRelationshipValueConfig<Model extends prismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField, State extends prismic.FieldState = prismic.FieldState> = {
4
+ withText?: NonNullable<Model["config"]>["text"] extends undefined ? false : boolean;
4
5
  /**
5
6
  * A list of potential documents to which the field can be linked.
6
7
  */
@@ -1,4 +1,5 @@
1
1
  import * as prismic from "@prismicio/client";
2
+ import { sentenceCase } from './../_node_modules/change-case/dist/index.js';
2
3
  import { buildContentRelationshipField } from "../lib/buildContentRelationshipField.js";
3
4
  import { createFaker } from "../lib/createFaker.js";
4
5
  import { generateCustomTypeId } from "../lib/generateCustomTypeId.js";
@@ -6,7 +7,7 @@ import { generateTags } from "../lib/generateTags.js";
6
7
  import { customType } from "./customType.js";
7
8
  import { contentRelationship as contentRelationship$1 } from "../model/contentRelationship.js";
8
9
  const contentRelationship = (config) => {
9
- var _a, _b;
10
+ var _a, _b, _c;
10
11
  const faker = config.faker || createFaker(config.seed);
11
12
  if (config.state === "empty") {
12
13
  return {
@@ -36,7 +37,8 @@ const contentRelationship = (config) => {
36
37
  throw new Error("A linkable document could not be found.");
37
38
  }
38
39
  return buildContentRelationshipField({
39
- document
40
+ document,
41
+ text: config.withText ?? ((_c = model.config) == null ? void 0 : _c.text) ? sentenceCase(faker.words(2)) : void 0
40
42
  });
41
43
  }
42
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contentRelationship.js","sources":["../../../src/value/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { buildContentRelationshipField } from \"../lib/buildContentRelationshipField\";\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateCustomTypeId } from \"../lib/generateCustomTypeId\";\nimport { generateTags } from \"../lib/generateTags\";\n\nimport {\n\tMockValueStateConfig,\n\tMockValueConfig,\n\tIterableElement,\n} from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { document as documentGen } from \"./document\";\n\nexport type MockContentRelationshipValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: prismic.PrismicDocument[];\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockContentRelationshipValue<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.ContentRelationshipField<\n\tIterableElement<NonNullable<Model[\"config\"]>[\"customtypes\"]>,\n\tstring,\n\tnever,\n\tState\n>;\n\nexport const contentRelationship = <\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockContentRelationshipValueConfig<Model, State>,\n): MockContentRelationshipValue<Model, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Document,\n\t\t} as MockContentRelationshipValue<Model, State>;\n\t} else {\n\t\tconst model = config.model || modelGen.contentRelationship({ faker });\n\n\t\tconst linkableDocuments = config.linkableDocuments\n\t\t\t? config.linkableDocuments.filter(\n\t\t\t\t\t(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t): document is prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t> => {\n\t\t\t\t\t\tlet shouldKeep = true;\n\n\t\t\t\t\t\tif (model.config?.customtypes) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep && model.config.customtypes.includes(document.type);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (model.config?.tags) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep &&\n\t\t\t\t\t\t\t\tmodel.config.tags.some((tag) => document.tags.includes(tag));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn shouldKeep;\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...documentGen({ faker }),\n\t\t\t\t\t\ttype: model.config?.customtypes\n\t\t\t\t\t\t\t? faker.randomElement(model.config.customtypes)\n\t\t\t\t\t\t\t: generateCustomTypeId({ faker }),\n\t\t\t\t\t\ttags: model.config?.tags\n\t\t\t\t\t\t\t? faker.randomElements(model.config.tags)\n\t\t\t\t\t\t\t: generateTags({ faker }),\n\t\t\t\t\t} as prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t>,\n\t\t\t\t];\n\n\t\tconst document = faker.randomElement(linkableDocuments);\n\n\t\tif (!document) {\n\t\t\tthrow new Error(\"A linkable document could not be found.\");\n\t\t}\n\n\t\treturn buildContentRelationshipField({\n\t\t\tdocument,\n\t\t}) as unknown as MockContentRelationshipValue<Model, State>;\n\t}\n};\n"],"names":["modelGen.contentRelationship","document","_a","_b","documentGen"],"mappings":";;;;;;;AAwCa,MAAA,sBAAsB,CAKlC,WAC+C;;AAC/C,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW,QAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACN,UAAM,QAAQ,OAAO,SAASA,sBAA6B,EAAE,OAAO;AAEpE,UAAM,oBAAoB,OAAO,oBAC9B,OAAO,kBAAkB,OACzB,CACCC,cAIG;;AACH,UAAI,aAAa;AAEb,WAAAC,MAAA,MAAM,WAAN,gBAAAA,IAAc,aAAa;AAC9B,qBACC,cAAc,MAAM,OAAO,YAAY,SAASD,UAAS,IAAI;AAAA,MAC/D;AAEI,WAAAE,MAAA,MAAM,WAAN,gBAAAA,IAAc,MAAM;AAEtB,qBAAA,cACA,MAAM,OAAO,KAAK,KAAK,CAAC,QAAQF,UAAS,KAAK,SAAS,GAAG,CAAC;AAAA,MAC7D;AAEO,aAAA;AAAA,IAAA,CACP,IAED;AAAA,MACA;AAAA,QACC,GAAGG,WAAY,EAAE,OAAO;AAAA,QACxB,QAAM,WAAM,WAAN,mBAAc,eACjB,MAAM,cAAc,MAAM,OAAO,WAAW,IAC5C,qBAAqB,EAAE,OAAO;AAAA,QACjC,QAAM,WAAM,WAAN,mBAAc,QACjB,MAAM,eAAe,MAAM,OAAO,IAAI,IACtC,aAAa,EAAE,OAAO;AAAA,MAIzB;AAAA,IAAA;AAGE,UAAA,WAAW,MAAM,cAAc,iBAAiB;AAEtD,QAAI,CAAC,UAAU;AACR,YAAA,IAAI,MAAM,yCAAyC;AAAA,IAC1D;AAEA,WAAO,8BAA8B;AAAA,MACpC;AAAA,IAAA,CACA;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"contentRelationship.js","sources":["../../../src/value/contentRelationship.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { buildContentRelationshipField } from \"../lib/buildContentRelationshipField\";\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateCustomTypeId } from \"../lib/generateCustomTypeId\";\nimport { generateTags } from \"../lib/generateTags\";\n\nimport {\n\tMockValueStateConfig,\n\tMockValueConfig,\n\tIterableElement,\n} from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { document as documentGen } from \"./document\";\n\nexport type MockContentRelationshipValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\twithText?: NonNullable<Model[\"config\"]>[\"text\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: prismic.PrismicDocument[];\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockContentRelationshipValue<\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.ContentRelationshipField<\n\tIterableElement<NonNullable<Model[\"config\"]>[\"customtypes\"]>,\n\tstring,\n\tnever,\n\tState\n>;\n\nexport const contentRelationship = <\n\tModel extends\n\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockContentRelationshipValueConfig<Model, State>,\n): MockContentRelationshipValue<Model, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Document,\n\t\t} as MockContentRelationshipValue<Model, State>;\n\t} else {\n\t\tconst model = config.model || modelGen.contentRelationship({ faker });\n\n\t\tconst linkableDocuments = config.linkableDocuments\n\t\t\t? config.linkableDocuments.filter(\n\t\t\t\t\t(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t): document is prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t> => {\n\t\t\t\t\t\tlet shouldKeep = true;\n\n\t\t\t\t\t\tif (model.config?.customtypes) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep && model.config.customtypes.includes(document.type);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (model.config?.tags) {\n\t\t\t\t\t\t\tshouldKeep =\n\t\t\t\t\t\t\t\tshouldKeep &&\n\t\t\t\t\t\t\t\tmodel.config.tags.some((tag) => document.tags.includes(tag));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn shouldKeep;\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...documentGen({ faker }),\n\t\t\t\t\t\ttype: model.config?.customtypes\n\t\t\t\t\t\t\t? faker.randomElement(model.config.customtypes)\n\t\t\t\t\t\t\t: generateCustomTypeId({ faker }),\n\t\t\t\t\t\ttags: model.config?.tags\n\t\t\t\t\t\t\t? faker.randomElements(model.config.tags)\n\t\t\t\t\t\t\t: generateTags({ faker }),\n\t\t\t\t\t} as prismic.PrismicDocument<\n\t\t\t\t\t\tnever,\n\t\t\t\t\t\tNonNullable<NonNullable<Model[\"config\"]>[\"customtypes\"]>[number]\n\t\t\t\t\t>,\n\t\t\t\t];\n\n\t\tconst document = faker.randomElement(linkableDocuments);\n\n\t\tif (!document) {\n\t\t\tthrow new Error(\"A linkable document could not be found.\");\n\t\t}\n\n\t\treturn buildContentRelationshipField({\n\t\t\tdocument,\n\t\t\ttext:\n\t\t\t\tconfig.withText ?? model.config?.text\n\t\t\t\t\t? changeCase.sentenceCase(faker.words(2))\n\t\t\t\t\t: undefined,\n\t\t}) as unknown as MockContentRelationshipValue<Model, State>;\n\t}\n};\n"],"names":["modelGen.contentRelationship","document","_a","_b","documentGen","changeCase.sentenceCase"],"mappings":";;;;;;;;AA4Ca,MAAA,sBAAsB,CAKlC,WAC+C;;AAC/C,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW,QAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACN,UAAM,QAAQ,OAAO,SAASA,sBAA6B,EAAE,OAAO;AAEpE,UAAM,oBAAoB,OAAO,oBAC9B,OAAO,kBAAkB,OACzB,CACCC,cAIG;;AACH,UAAI,aAAa;AAEb,WAAAC,MAAA,MAAM,WAAN,gBAAAA,IAAc,aAAa;AAC9B,qBACC,cAAc,MAAM,OAAO,YAAY,SAASD,UAAS,IAAI;AAAA,MAC/D;AAEI,WAAAE,MAAA,MAAM,WAAN,gBAAAA,IAAc,MAAM;AAEtB,qBAAA,cACA,MAAM,OAAO,KAAK,KAAK,CAAC,QAAQF,UAAS,KAAK,SAAS,GAAG,CAAC;AAAA,MAC7D;AAEO,aAAA;AAAA,IAAA,CACP,IAED;AAAA,MACA;AAAA,QACC,GAAGG,WAAY,EAAE,OAAO;AAAA,QACxB,QAAM,WAAM,WAAN,mBAAc,eACjB,MAAM,cAAc,MAAM,OAAO,WAAW,IAC5C,qBAAqB,EAAE,OAAO;AAAA,QACjC,QAAM,WAAM,WAAN,mBAAc,QACjB,MAAM,eAAe,MAAM,OAAO,IAAI,IACtC,aAAa,EAAE,OAAO;AAAA,MAIzB;AAAA,IAAA;AAGE,UAAA,WAAW,MAAM,cAAc,iBAAiB;AAEtD,QAAI,CAAC,UAAU;AACR,YAAA,IAAI,MAAM,yCAAyC;AAAA,IAC1D;AAEA,WAAO,8BAA8B;AAAA,MACpC;AAAA,MACA,MACC,OAAO,cAAY,WAAM,WAAN,mBAAc,QAC9BC,aAAwB,MAAM,MAAM,CAAC,CAAC,IACtC;AAAA,IAAA,CACJ;AAAA,EACF;AACD;"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const prismic = require("@prismicio/client");
4
+ const index = require('./../_node_modules/change-case/dist/index.cjs');
4
5
  const createFaker = require("../lib/createFaker.cjs");
5
6
  const contentRelationship = require("./contentRelationship.cjs");
6
7
  const linkToMedia = require("./linkToMedia.cjs");
@@ -23,7 +24,7 @@ function _interopNamespaceDefault(e) {
23
24
  }
24
25
  const prismic__namespace = /* @__PURE__ */ _interopNamespaceDefault(prismic);
25
26
  const link = (config) => {
26
- var _a;
27
+ var _a, _b;
27
28
  const faker = config.faker || createFaker.createFaker(config.seed);
28
29
  const type = config.type || faker.randomElement([
29
30
  prismic__namespace.LinkType.Web,
@@ -55,7 +56,8 @@ const link = (config) => {
55
56
  return {
56
57
  link_type: prismic__namespace.LinkType.Web,
57
58
  url: faker.url(),
58
- target: config.withTargetBlank ?? (((_a = model.config) == null ? void 0 : _a.allowTargetBlank) && faker.boolean()) ? "_blank" : void 0
59
+ target: config.withTargetBlank ?? (((_a = model.config) == null ? void 0 : _a.allowTargetBlank) && faker.boolean()) ? "_blank" : void 0,
60
+ text: config.withText ?? ((_b = model.config) == null ? void 0 : _b.text) ? index.sentenceCase(faker.words(2)) : void 0
59
61
  };
60
62
  }
61
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"link.cjs","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t\t? prismic.FilledLinkToWebField\n\t\t: LinkType extends typeof prismic.LinkType.Media\n\t\t\t? prismic.FilledLinkToMediaField\n\t\t\t: LinkType extends typeof prismic.LinkType.Document\n\t\t\t\t? prismic.FilledContentRelationshipField\n\t\t\t\t: never;\n\nexport const link = <\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["createFaker","prismic","contentRelationship","linkToMedia","modelGen.link"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA+Ca,MAAA,OAAO,CAOnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnBC,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAKA,mBAAQ,SAAS,UAAU;AAC/B,eAAOC,wCAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACF;AAAA,MAEA,KAAKD,mBAAQ,SAAS,OAAO;AAC5B,eAAOE,wBAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEA,KAAKF,mBAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASG,OAAAA,KAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAWH,mBAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,QAAA;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AACD;;"}
1
+ {"version":3,"file":"link.cjs","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\twithText?: NonNullable<Model[\"config\"]>[\"text\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t\t? prismic.FilledLinkToWebField\n\t\t: LinkType extends typeof prismic.LinkType.Media\n\t\t\t? prismic.FilledLinkToMediaField\n\t\t\t: LinkType extends typeof prismic.LinkType.Document\n\t\t\t\t? prismic.FilledContentRelationshipField\n\t\t\t\t: never;\n\nexport const link = <\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\ttext:\n\t\t\t\t\t\tconfig.withText ?? model.config?.text\n\t\t\t\t\t\t\t? changeCase.sentenceCase(faker.words(2))\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["createFaker","prismic","contentRelationship","linkToMedia","modelGen.link","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmDa,MAAA,OAAO,CAOnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnBC,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,IACjBA,mBAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAKA,mBAAQ,SAAS,UAAU;AAC/B,eAAOC,wCAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACF;AAAA,MAEA,KAAKD,mBAAQ,SAAS,OAAO;AAC5B,eAAOE,wBAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEA,KAAKF,mBAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASG,OAAAA,KAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAWH,mBAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,UACJ,MACC,OAAO,cAAY,WAAM,WAAN,mBAAc,QAC9BI,MAAW,aAAa,MAAM,MAAM,CAAC,CAAC,IACtC;AAAA,QAAA;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AACD;;"}
@@ -3,6 +3,7 @@ import { MockValueStateConfig, MockValueConfig } from "../types";
3
3
  export type MockLinkValueConfig<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], Model extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField, State extends prismic.FieldState = prismic.FieldState> = {
4
4
  type?: LinkType;
5
5
  withTargetBlank?: NonNullable<Model["config"]>["allowTargetBlank"] extends undefined ? false : boolean;
6
+ withText?: NonNullable<Model["config"]>["text"] extends undefined ? false : boolean;
6
7
  /**
7
8
  * A list of potential documents to which the field can be linked.
8
9
  */
@@ -1,10 +1,11 @@
1
1
  import * as prismic from "@prismicio/client";
2
+ import { sentenceCase } from './../_node_modules/change-case/dist/index.js';
2
3
  import { createFaker } from "../lib/createFaker.js";
3
4
  import { contentRelationship } from "./contentRelationship.js";
4
5
  import { linkToMedia } from "./linkToMedia.js";
5
6
  import { link as link$1 } from "../model/link.js";
6
7
  const link = (config) => {
7
- var _a;
8
+ var _a, _b;
8
9
  const faker = config.faker || createFaker(config.seed);
9
10
  const type = config.type || faker.randomElement([
10
11
  prismic.LinkType.Web,
@@ -36,7 +37,8 @@ const link = (config) => {
36
37
  return {
37
38
  link_type: prismic.LinkType.Web,
38
39
  url: faker.url(),
39
- target: config.withTargetBlank ?? (((_a = model.config) == null ? void 0 : _a.allowTargetBlank) && faker.boolean()) ? "_blank" : void 0
40
+ target: config.withTargetBlank ?? (((_a = model.config) == null ? void 0 : _a.allowTargetBlank) && faker.boolean()) ? "_blank" : void 0,
41
+ text: config.withText ?? ((_b = model.config) == null ? void 0 : _b.text) ? sentenceCase(faker.words(2)) : void 0
40
42
  };
41
43
  }
42
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t\t? prismic.FilledLinkToWebField\n\t\t: LinkType extends typeof prismic.LinkType.Media\n\t\t\t? prismic.FilledLinkToMediaField\n\t\t\t: LinkType extends typeof prismic.LinkType.Document\n\t\t\t\t? prismic.FilledContentRelationshipField\n\t\t\t\t: never;\n\nexport const link = <\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["modelGen.link"],"mappings":";;;;;AA+Ca,MAAA,OAAO,CAOnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAK,QAAQ,SAAS,UAAU;AAC/B,eAAO,oBAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ,SAAS,OAAO;AAC5B,eAAO,YAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASA,OAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAW,QAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,QAAA;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"link.js","sources":["../../../src/value/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nimport { contentRelationship } from \"./contentRelationship\";\nimport { linkToMedia } from \"./linkToMedia\";\n\nexport type MockLinkValueConfig<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\ttype?: LinkType;\n\twithTargetBlank?: NonNullable<\n\t\tModel[\"config\"]\n\t>[\"allowTargetBlank\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\twithText?: NonNullable<Model[\"config\"]>[\"text\"] extends undefined\n\t\t? false\n\t\t: boolean;\n\t/**\n\t * A list of potential documents to which the field can be linked.\n\t */\n\tlinkableDocuments?: LinkType extends typeof prismic.LinkType.Document\n\t\t? prismic.PrismicDocument[]\n\t\t: never;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkValue<\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tState extends prismic.FieldState = \"filled\",\n> = State extends \"empty\"\n\t? prismic.EmptyLinkField<LinkType>\n\t: LinkType extends typeof prismic.LinkType.Web\n\t\t? prismic.FilledLinkToWebField\n\t\t: LinkType extends typeof prismic.LinkType.Media\n\t\t\t? prismic.FilledLinkToMediaField\n\t\t\t: LinkType extends typeof prismic.LinkType.Document\n\t\t\t\t? prismic.FilledContentRelationshipField\n\t\t\t\t: never;\n\nexport const link = <\n\tLinkType extends\n\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\tModel extends\n\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkValueConfig<LinkType, Model, State>,\n): MockLinkValue<LinkType, State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst type =\n\t\tconfig.type ||\n\t\tfaker.randomElement([\n\t\t\tprismic.LinkType.Web,\n\t\t\tprismic.LinkType.Document,\n\t\t\tprismic.LinkType.Media,\n\t\t]);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: type,\n\t\t} as MockLinkValue<LinkType, State>;\n\t} else {\n\t\tswitch (type) {\n\t\t\tcase prismic.LinkType.Document: {\n\t\t\t\treturn contentRelationship({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t\tlinkableDocuments: config.linkableDocuments,\n\t\t\t\t}) as unknown as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Media: {\n\t\t\t\treturn linkToMedia({\n\t\t\t\t\tfaker,\n\t\t\t\t\tstate: config.state,\n\t\t\t\t}) as MockLinkValue<LinkType, State>;\n\t\t\t}\n\n\t\t\tcase prismic.LinkType.Web:\n\t\t\tdefault: {\n\t\t\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\t\t\treturn {\n\t\t\t\t\tlink_type: prismic.LinkType.Web,\n\t\t\t\t\turl: faker.url(),\n\t\t\t\t\ttarget:\n\t\t\t\t\t\tconfig.withTargetBlank ??\n\t\t\t\t\t\t(model.config?.allowTargetBlank && faker.boolean())\n\t\t\t\t\t\t\t? \"_blank\"\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\ttext:\n\t\t\t\t\t\tconfig.withText ?? model.config?.text\n\t\t\t\t\t\t\t? changeCase.sentenceCase(faker.words(2))\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} as MockLinkValue<LinkType, State>;\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["modelGen.link","changeCase.sentenceCase"],"mappings":";;;;;;AAmDa,MAAA,OAAO,CAOnB,WACmC;;AACnC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAErD,QAAM,OACL,OAAO,QACP,MAAM,cAAc;AAAA,IACnB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,EAAA,CACjB;AAEE,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,YAAQ,MAAM;AAAA,MACb,KAAK,QAAQ,SAAS,UAAU;AAC/B,eAAO,oBAAoB;AAAA,UAC1B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,mBAAmB,OAAO;AAAA,QAAA,CAC1B;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ,SAAS,OAAO;AAC5B,eAAO,YAAY;AAAA,UAClB;AAAA,UACA,OAAO,OAAO;AAAA,QAAA,CACd;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ,SAAS;AAAA,MACtB,SAAS;AACR,cAAM,QAAQ,OAAO,SAASA,OAAc,EAAE,OAAO;AAE9C,eAAA;AAAA,UACN,WAAW,QAAQ,SAAS;AAAA,UAC5B,KAAK,MAAM,IAAK;AAAA,UAChB,QACC,OAAO,sBACN,WAAM,WAAN,mBAAc,qBAAoB,MAAM,QAAO,KAC7C,WACA;AAAA,UACJ,MACC,OAAO,cAAY,WAAM,WAAN,mBAAc,QAC9BC,aAAwB,MAAM,MAAM,CAAC,CAAC,IACtC;AAAA,QAAA;AAAA,MAEN;AAAA,IACD;AAAA,EACD;AACD;"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const prismic = require("@prismicio/client");
4
4
  const index = require('./../_node_modules/change-case/dist/index.cjs');
5
5
  const createFaker = require("../lib/createFaker.cjs");
6
+ const link = require("../model/link.cjs");
6
7
  function _interopNamespaceDefault(e) {
7
8
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
9
  if (e) {
@@ -21,12 +22,14 @@ function _interopNamespaceDefault(e) {
21
22
  }
22
23
  const prismic__namespace = /* @__PURE__ */ _interopNamespaceDefault(prismic);
23
24
  const linkToMedia = (config) => {
25
+ var _a;
24
26
  const faker = config.faker || createFaker.createFaker(config.seed);
25
27
  if (config.state === "empty") {
26
28
  return {
27
29
  link_type: prismic__namespace.LinkType.Media
28
30
  };
29
31
  } else {
32
+ const model = config.model || link.link({ faker });
30
33
  return {
31
34
  link_type: prismic__namespace.LinkType.Media,
32
35
  name: `${index.snakeCase(faker.words(faker.range(1, 2)))}.example`,
@@ -34,7 +37,8 @@ const linkToMedia = (config) => {
34
37
  url: faker.url(),
35
38
  size: faker.range(500, 3e3).toString(),
36
39
  height: faker.range(500, 3e3).toString(),
37
- width: faker.range(500, 3e3).toString()
40
+ width: faker.range(500, 3e3).toString(),
41
+ text: config.withText ?? ((_a = model.config) == null ? void 0 : _a.text) ? index.sentenceCase(faker.words(2)) : void 0
38
42
  };
39
43
  }
40
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"linkToMedia.cjs","sources":["../../../src/value/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockLinkToMediaValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\ntype MockLinkToMediaValue<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.LinkToMediaField<State>;\n\nexport const linkToMedia = <\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkToMediaValueConfig<Model, State>,\n): MockLinkToMediaValue<State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t} as MockLinkToMediaValue<State>;\n\t} else {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t\tname: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,\n\t\t\tkind: changeCase.snakeCase(faker.word()),\n\t\t\turl: faker.url(),\n\t\t\tsize: faker.range(500, 3000).toString(),\n\t\t\theight: faker.range(500, 3000).toString(),\n\t\t\twidth: faker.range(500, 3000).toString(),\n\t\t} as MockLinkToMediaValue<State>;\n\t}\n};\n"],"names":["createFaker","prismic","changeCase.snakeCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiBa,MAAA,cAAc,CAK1B,WACgC;AAChC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAWC,mBAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACC,WAAA;AAAA,MACN,WAAWA,mBAAQ,SAAS;AAAA,MAC5B,MAAM,GAAGC,gBAAqB,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAAA,MAC7D,MAAMA,MAAqB,UAAA,MAAM,MAAM;AAAA,MACvC,KAAK,MAAM,IAAK;AAAA,MAChB,MAAM,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACvC,QAAQ,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACzC,OAAO,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,IAAA;AAAA,EAE1C;AACD;;"}
1
+ {"version":3,"file":"linkToMedia.cjs","sources":["../../../src/value/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockLinkToMediaValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\twithText?: NonNullable<Model[\"config\"]>[\"text\"] extends undefined\n\t\t? false\n\t\t: boolean;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkToMediaValue<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.LinkToMediaField<State>;\n\nexport const linkToMedia = <\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkToMediaValueConfig<Model, State>,\n): MockLinkToMediaValue<State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t} as MockLinkToMediaValue<State>;\n\t} else {\n\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t\tname: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,\n\t\t\tkind: changeCase.snakeCase(faker.word()),\n\t\t\turl: faker.url(),\n\t\t\tsize: faker.range(500, 3000).toString(),\n\t\t\theight: faker.range(500, 3000).toString(),\n\t\t\twidth: faker.range(500, 3000).toString(),\n\t\t\ttext:\n\t\t\t\tconfig.withText ?? model.config?.text\n\t\t\t\t\t? changeCase.sentenceCase(faker.words(2))\n\t\t\t\t\t: undefined,\n\t\t} as MockLinkToMediaValue<State>;\n\t}\n};\n"],"names":["createFaker","prismic","modelGen.link","changeCase.snakeCase","changeCase.sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwBa,MAAA,cAAc,CAK1B,WACgC;;AAChC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAWC,mBAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACN,UAAM,QAAQ,OAAO,SAASC,KAAAA,KAAc,EAAE,OAAO;AAE9C,WAAA;AAAA,MACN,WAAWD,mBAAQ,SAAS;AAAA,MAC5B,MAAM,GAAGE,gBAAqB,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAAA,MAC7D,MAAMA,MAAqB,UAAA,MAAM,MAAM;AAAA,MACvC,KAAK,MAAM,IAAK;AAAA,MAChB,MAAM,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACvC,QAAQ,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACzC,OAAO,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACxC,MACC,OAAO,cAAY,WAAM,WAAN,mBAAc,QAC9BC,MAAW,aAAa,MAAM,MAAM,CAAC,CAAC,IACtC;AAAA,IAAA;AAAA,EAEN;AACD;;"}
@@ -1,6 +1,8 @@
1
1
  import * as prismic from "@prismicio/client";
2
2
  import { MockValueStateConfig, MockValueConfig } from "../types";
3
- export type MockLinkToMediaValueConfig<Model extends prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField, State extends prismic.FieldState = prismic.FieldState> = MockValueConfig<Model> & MockValueStateConfig<State>;
3
+ export type MockLinkToMediaValueConfig<Model extends prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField, State extends prismic.FieldState = prismic.FieldState> = {
4
+ withText?: NonNullable<Model["config"]>["text"] extends undefined ? false : boolean;
5
+ } & MockValueConfig<Model> & MockValueStateConfig<State>;
4
6
  type MockLinkToMediaValue<State extends prismic.FieldState = prismic.FieldState> = prismic.LinkToMediaField<State>;
5
7
  export declare const linkToMedia: <Model extends prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField, State extends prismic.FieldState = "filled">(config: MockLinkToMediaValueConfig<Model, State>) => MockLinkToMediaValue<State>;
6
8
  export {};
@@ -1,13 +1,16 @@
1
1
  import * as prismic from "@prismicio/client";
2
- import { snakeCase } from './../_node_modules/change-case/dist/index.js';
2
+ import { snakeCase, sentenceCase } from './../_node_modules/change-case/dist/index.js';
3
3
  import { createFaker } from "../lib/createFaker.js";
4
+ import { link } from "../model/link.js";
4
5
  const linkToMedia = (config) => {
6
+ var _a;
5
7
  const faker = config.faker || createFaker(config.seed);
6
8
  if (config.state === "empty") {
7
9
  return {
8
10
  link_type: prismic.LinkType.Media
9
11
  };
10
12
  } else {
13
+ const model = config.model || link({ faker });
11
14
  return {
12
15
  link_type: prismic.LinkType.Media,
13
16
  name: `${snakeCase(faker.words(faker.range(1, 2)))}.example`,
@@ -15,7 +18,8 @@ const linkToMedia = (config) => {
15
18
  url: faker.url(),
16
19
  size: faker.range(500, 3e3).toString(),
17
20
  height: faker.range(500, 3e3).toString(),
18
- width: faker.range(500, 3e3).toString()
21
+ width: faker.range(500, 3e3).toString(),
22
+ text: config.withText ?? ((_a = model.config) == null ? void 0 : _a.text) ? sentenceCase(faker.words(2)) : void 0
19
23
  };
20
24
  }
21
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"linkToMedia.js","sources":["../../../src/value/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nexport type MockLinkToMediaValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = MockValueConfig<Model> & MockValueStateConfig<State>;\n\ntype MockLinkToMediaValue<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.LinkToMediaField<State>;\n\nexport const linkToMedia = <\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkToMediaValueConfig<Model, State>,\n): MockLinkToMediaValue<State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t} as MockLinkToMediaValue<State>;\n\t} else {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t\tname: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,\n\t\t\tkind: changeCase.snakeCase(faker.word()),\n\t\t\turl: faker.url(),\n\t\t\tsize: faker.range(500, 3000).toString(),\n\t\t\theight: faker.range(500, 3000).toString(),\n\t\t\twidth: faker.range(500, 3000).toString(),\n\t\t} as MockLinkToMediaValue<State>;\n\t}\n};\n"],"names":["changeCase.snakeCase"],"mappings":";;;AAiBa,MAAA,cAAc,CAK1B,WACgC;AAChC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW,QAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACC,WAAA;AAAA,MACN,WAAW,QAAQ,SAAS;AAAA,MAC5B,MAAM,GAAGA,UAAqB,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAAA,MAC7D,MAAMA,UAAqB,MAAM,MAAM;AAAA,MACvC,KAAK,MAAM,IAAK;AAAA,MAChB,MAAM,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACvC,QAAQ,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACzC,OAAO,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,IAAA;AAAA,EAE1C;AACD;"}
1
+ {"version":3,"file":"linkToMedia.js","sources":["../../../src/value/linkToMedia.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockValueConfig } from \"../types\";\n\nimport * as modelGen from \"../model\";\n\nexport type MockLinkToMediaValueConfig<\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\twithText?: NonNullable<Model[\"config\"]>[\"text\"] extends undefined\n\t\t? false\n\t\t: boolean;\n} & MockValueConfig<Model> &\n\tMockValueStateConfig<State>;\n\ntype MockLinkToMediaValue<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = prismic.LinkToMediaField<State>;\n\nexport const linkToMedia = <\n\tModel extends\n\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\tState extends prismic.FieldState = \"filled\",\n>(\n\tconfig: MockLinkToMediaValueConfig<Model, State>,\n): MockLinkToMediaValue<State> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t} as MockLinkToMediaValue<State>;\n\t} else {\n\t\tconst model = config.model || modelGen.link({ faker });\n\n\t\treturn {\n\t\t\tlink_type: prismic.LinkType.Media,\n\t\t\tname: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,\n\t\t\tkind: changeCase.snakeCase(faker.word()),\n\t\t\turl: faker.url(),\n\t\t\tsize: faker.range(500, 3000).toString(),\n\t\t\theight: faker.range(500, 3000).toString(),\n\t\t\twidth: faker.range(500, 3000).toString(),\n\t\t\ttext:\n\t\t\t\tconfig.withText ?? model.config?.text\n\t\t\t\t\t? changeCase.sentenceCase(faker.words(2))\n\t\t\t\t\t: undefined,\n\t\t} as MockLinkToMediaValue<State>;\n\t}\n};\n"],"names":["modelGen.link","changeCase.snakeCase","changeCase.sentenceCase"],"mappings":";;;;AAwBa,MAAA,cAAc,CAK1B,WACgC;;AAChC,QAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,IAAI;AAEjD,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,WAAW,QAAQ,SAAS;AAAA,IAAA;AAAA,SAEvB;AACN,UAAM,QAAQ,OAAO,SAASA,KAAc,EAAE,OAAO;AAE9C,WAAA;AAAA,MACN,WAAW,QAAQ,SAAS;AAAA,MAC5B,MAAM,GAAGC,UAAqB,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAAA,MAC7D,MAAMA,UAAqB,MAAM,MAAM;AAAA,MACvC,KAAK,MAAM,IAAK;AAAA,MAChB,MAAM,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACvC,QAAQ,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACzC,OAAO,MAAM,MAAM,KAAK,GAAI,EAAE,SAAU;AAAA,MACxC,MACC,OAAO,cAAY,WAAM,WAAN,mBAAc,QAC9BC,aAAwB,MAAM,MAAM,CAAC,CAAC,IACtC;AAAA,IAAA;AAAA,EAEN;AACD;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismicio/mock",
3
- "version": "0.3.7-alpha.1",
3
+ "version": "0.3.8-alpha.0",
4
4
  "description": "Generate mock Prismic documents, fields, Slices, and models for development and testing environments",
5
5
  "keywords": [
6
6
  "typescript",
@@ -55,13 +55,15 @@
55
55
  "size": "size-limit",
56
56
  "test": "npm run lint && npm run types && npm run unit && npm run build && npm run size",
57
57
  "types": "tsc --noEmit",
58
- "unit": "nyc --reporter=lcovonly --reporter=text --exclude-after-remap=false ava"
58
+ "unit": "nyc --reporter=lcovonly --reporter=text --exclude-after-remap=false ava",
59
+ "unit:watch": "nyc --reporter=lcovonly --reporter=text --exclude-after-remap=false ava --watch",
60
+ "unit:update-1": "nyc --reporter=lcovonly --reporter=text --exclude-after-remap=false ava --update-snapshots --match='creates mock field models for group field'"
59
61
  },
60
62
  "dependencies": {
61
63
  "change-case": "^5.4.4"
62
64
  },
63
65
  "devDependencies": {
64
- "@prismicio/client": "^7.6.0-alpha.0",
66
+ "@prismicio/client": "^7.9.0-alpha.0",
65
67
  "@size-limit/preset-small-lib": "^11.1.2",
66
68
  "@types/node": "^20.12.7",
67
69
  "@typescript-eslint/eslint-plugin": "^7.6.0",
@@ -1,13 +1,16 @@
1
1
  import * as prismic from "@prismicio/client";
2
2
 
3
- type BuildEmbedFieldConfig<Document extends prismic.PrismicDocument> = {
3
+ type BuildContentRelationshipFieldConfig<
4
+ Document extends prismic.PrismicDocument,
5
+ > = {
4
6
  document: Document;
7
+ text?: string;
5
8
  };
6
9
 
7
10
  export const buildContentRelationshipField = <
8
11
  Document extends prismic.PrismicDocument,
9
12
  >(
10
- config: BuildEmbedFieldConfig<Document>,
13
+ config: BuildContentRelationshipFieldConfig<Document>,
11
14
  ): prismic.ContentRelationshipField<
12
15
  Document["type"],
13
16
  Document["lang"],
@@ -24,5 +27,6 @@ export const buildContentRelationshipField = <
24
27
  url: config.document.url || undefined,
25
28
  slug: config.document.slugs[0],
26
29
  isBroken: false,
30
+ text: config.text,
27
31
  };
28
32
  };
@@ -3,22 +3,40 @@ import * as changeCase from "change-case";
3
3
 
4
4
  import { createFaker } from "../lib/createFaker";
5
5
 
6
+ import { LinkText } from "./link";
6
7
  import { MockModelConfig } from "../types";
7
8
 
9
+ type MockContentRelationshipModel<
10
+ CustomTypeIDs extends string = string,
11
+ Tags extends string = string,
12
+ Text extends boolean = boolean,
13
+ > = prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> & {
14
+ config: Text extends true
15
+ ? {
16
+ text: LinkText;
17
+ }
18
+ : {
19
+ text?: undefined;
20
+ };
21
+ };
22
+
8
23
  export type MockContentRelationshipModelConfig<
9
24
  CustomTypeIDs extends string = string,
10
25
  Tags extends string = string,
26
+ Text extends boolean = boolean,
11
27
  > = {
12
28
  customTypeIDs?: readonly CustomTypeIDs[];
13
29
  tags?: readonly Tags[];
30
+ text?: Text;
14
31
  } & MockModelConfig;
15
32
 
16
33
  export const contentRelationship = <
17
34
  CustomTypeIDs extends string,
18
35
  Tags extends string,
36
+ Text extends boolean = boolean,
19
37
  >(
20
- config: MockContentRelationshipModelConfig<CustomTypeIDs, Tags>,
21
- ): prismic.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> => {
38
+ config: MockContentRelationshipModelConfig<CustomTypeIDs, Tags, Text>,
39
+ ): MockContentRelationshipModel<CustomTypeIDs, Tags, Text> => {
22
40
  const faker = config.faker || createFaker(config.seed);
23
41
 
24
42
  return {
@@ -29,6 +47,11 @@ export const contentRelationship = <
29
47
  select: prismic.CustomTypeModelLinkSelectType.Document,
30
48
  customtypes: config.customTypeIDs,
31
49
  tags: config.tags,
50
+ text: config.text
51
+ ? {
52
+ type: prismic.CustomTypeModelFieldType.Text,
53
+ }
54
+ : undefined,
32
55
  },
33
- };
56
+ } as MockContentRelationshipModel<CustomTypeIDs, Tags, Text>;
34
57
  };
package/src/model/link.ts CHANGED
@@ -5,24 +5,43 @@ import { createFaker } from "../lib/createFaker";
5
5
 
6
6
  import { MockModelConfig } from "../types";
7
7
 
8
- export type MockLinkModel<AllowTargetBlank extends boolean = boolean> =
9
- prismic.CustomTypeModelLinkField & {
10
- config: AllowTargetBlank extends true
11
- ? {
12
- allowTargetBlank: true;
13
- }
14
- : {
15
- allowTargetBlank?: undefined;
16
- };
17
- };
8
+ export type LinkText = prismic.CustomTypeModelKeyTextField;
18
9
 
19
- export type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {
10
+ type MockLinkModel<
11
+ AllowTargetBlank extends boolean = boolean,
12
+ Text extends boolean = boolean,
13
+ > = prismic.CustomTypeModelLinkField & {
14
+ config: AllowTargetBlank extends true
15
+ ? {
16
+ allowTargetBlank: true;
17
+ }
18
+ : {
19
+ allowTargetBlank?: undefined;
20
+ };
21
+ } & {
22
+ config: Text extends true
23
+ ? {
24
+ text: LinkText;
25
+ }
26
+ : {
27
+ text?: undefined;
28
+ };
29
+ };
30
+
31
+ export type MockLinkModelConfig<
32
+ AllowTargetBlank extends boolean = boolean,
33
+ Text extends boolean = boolean,
34
+ > = {
20
35
  allowTargetBlank?: AllowTargetBlank;
36
+ text?: Text;
21
37
  } & MockModelConfig;
22
38
 
23
- export const link = <AllowTargetBlank extends boolean = boolean>(
24
- config: MockLinkModelConfig<AllowTargetBlank>,
25
- ): MockLinkModel<AllowTargetBlank> => {
39
+ export const link = <
40
+ AllowTargetBlank extends boolean = boolean,
41
+ Text extends boolean = boolean,
42
+ >(
43
+ config: MockLinkModelConfig<AllowTargetBlank, Text>,
44
+ ): MockLinkModel<AllowTargetBlank, Text> => {
26
45
  const faker = config.faker || createFaker(config.seed);
27
46
 
28
47
  return {
@@ -35,6 +54,11 @@ export const link = <AllowTargetBlank extends boolean = boolean>(
35
54
  ("allowTargetBlank" in config
36
55
  ? config.allowTargetBlank
37
56
  : faker.boolean()) || undefined,
57
+ text: config.text
58
+ ? {
59
+ type: prismic.CustomTypeModelFieldType.Text,
60
+ }
61
+ : undefined,
38
62
  },
39
- } as MockLinkModel<AllowTargetBlank>;
63
+ } as MockLinkModel<AllowTargetBlank, Text>;
40
64
  };
@@ -3,13 +3,27 @@ import * as changeCase from "change-case";
3
3
 
4
4
  import { createFaker } from "../lib/createFaker";
5
5
 
6
+ import { LinkText } from "./link";
6
7
  import { MockModelConfig } from "../types";
7
8
 
8
- export type MockLinkToMediaModelConfig = MockModelConfig;
9
+ type MockLinkToMediaModel<Text extends boolean = boolean> =
10
+ prismic.CustomTypeModelLinkToMediaField & {
11
+ config: Text extends true
12
+ ? {
13
+ text: LinkText;
14
+ }
15
+ : {
16
+ text?: undefined;
17
+ };
18
+ };
19
+
20
+ export type MockLinkToMediaModelConfig<Text extends boolean = boolean> = {
21
+ text?: Text;
22
+ } & MockModelConfig;
9
23
 
10
- export const linkToMedia = (
11
- config: MockLinkToMediaModelConfig,
12
- ): prismic.CustomTypeModelLinkToMediaField => {
24
+ export const linkToMedia = <Text extends boolean = boolean>(
25
+ config: MockLinkToMediaModelConfig<Text>,
26
+ ): MockLinkToMediaModel<Text> => {
13
27
  const faker = config.faker || createFaker(config.seed);
14
28
 
15
29
  return {
@@ -18,6 +32,11 @@ export const linkToMedia = (
18
32
  label: changeCase.capitalCase(faker.word()),
19
33
  placeholder: changeCase.sentenceCase(faker.words(3)),
20
34
  select: prismic.CustomTypeModelLinkSelectType.Media,
35
+ text: config.text
36
+ ? {
37
+ type: prismic.CustomTypeModelFieldType.Text,
38
+ }
39
+ : undefined,
21
40
  },
22
- };
41
+ } as MockLinkToMediaModel<Text>;
23
42
  };
@@ -1,4 +1,5 @@
1
1
  import * as prismic from "@prismicio/client";
2
+ import * as changeCase from "change-case";
2
3
 
3
4
  import { buildContentRelationshipField } from "../lib/buildContentRelationshipField";
4
5
  import { createFaker } from "../lib/createFaker";
@@ -20,6 +21,9 @@ export type MockContentRelationshipValueConfig<
20
21
  prismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,
21
22
  State extends prismic.FieldState = prismic.FieldState,
22
23
  > = {
24
+ withText?: NonNullable<Model["config"]>["text"] extends undefined
25
+ ? false
26
+ : boolean;
23
27
  /**
24
28
  * A list of potential documents to which the field can be linked.
25
29
  */
@@ -101,6 +105,10 @@ export const contentRelationship = <
101
105
 
102
106
  return buildContentRelationshipField({
103
107
  document,
108
+ text:
109
+ config.withText ?? model.config?.text
110
+ ? changeCase.sentenceCase(faker.words(2))
111
+ : undefined,
104
112
  }) as unknown as MockContentRelationshipValue<Model, State>;
105
113
  }
106
114
  };
package/src/value/link.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as prismic from "@prismicio/client";
2
+ import * as changeCase from "change-case";
2
3
 
3
4
  import { createFaker } from "../lib/createFaker";
4
5
 
@@ -22,6 +23,9 @@ export type MockLinkValueConfig<
22
23
  >["allowTargetBlank"] extends undefined
23
24
  ? false
24
25
  : boolean;
26
+ withText?: NonNullable<Model["config"]>["text"] extends undefined
27
+ ? false
28
+ : boolean;
25
29
  /**
26
30
  * A list of potential documents to which the field can be linked.
27
31
  */
@@ -97,6 +101,10 @@ export const link = <
97
101
  (model.config?.allowTargetBlank && faker.boolean())
98
102
  ? "_blank"
99
103
  : undefined,
104
+ text:
105
+ config.withText ?? model.config?.text
106
+ ? changeCase.sentenceCase(faker.words(2))
107
+ : undefined,
100
108
  } as MockLinkValue<LinkType, State>;
101
109
  }
102
110
  }
@@ -5,11 +5,18 @@ import { createFaker } from "../lib/createFaker";
5
5
 
6
6
  import { MockValueStateConfig, MockValueConfig } from "../types";
7
7
 
8
+ import * as modelGen from "../model";
9
+
8
10
  export type MockLinkToMediaValueConfig<
9
11
  Model extends
10
12
  prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,
11
13
  State extends prismic.FieldState = prismic.FieldState,
12
- > = MockValueConfig<Model> & MockValueStateConfig<State>;
14
+ > = {
15
+ withText?: NonNullable<Model["config"]>["text"] extends undefined
16
+ ? false
17
+ : boolean;
18
+ } & MockValueConfig<Model> &
19
+ MockValueStateConfig<State>;
13
20
 
14
21
  type MockLinkToMediaValue<
15
22
  State extends prismic.FieldState = prismic.FieldState,
@@ -29,6 +36,8 @@ export const linkToMedia = <
29
36
  link_type: prismic.LinkType.Media,
30
37
  } as MockLinkToMediaValue<State>;
31
38
  } else {
39
+ const model = config.model || modelGen.link({ faker });
40
+
32
41
  return {
33
42
  link_type: prismic.LinkType.Media,
34
43
  name: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,
@@ -37,6 +46,10 @@ export const linkToMedia = <
37
46
  size: faker.range(500, 3000).toString(),
38
47
  height: faker.range(500, 3000).toString(),
39
48
  width: faker.range(500, 3000).toString(),
49
+ text:
50
+ config.withText ?? model.config?.text
51
+ ? changeCase.sentenceCase(faker.words(2))
52
+ : undefined,
40
53
  } as MockLinkToMediaValue<State>;
41
54
  }
42
55
  };