@prismicio/mock 0.0.8 → 0.0.9

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 (84) hide show
  1. package/dist/api/index.cjs +208 -100
  2. package/dist/api/index.cjs.map +1 -1
  3. package/dist/api/index.d.ts +1 -1
  4. package/dist/api/index.js +208 -100
  5. package/dist/api/index.js.map +1 -1
  6. package/dist/index.cjs +311 -213
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.ts +9 -5
  9. package/dist/index.js +310 -211
  10. package/dist/index.js.map +1 -1
  11. package/dist/model/index.cjs +168 -74
  12. package/dist/model/index.cjs.map +1 -1
  13. package/dist/model/index.d.ts +1 -1
  14. package/dist/model/index.js +168 -74
  15. package/dist/model/index.js.map +1 -1
  16. package/dist/value/index.cjs +280 -182
  17. package/dist/value/index.cjs.map +1 -1
  18. package/dist/value/index.d.ts +8 -4
  19. package/dist/value/index.js +280 -182
  20. package/dist/value/index.js.map +1 -1
  21. package/package.json +19 -16
  22. package/src/api/query.ts +2 -2
  23. package/src/api/ref.ts +3 -3
  24. package/src/api/repository.ts +5 -5
  25. package/src/lib/buildEmbedField.ts +16 -27
  26. package/src/lib/buildImageFieldImage.ts +3 -2
  27. package/src/lib/createFaker.ts +98 -20
  28. package/src/lib/generateCustomTypeId.ts +1 -1
  29. package/src/lib/generateFieldId.ts +1 -3
  30. package/src/lib/generateTags.ts +4 -12
  31. package/src/lib/getMockEmbedData.ts +33 -12
  32. package/src/lib/getMockImageData.ts +1 -1
  33. package/src/lib/lorem.ts +112 -0
  34. package/src/model/boolean.ts +1 -1
  35. package/src/model/buildMockGroupFieldMap.ts +1 -1
  36. package/src/model/color.ts +2 -2
  37. package/src/model/contentRelationship.ts +2 -2
  38. package/src/model/customType.ts +3 -3
  39. package/src/model/date.ts +2 -2
  40. package/src/model/embed.ts +2 -2
  41. package/src/model/geoPoint.ts +1 -1
  42. package/src/model/group.ts +1 -1
  43. package/src/model/image.ts +5 -9
  44. package/src/model/integrationFields.ts +2 -2
  45. package/src/model/keyText.ts +2 -2
  46. package/src/model/link.ts +3 -3
  47. package/src/model/linkToMedia.ts +2 -2
  48. package/src/model/number.ts +2 -2
  49. package/src/model/richText.ts +6 -6
  50. package/src/model/select.ts +2 -2
  51. package/src/model/sharedSlice.ts +2 -2
  52. package/src/model/sharedSliceVariation.ts +4 -4
  53. package/src/model/slice.ts +4 -4
  54. package/src/model/timestamp.ts +2 -2
  55. package/src/model/title.ts +5 -5
  56. package/src/model/uid.ts +2 -2
  57. package/src/types.ts +7 -10
  58. package/src/value/boolean.ts +1 -1
  59. package/src/value/color.ts +1 -1
  60. package/src/value/contentRelationship.ts +3 -3
  61. package/src/value/customType.ts +5 -5
  62. package/src/value/embed.ts +20 -7
  63. package/src/value/geoPoint.ts +2 -4
  64. package/src/value/group.ts +1 -6
  65. package/src/value/integrationFields.ts +4 -4
  66. package/src/value/keyText.ts +1 -3
  67. package/src/value/link.ts +3 -3
  68. package/src/value/linkToMedia.ts +7 -6
  69. package/src/value/number.ts +1 -1
  70. package/src/value/richText/embed.ts +2 -2
  71. package/src/value/richText/heading.ts +3 -10
  72. package/src/value/richText/image.ts +3 -5
  73. package/src/value/richText/index.ts +3 -8
  74. package/src/value/richText/list.ts +4 -8
  75. package/src/value/richText/oList.ts +4 -8
  76. package/src/value/richText/paragraph.ts +8 -4
  77. package/src/value/richText/preformatted.ts +9 -5
  78. package/src/value/select.ts +2 -2
  79. package/src/value/sharedSlice.ts +1 -1
  80. package/src/value/sharedSliceVariation.ts +2 -6
  81. package/src/value/slice.ts +2 -6
  82. package/src/value/sliceZone.ts +4 -10
  83. package/src/value/timestamp.ts +28 -15
  84. package/src/value/uid.ts +1 -1
@@ -48,7 +48,7 @@ export const customType = <
48
48
  const faker = createFaker(config.seed);
49
49
 
50
50
  let label: string =
51
- config.label || changeCase.capitalCase(faker.company.bsNoun());
51
+ config.label || changeCase.capitalCase(faker.words(faker.range(1, 2)));
52
52
  let id: string = config.id || changeCase.snakeCase(label);
53
53
 
54
54
  if (config.id && !config.label) {
@@ -68,8 +68,8 @@ export const customType = <
68
68
  return {
69
69
  id,
70
70
  label,
71
- status: config.status ?? faker.datatype.boolean(),
72
- repeatable: config.repeatable ?? faker.datatype.boolean(),
71
+ status: config.status ?? faker.boolean(),
72
+ repeatable: config.repeatable ?? faker.boolean(),
73
73
  json,
74
74
  } as MockCustomTypeModel<Definition>;
75
75
  };
package/src/model/date.ts CHANGED
@@ -15,8 +15,8 @@ export const date = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.Date,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
19
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
18
+ label: changeCase.capitalCase(faker.word()),
19
+ placeholder: changeCase.sentenceCase(faker.words(3)),
20
20
  },
21
21
  };
22
22
  };
@@ -15,8 +15,8 @@ export const embed = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.Embed,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
19
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
18
+ label: changeCase.capitalCase(faker.word()),
19
+ placeholder: changeCase.sentenceCase(faker.words(3)),
20
20
  },
21
21
  };
22
22
  };
@@ -15,7 +15,7 @@ export const geoPoint = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.GeoPoint,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
18
+ label: changeCase.capitalCase(faker.word()),
19
19
  },
20
20
  };
21
21
  };
@@ -17,7 +17,7 @@ export const group = <Fields extends GroupFieldModelMap>(
17
17
  return {
18
18
  type: prismicT.CustomTypeModelFieldType.Group,
19
19
  config: {
20
- label: changeCase.capitalCase(faker.company.bsNoun()),
20
+ label: changeCase.capitalCase(faker.word()),
21
21
  fields: config.fields || ({} as Fields),
22
22
  },
23
23
  };
@@ -18,22 +18,18 @@ export const image = <ThumbnailNames extends string = string>(
18
18
  const thumbnails = (config.thumbnailNames || []).map((name) => {
19
19
  return {
20
20
  name,
21
- width: faker.datatype.number({ min: 500, max: 2000 }),
22
- height: faker.datatype.number({ min: 500, max: 2000 }),
21
+ width: faker.range(500, 2000),
22
+ height: faker.range(500, 2000),
23
23
  };
24
24
  });
25
25
 
26
26
  return {
27
27
  type: prismicT.CustomTypeModelFieldType.Image,
28
28
  config: {
29
- label: changeCase.capitalCase(faker.company.bsNoun()),
29
+ label: changeCase.capitalCase(faker.word()),
30
30
  constraint: {
31
- width: config.withConstraint
32
- ? faker.datatype.number({ min: 500, max: 2000 })
33
- : null,
34
- height: config.withConstraint
35
- ? faker.datatype.number({ min: 500, max: 2000 })
36
- : null,
31
+ width: config.withConstraint ? faker.range(500, 2000) : null,
32
+ height: config.withConstraint ? faker.range(500, 2000) : null,
37
33
  },
38
34
  thumbnails,
39
35
  },
@@ -17,8 +17,8 @@ export const integrationFields = (
17
17
  return {
18
18
  type: prismicT.CustomTypeModelFieldType.IntegrationFields,
19
19
  config: {
20
- label: changeCase.capitalCase(faker.company.bsNoun()),
21
- catalog: config.catalog || changeCase.snakeCase(faker.lorem.words(4)),
20
+ label: changeCase.capitalCase(faker.word()),
21
+ catalog: config.catalog || changeCase.snakeCase(faker.words(2)),
22
22
  },
23
23
  };
24
24
  };
@@ -15,8 +15,8 @@ export const keyText = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.Text,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
19
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
18
+ label: changeCase.capitalCase(faker.word()),
19
+ placeholder: changeCase.sentenceCase(faker.words(3)),
20
20
  },
21
21
  };
22
22
  };
package/src/model/link.ts CHANGED
@@ -28,13 +28,13 @@ export const link = <AllowTargetBlank extends boolean = boolean>(
28
28
  return {
29
29
  type: prismicT.CustomTypeModelFieldType.Link,
30
30
  config: {
31
- label: changeCase.capitalCase(faker.company.bsNoun()),
32
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
31
+ label: changeCase.capitalCase(faker.word()),
32
+ placeholder: changeCase.sentenceCase(faker.words(3)),
33
33
  select: null,
34
34
  allowTargetBlank:
35
35
  ("allowTargetBlank" in config
36
36
  ? config.allowTargetBlank
37
- : faker.datatype.boolean()) || undefined,
37
+ : faker.boolean()) || undefined,
38
38
  },
39
39
  } as MockLinkModel<AllowTargetBlank>;
40
40
  };
@@ -15,8 +15,8 @@ export const linkToMedia = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.Link,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
19
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
18
+ label: changeCase.capitalCase(faker.word()),
19
+ placeholder: changeCase.sentenceCase(faker.words(3)),
20
20
  select: prismicT.CustomTypeModelLinkSelectType.Media,
21
21
  },
22
22
  };
@@ -15,8 +15,8 @@ export const number = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.Number,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
19
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
18
+ label: changeCase.capitalCase(faker.word()),
19
+ placeholder: changeCase.sentenceCase(faker.words(3)),
20
20
  },
21
21
  };
22
22
  };
@@ -18,8 +18,8 @@ export const richText = <WithMultipleBlocks extends boolean = boolean>(
18
18
  : prismicT.CustomTypeModelRichTextSingleField => {
19
19
  const faker = createFaker(config.seed);
20
20
 
21
- const blockTypes = faker.random
22
- .arrayElements([
21
+ const blockTypes = faker
22
+ .randomElements([
23
23
  prismicT.RichTextNodeType.heading1,
24
24
  prismicT.RichTextNodeType.heading2,
25
25
  prismicT.RichTextNodeType.heading3,
@@ -39,16 +39,16 @@ export const richText = <WithMultipleBlocks extends boolean = boolean>(
39
39
  .join(",");
40
40
 
41
41
  const blockTypeConfig =
42
- config.withMultipleBlocks ?? faker.datatype.boolean()
42
+ config.withMultipleBlocks ?? faker.boolean()
43
43
  ? { multi: blockTypes }
44
44
  : { single: blockTypes };
45
45
 
46
46
  return {
47
47
  type: prismicT.CustomTypeModelFieldType.StructuredText,
48
48
  config: {
49
- label: changeCase.capitalCase(faker.company.bsNoun()),
50
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
51
- allowTargetBlank: faker.datatype.boolean() ? true : undefined,
49
+ label: changeCase.capitalCase(faker.word()),
50
+ placeholder: changeCase.sentenceCase(faker.words(3)),
51
+ allowTargetBlank: faker.boolean() ? true : undefined,
52
52
  ...blockTypeConfig,
53
53
  },
54
54
  } as WithMultipleBlocks extends true
@@ -21,8 +21,8 @@ export const select = <Option extends string, DefaultOption extends Option>(
21
21
  return {
22
22
  type: prismicT.CustomTypeModelFieldType.Select,
23
23
  config: {
24
- label: changeCase.capitalCase(faker.company.bsNoun()),
25
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
24
+ label: changeCase.capitalCase(faker.word()),
25
+ placeholder: changeCase.sentenceCase(faker.words(3)),
26
26
  options: config.options || [],
27
27
  default_value: config.defaultValue || undefined,
28
28
  },
@@ -21,7 +21,7 @@ export const sharedSlice = <
21
21
  const faker = createFaker(config.seed);
22
22
 
23
23
  let name: string =
24
- config.name || changeCase.capitalCase(faker.company.bsNoun());
24
+ config.name || changeCase.capitalCase(faker.words(faker.range(1, 2)));
25
25
  let id: string = config.id || changeCase.snakeCase(name);
26
26
 
27
27
  if (config.id && !config.name) {
@@ -34,7 +34,7 @@ export const sharedSlice = <
34
34
  type: prismicT.CustomTypeModelSliceType.SharedSlice,
35
35
  id,
36
36
  name,
37
- description: faker.lorem.sentence(),
37
+ description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
38
38
  variations: config.variations || ([] as Variation[]),
39
39
  };
40
40
  };
@@ -30,7 +30,7 @@ export const sharedSliceVariation = <
30
30
  const faker = createFaker(config.seed);
31
31
 
32
32
  let name: string =
33
- config.name || changeCase.capitalCase(faker.company.bsNoun());
33
+ config.name || changeCase.capitalCase(faker.words(faker.range(1, 2)));
34
34
  let id: ID = config.id || (changeCase.snakeCase(name) as ID);
35
35
 
36
36
  if (config.id && !config.name) {
@@ -42,9 +42,9 @@ export const sharedSliceVariation = <
42
42
  return {
43
43
  id,
44
44
  name,
45
- description: faker.lorem.sentence(),
46
- docURL: faker.internet.url(),
47
- version: faker.git.shortSha(),
45
+ description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
46
+ docURL: faker.url(),
47
+ version: faker.hash(7),
48
48
  primary: config.primaryFields || ({} as PrimaryFields),
49
49
  items: config.itemsFields || ({} as ItemsFields),
50
50
  };
@@ -23,12 +23,12 @@ export const slice = <
23
23
 
24
24
  return {
25
25
  type: prismicT.CustomTypeModelSliceType.Slice,
26
- icon: changeCase.snakeCase(faker.company.bsNoun()),
27
- display: faker.datatype.boolean()
26
+ icon: changeCase.snakeCase(faker.word()),
27
+ display: faker.boolean()
28
28
  ? prismicT.CustomTypeModelSliceDisplay.Grid
29
29
  : prismicT.CustomTypeModelSliceDisplay.List,
30
- fieldset: changeCase.capitalCase(faker.lorem.words()),
31
- description: faker.lorem.sentence(),
30
+ fieldset: changeCase.capitalCase(faker.words(2)),
31
+ description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
32
32
  repeat: config.repeatFields || ({} as RepeatFields),
33
33
  "non-repeat": config.nonRepeatFields || ({} as NonRepeatFields),
34
34
  };
@@ -15,8 +15,8 @@ export const timestamp = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.Timestamp,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
19
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
18
+ label: changeCase.capitalCase(faker.word()),
19
+ placeholder: changeCase.sentenceCase(faker.words(3)),
20
20
  },
21
21
  };
22
22
  };
@@ -12,8 +12,8 @@ export const title = (
12
12
  ): prismicT.CustomTypeModelTitleField => {
13
13
  const faker = createFaker(config.seed);
14
14
 
15
- const single = faker.random
16
- .arrayElements([
15
+ const single = faker
16
+ .randomElements([
17
17
  "heading1",
18
18
  "heading2",
19
19
  "heading3",
@@ -26,10 +26,10 @@ export const title = (
26
26
  return {
27
27
  type: prismicT.CustomTypeModelFieldType.StructuredText,
28
28
  config: {
29
- label: changeCase.capitalCase(faker.company.bsNoun()),
30
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
29
+ label: changeCase.capitalCase(faker.word()),
30
+ placeholder: changeCase.sentenceCase(faker.words(3)),
31
31
  single,
32
- allowTargetBlank: faker.datatype.boolean() ? true : undefined,
32
+ allowTargetBlank: faker.boolean() || undefined,
33
33
  },
34
34
  };
35
35
  };
package/src/model/uid.ts CHANGED
@@ -15,8 +15,8 @@ export const uid = (
15
15
  return {
16
16
  type: prismicT.CustomTypeModelFieldType.UID,
17
17
  config: {
18
- label: changeCase.capitalCase(faker.company.bsNoun()),
19
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
18
+ label: changeCase.capitalCase(faker.word()),
19
+ placeholder: changeCase.sentenceCase(faker.words(3)),
20
20
  },
21
21
  };
22
22
  };
package/src/types.ts CHANGED
@@ -27,7 +27,7 @@ export type SetRequired<BaseType, Keys extends keyof BaseType> = Simplify<
27
27
  Required<Pick<BaseType, Keys>>
28
28
  >;
29
29
 
30
- export type Seed = string | number | number[];
30
+ export type Seed = string | number;
31
31
 
32
32
  export interface MockImageData {
33
33
  url: string;
@@ -35,14 +35,11 @@ export interface MockImageData {
35
35
  height: number;
36
36
  }
37
37
 
38
- export interface MockEmbedData {
39
- url: string;
40
- embed_url: string;
41
- html: string;
42
- thumbnail_url: string | null;
43
- thumbnail_height: number | null;
44
- thumbnail_width: number | null;
45
- }
38
+ export type MockEmbedData = prismicT.AnyOEmbed &
39
+ prismicT.OEmbedExtra & {
40
+ embed_url: string;
41
+ html: string;
42
+ };
46
43
 
47
44
  export type MockRestApiConfig = {
48
45
  seed?: Seed;
@@ -88,7 +85,7 @@ export type MockValueConfigForModel<
88
85
  : Model extends prismicT.CustomTypeModelDateField
89
86
  ? value.MockDateValueConfig<Model, State>
90
87
  : Model extends prismicT.CustomTypeModelEmbedField
91
- ? value.MockEmbedValueConfig<Model, State>
88
+ ? value.MockEmbedValueConfig<Model, prismicT.AnyOEmbed, State>
92
89
  : Model extends prismicT.CustomTypeModelGeoPointField
93
90
  ? value.MockGeoPointValueConfig<Model, State>
94
91
  : Model extends prismicT.CustomTypeModelImageField
@@ -15,5 +15,5 @@ export const boolean = <
15
15
  ): prismicT.BooleanField => {
16
16
  const faker = createFaker(config.seed);
17
17
 
18
- return faker.datatype.boolean();
18
+ return faker.boolean();
19
19
  };
@@ -22,6 +22,6 @@ export const color = <
22
22
  const faker = createFaker(config.seed);
23
23
 
24
24
  return (
25
- config.state === "empty" ? null : faker.internet.color().toUpperCase()
25
+ config.state === "empty" ? null : faker.hexColor().toUpperCase()
26
26
  ) as MockColorValue<State>;
27
27
  };
@@ -76,10 +76,10 @@ export const contentRelationship = <
76
76
  {
77
77
  ...documentGen({ seed: config.seed }),
78
78
  type: model.config.customtypes
79
- ? faker.random.arrayElement(model.config.customtypes)
79
+ ? faker.randomElement(model.config.customtypes)
80
80
  : generateCustomTypeId({ seed: config.seed }),
81
81
  tags: model.config.tags
82
- ? faker.random.arrayElements(model.config.tags)
82
+ ? faker.randomElements(model.config.tags)
83
83
  : generateTags({ seed: config.seed }),
84
84
  } as prismicT.PrismicDocument<
85
85
  never,
@@ -87,7 +87,7 @@ export const contentRelationship = <
87
87
  >,
88
88
  ];
89
89
 
90
- const document = faker.random.arrayElement(linkableDocuments);
90
+ const document = faker.randomElement(linkableDocuments);
91
91
 
92
92
  if (!document) {
93
93
  throw new Error("A linkable document could not be found.");
@@ -63,11 +63,11 @@ export const customType = <
63
63
 
64
64
  return {
65
65
  type: model.id,
66
- id: faker.git.shortSha(),
67
- uid: hasUID ? changeCase.snakeCase(faker.lorem.words(2)) : null,
68
- url: withURL ? faker.internet.url() : null,
69
- href: faker.internet.url(),
70
- lang: faker.lorem.word(),
66
+ id: faker.hash(7),
67
+ uid: hasUID ? changeCase.snakeCase(faker.words(faker.range(1, 3))) : null,
68
+ url: withURL ? faker.url() : null,
69
+ href: faker.url(),
70
+ lang: faker.word(),
71
71
  tags: generateTags({ seed: config.seed }),
72
72
  slugs: [] as prismicT.PrismicDocument["slugs"],
73
73
  linked_documents: [] as prismicT.PrismicDocument["linked_documents"],
@@ -7,24 +7,37 @@ import { MockValueStateConfig, MockValueConfig } from "../types";
7
7
 
8
8
  export type MockEmbedValueConfig<
9
9
  Model extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField,
10
+ Data extends prismicT.AnyOEmbed = prismicT.AnyOEmbed,
10
11
  State extends prismicT.FieldState = prismicT.FieldState,
11
- > = MockValueConfig<Model> & MockValueStateConfig<State>;
12
+ > = {
13
+ url?: string;
14
+ html?: string;
15
+ data?: Data;
16
+ } & MockValueConfig<Model> &
17
+ MockValueStateConfig<State>;
12
18
 
13
19
  export type MockEmbedValue<
20
+ Data extends prismicT.AnyOEmbed = prismicT.AnyOEmbed,
14
21
  State extends prismicT.FieldState = prismicT.FieldState,
15
- > = prismicT.EmbedField<prismicT.AnyOEmbed & prismicT.OEmbedExtra, State>;
22
+ > = prismicT.EmbedField<Data, State>;
16
23
 
17
24
  export const embed = <
18
25
  Model extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField,
26
+ Data extends prismicT.AnyOEmbed = prismicT.AnyOEmbed,
19
27
  State extends prismicT.FieldState = "filled",
20
28
  >(
21
- config: MockEmbedValueConfig<Model, State> = {},
22
- ): MockEmbedValue<State> => {
23
- const embedData = getMockEmbedData({ seed: config.seed });
29
+ config: MockEmbedValueConfig<Model, Data, State> = {},
30
+ ): MockEmbedValue<Data, State> => {
31
+ const data = config.data ?? getMockEmbedData({ seed: config.seed });
24
32
 
25
33
  return (
26
34
  config.state === "empty"
27
35
  ? {}
28
- : buildEmbedField({ seed: config.seed, embedData })
29
- ) as MockEmbedValue<State>;
36
+ : buildEmbedField({
37
+ seed: config.seed,
38
+ url: config.url ?? ("embed_url" in data ? data.embed_url : undefined),
39
+ html: config.html ?? ("html" in data ? data.html : undefined),
40
+ data,
41
+ })
42
+ ) as MockEmbedValue<Data, State>;
30
43
  };
@@ -21,14 +21,12 @@ export const geoPoint = <
21
21
  ): MockGeoPointValue<State> => {
22
22
  const faker = createFaker(config.seed);
23
23
 
24
- const coordinates = faker.address.nearbyGPSCoordinate();
25
-
26
24
  return (
27
25
  config.state === "empty"
28
26
  ? {}
29
27
  : {
30
- longitude: Number.parseFloat(coordinates[0]),
31
- latitude: Number.parseFloat(coordinates[1]),
28
+ longitude: faker.rangeFloat(-180, 180),
29
+ latitude: faker.rangeFloat(-90, 90),
32
30
  }
33
31
  ) as MockGeoPointValue<State>;
34
32
  };
@@ -36,12 +36,7 @@ export const group = <
36
36
 
37
37
  const model = config.model || modelGen.group({ seed: config.seed });
38
38
 
39
- const itemsCount =
40
- config.itemsCount ??
41
- faker.datatype.number({
42
- min: 1,
43
- max: 6,
44
- });
39
+ const itemsCount = config.itemsCount ?? faker.range(1, 6);
45
40
 
46
41
  return Array(itemsCount)
47
42
  .fill(undefined)
@@ -35,11 +35,11 @@ export const integrationFields = <
35
35
  config.state === "empty"
36
36
  ? null
37
37
  : {
38
- id: faker.git.shortSha(),
39
- title: changeCase.capitalCase(faker.lorem.words(3)),
40
- description: faker.lorem.sentence(),
38
+ id: faker.hash(7),
39
+ title: changeCase.capitalCase(faker.words(faker.range(1, 3))),
40
+ description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
41
41
  image_url: imageData.url,
42
- last_update: faker.date.past(20, new Date("2021-03-07")).getTime(),
42
+ last_update: faker.date().getTime(),
43
43
  blob: config.data as Blob,
44
44
  }
45
45
  ) as MockIntegrationFieldsValue<Blob, State>;
@@ -23,8 +23,6 @@ export const keyText = <
23
23
  const faker = createFaker(config.seed);
24
24
 
25
25
  return (
26
- config.state === "empty"
27
- ? null
28
- : changeCase.sentenceCase(faker.lorem.words(3))
26
+ config.state === "empty" ? null : changeCase.sentenceCase(faker.words(3))
29
27
  ) as MockKeyTextValue<State>;
30
28
  };
package/src/value/link.ts CHANGED
@@ -51,7 +51,7 @@ export const link = <
51
51
 
52
52
  const type =
53
53
  config.type ||
54
- faker.random.arrayElement([
54
+ faker.randomElement([
55
55
  prismicT.LinkType.Web,
56
56
  prismicT.LinkType.Document,
57
57
  prismicT.LinkType.Media,
@@ -84,10 +84,10 @@ export const link = <
84
84
 
85
85
  return {
86
86
  link_type: prismicT.LinkType.Web,
87
- url: faker.internet.url(),
87
+ url: faker.url(),
88
88
  target:
89
89
  config.withTargetBlank ??
90
- (model.config.allowTargetBlank && faker.datatype.boolean())
90
+ (model.config.allowTargetBlank && faker.boolean())
91
91
  ? "_blank"
92
92
  : undefined,
93
93
  } as MockLinkValue<LinkType, State>;
@@ -1,4 +1,5 @@
1
1
  import * as prismicT from "@prismicio/types";
2
+ import * as changeCase from "change-case";
2
3
 
3
4
  import { createFaker } from "../lib/createFaker";
4
5
 
@@ -28,12 +29,12 @@ export const linkToMedia = <
28
29
  } else {
29
30
  return {
30
31
  link_type: prismicT.LinkType.Media,
31
- name: faker.system.commonFileName(),
32
- kind: faker.system.commonFileType(),
33
- url: faker.internet.url(),
34
- size: faker.datatype.number().toString(),
35
- height: faker.datatype.number().toString(),
36
- width: faker.datatype.number().toString(),
32
+ name: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,
33
+ kind: changeCase.snakeCase(faker.word()),
34
+ url: faker.url(),
35
+ size: faker.range(500, 3000).toString(),
36
+ height: faker.range(500, 3000).toString(),
37
+ width: faker.range(500, 3000).toString(),
37
38
  } as MockLinkToMediaValue<State>;
38
39
  }
39
40
  };
@@ -22,6 +22,6 @@ export const number = <
22
22
  const faker = createFaker(config.seed);
23
23
 
24
24
  return (
25
- config.state === "empty" ? null : faker.datatype.number()
25
+ config.state === "empty" ? null : faker.range(1, 100)
26
26
  ) as MockNumberValue<State>;
27
27
  };
@@ -10,8 +10,8 @@ type MockRichTextEmbedValueConfig = MockRichTextValueConfig;
10
10
  export const embed = (
11
11
  config: MockRichTextEmbedValueConfig = {},
12
12
  ): prismicT.RTEmbedNode | undefined => {
13
- const embedData = getMockEmbedData({ seed: config.seed });
14
- const embedField = buildEmbedField({ seed: config.seed, embedData });
13
+ const data = getMockEmbedData({ seed: config.seed });
14
+ const embedField = buildEmbedField({ seed: config.seed, data });
15
15
 
16
16
  return {
17
17
  type: prismicT.RichTextNodeType.embed,
@@ -63,25 +63,18 @@ export const heading = (
63
63
  prismicT.RichTextNodeType.heading6,
64
64
  ].includes(type as RichTextNodeTitleType),
65
65
  ) as RichTextNodeTitleType[];
66
- const type = faker.random.arrayElement(types);
66
+ const type = faker.randomElement(types);
67
67
 
68
68
  if (type) {
69
69
  const patternKey =
70
70
  config.pattern ||
71
- faker.random.arrayElement(
72
- Object.keys(patterns) as (keyof typeof patterns)[],
73
- );
71
+ faker.randomElement(Object.keys(patterns) as (keyof typeof patterns)[]);
74
72
  const pattern = patterns[patternKey];
75
73
 
76
74
  return {
77
75
  type,
78
76
  text: changeCase.capitalCase(
79
- faker.lorem.words(
80
- faker.datatype.number({
81
- min: pattern.minWords,
82
- max: pattern.maxWords,
83
- }),
84
- ),
77
+ faker.words(faker.range(pattern.minWords, pattern.maxWords)),
85
78
  ),
86
79
  spans: [],
87
80
  };
@@ -14,16 +14,14 @@ export const image = (
14
14
  const imageField = buildImageFieldImage({
15
15
  seed: config.seed,
16
16
  imageData,
17
- state: false,
17
+ state: "filled",
18
18
  });
19
19
 
20
20
  return {
21
21
  type: prismicT.RichTextNodeType.image,
22
22
  alt: imageField.alt,
23
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
24
- url: imageField.url!,
23
+ url: imageField.url,
25
24
  copyright: imageField.copyright,
26
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
27
- dimensions: imageField.dimensions!,
25
+ dimensions: imageField.dimensions,
28
26
  };
29
27
  };