@prismicio/mock 0.0.3 → 0.0.7

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 (78) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +561 -0
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +36 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +561 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +672 -644
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +228 -262
  11. package/dist/{index.mjs → index.js} +663 -634
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +163 -203
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +70 -96
  16. package/dist/model/index.d.ts.map +1 -0
  17. package/dist/model/index.js +462 -0
  18. package/dist/model/index.js.map +1 -0
  19. package/dist/value/index.cjs +284 -499
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +60 -120
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/{index.mjs → index.js} +447 -608
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +25 -20
  26. package/src/api/index.ts +11 -0
  27. package/src/api/query.ts +38 -0
  28. package/src/api/ref.ts +41 -0
  29. package/src/api/repository.ts +54 -0
  30. package/src/api/tags.ts +15 -0
  31. package/src/constants.ts +3 -1
  32. package/src/index.ts +1 -0
  33. package/src/lib/buildAlternativeLanguage.ts +18 -0
  34. package/src/lib/buildContentRelationshipField.ts +12 -5
  35. package/src/lib/buildEmbedField.ts +1 -1
  36. package/src/lib/buildImageFieldImage.ts +48 -0
  37. package/src/lib/createFaker.ts +19 -10
  38. package/src/lib/generateTags.ts +10 -2
  39. package/src/lib/valueForModelMap.ts +2 -2
  40. package/src/model/buildMockGroupFieldMap.ts +65 -0
  41. package/src/model/contentRelationship.ts +14 -21
  42. package/src/model/customType.ts +49 -48
  43. package/src/model/group.ts +8 -15
  44. package/src/model/image.ts +13 -13
  45. package/src/model/index.ts +2 -0
  46. package/src/model/select.ts +11 -16
  47. package/src/model/sharedSlice.ts +23 -30
  48. package/src/model/sharedSliceVariation.ts +33 -21
  49. package/src/model/slice.ts +15 -19
  50. package/src/model/sliceZone.ts +25 -42
  51. package/src/types.ts +50 -15
  52. package/src/value/color.ts +16 -6
  53. package/src/value/contentRelationship.ts +52 -36
  54. package/src/value/customType.ts +27 -4
  55. package/src/value/date.ts +25 -9
  56. package/src/value/embed.ts +18 -6
  57. package/src/value/geoPoint.ts +21 -9
  58. package/src/value/group.ts +7 -27
  59. package/src/value/image.ts +22 -9
  60. package/src/value/integrationFields.ts +26 -14
  61. package/src/value/keyText.ts +18 -6
  62. package/src/value/link.ts +33 -34
  63. package/src/value/linkToMedia.ts +15 -20
  64. package/src/value/number.ts +16 -6
  65. package/src/value/richText/heading.ts +7 -7
  66. package/src/value/richText/image.ts +6 -2
  67. package/src/value/richText/index.ts +1 -1
  68. package/src/value/select.ts +23 -8
  69. package/src/value/sharedSlice.ts +2 -2
  70. package/src/value/sharedSliceVariation.ts +6 -34
  71. package/src/value/slice.ts +5 -30
  72. package/src/value/sliceZone.ts +44 -60
  73. package/src/value/timestamp.ts +19 -6
  74. package/src/value/title.ts +1 -1
  75. package/src/value/uid.ts +1 -1
  76. package/dist/model/index.mjs +0 -448
  77. package/src/lib/buildImageField.ts +0 -34
  78. package/src/lib/buildMockGroupFieldMap.ts +0 -84
@@ -1,8 +1,10 @@
1
1
  import * as prismicT from '@prismicio/types';
2
2
 
3
+ declare type Seed = string | number | number[];
3
4
  declare type MockModelConfig = {
4
- seed?: number;
5
+ seed?: Seed;
5
6
  };
7
+ declare type GroupFieldModelMap = Record<string, prismicT.CustomTypeModelFieldForGroup>;
6
8
 
7
9
  declare type MockBooleanModelConfig = MockModelConfig;
8
10
  declare const boolean: (config?: MockBooleanModelConfig) => prismicT.CustomTypeModelBooleanField;
@@ -10,80 +12,26 @@ declare const boolean: (config?: MockBooleanModelConfig) => prismicT.CustomTypeM
10
12
  declare type MockColorModelConfig = MockModelConfig;
11
13
  declare const color: (config?: MockColorModelConfig) => prismicT.CustomTypeModelColorField;
12
14
 
13
- declare type MockContentRelationshipModelConfig = {
14
- constrainCustomTypes?: boolean;
15
- constrainTags?: boolean;
15
+ declare type MockContentRelationshipModelConfig<CustomTypeIDs extends string = string, Tags extends string = string> = {
16
+ customTypeIDs?: readonly CustomTypeIDs[];
17
+ tags?: readonly Tags[];
16
18
  } & MockModelConfig;
17
- declare const contentRelationship: (config?: MockContentRelationshipModelConfig) => prismicT.CustomTypeModelContentRelationshipField;
19
+ declare const contentRelationship: <CustomTypeIDs extends string, Tags extends string>(config?: MockContentRelationshipModelConfig<CustomTypeIDs, Tags>) => prismicT.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags>;
18
20
 
19
- declare type MockRichTextModelConfig<WithMultipleBlocks extends boolean = boolean> = {
20
- withMultipleBlocks?: WithMultipleBlocks;
21
- } & MockModelConfig;
22
- declare const richText: <WithMultipleBlocks extends boolean = boolean>(config?: MockRichTextModelConfig<WithMultipleBlocks>) => WithMultipleBlocks extends true ? prismicT.CustomTypeModelRichTextMultiField : prismicT.CustomTypeModelRichTextSingleField;
23
-
24
- declare type MockLinkModel<AllowTargetBlank extends boolean = boolean> = prismicT.CustomTypeModelLinkField & {
25
- config: AllowTargetBlank extends true ? {
26
- allowTargetBlank: true;
27
- } : {
28
- allowTargetBlank?: undefined;
29
- };
30
- };
31
- declare type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {
32
- allowTargetBlank?: AllowTargetBlank;
33
- } & MockModelConfig;
34
- declare const link: <AllowTargetBlank extends boolean = boolean>(config?: MockLinkModelConfig<AllowTargetBlank>) => MockLinkModel<AllowTargetBlank>;
35
-
36
- declare const mockModelFns: {
37
- readonly boolean: (config?: MockModelConfig) => prismicT.CustomTypeModelBooleanField;
38
- readonly color: (config?: MockModelConfig) => prismicT.CustomTypeModelColorField;
39
- readonly contentRelationship: (config?: MockContentRelationshipModelConfig) => prismicT.CustomTypeModelContentRelationshipField;
40
- readonly date: (config?: MockModelConfig) => prismicT.CustomTypeModelDateField;
41
- readonly embed: (config?: MockModelConfig) => prismicT.CustomTypeModelEmbedField;
42
- readonly geoPoint: (config?: MockModelConfig) => prismicT.CustomTypeModelGeoPointField;
43
- readonly image: (config?: {
44
- withConstraint?: boolean | undefined;
45
- thumbnailsCount?: number | undefined;
46
- } & MockModelConfig) => prismicT.CustomTypeModelImageField;
47
- readonly integrationFields: (config?: MockModelConfig) => prismicT.CustomTypeModelIntegrationFieldsField;
48
- readonly keyText: (config?: MockModelConfig) => prismicT.CustomTypeModelKeyTextField;
49
- readonly link: <AllowTargetBlank extends boolean = boolean>(config?: MockLinkModelConfig<AllowTargetBlank>) => prismicT.CustomTypeModelLinkField & {
50
- config: AllowTargetBlank extends true ? {
51
- allowTargetBlank: true;
52
- } : {
53
- allowTargetBlank?: undefined;
54
- };
55
- };
56
- readonly linkToMedia: (config?: MockModelConfig) => prismicT.CustomTypeModelLinkToMediaField;
57
- readonly number: (config?: MockModelConfig) => prismicT.CustomTypeModelNumberField;
58
- readonly richText: <WithMultipleBlocks extends boolean = boolean>(config?: MockRichTextModelConfig<WithMultipleBlocks>) => WithMultipleBlocks extends true ? prismicT.CustomTypeModelRichTextMultiField : prismicT.CustomTypeModelRichTextSingleField;
59
- readonly select: (config?: {
60
- optionsCount?: number | undefined;
61
- withDefaultValue?: boolean | undefined;
62
- } & MockModelConfig) => prismicT.CustomTypeModelSelectField<string, string>;
63
- readonly timestamp: (config?: MockModelConfig) => prismicT.CustomTypeModelTimestampField;
64
- readonly title: (config?: MockModelConfig) => prismicT.CustomTypeModelRichTextSingleField;
65
- };
66
- declare type MockModelFns = typeof mockModelFns;
67
- declare type BuildMockGroupFieldMapConfig = {
68
- configs?: {
69
- [P in keyof MockModelFns]?: {
70
- count?: number;
71
- config?: Parameters<MockModelFns[P]>[0];
72
- };
73
- };
74
- } & MockModelConfig;
75
-
76
- declare type MockCustomTypeModelConfig = {
77
- tabsCount?: number;
78
- withUID?: boolean;
79
- configs?: BuildMockGroupFieldMapConfig["configs"];
21
+ declare type MockCustomTypeModelConfig<Definition extends prismicT.CustomTypeModelTab | prismicT.CustomTypeModelDefinition = prismicT.CustomTypeModelTab | prismicT.CustomTypeModelDefinition> = {
22
+ id?: string;
23
+ label?: string;
24
+ status?: boolean;
25
+ repeatable?: boolean;
80
26
  } & ({
81
- withSliceZones?: false;
27
+ fields?: Definition;
28
+ tabs?: never;
82
29
  } | {
83
- withSliceZones: true;
84
- withSharedSlices?: boolean;
30
+ tabs?: Definition;
31
+ fields?: never;
85
32
  }) & MockModelConfig;
86
- declare const customType: (config?: MockCustomTypeModelConfig) => prismicT.CustomTypeModel;
33
+ declare type MockCustomTypeModel<Definition extends prismicT.CustomTypeModelTab | prismicT.CustomTypeModelDefinition> = Definition extends prismicT.CustomTypeModelTab ? prismicT.CustomTypeModel<string, Record<"Main", Definition>> : Definition extends prismicT.CustomTypeModelDefinition ? prismicT.CustomTypeModel<string, Definition> : never;
34
+ declare const customType: <Definition extends Record<string, prismicT.CustomTypeModelField> | prismicT.CustomTypeModelDefinition<string>>(config?: MockCustomTypeModelConfig<Definition>) => MockCustomTypeModel<Definition>;
87
35
 
88
36
  declare type MockDateModelConfig = MockModelConfig;
89
37
  declare const date: (config?: MockDateModelConfig) => prismicT.CustomTypeModelDateField;
@@ -94,14 +42,16 @@ declare const embed: (config?: MockEmbedModelConfig) => prismicT.CustomTypeModel
94
42
  declare type MockGeoPointModelConfig = MockModelConfig;
95
43
  declare const geoPoint: (config?: MockGeoPointModelConfig) => prismicT.CustomTypeModelGeoPointField;
96
44
 
97
- declare type MockGroupModelConfig = BuildMockGroupFieldMapConfig & MockModelConfig;
98
- declare const group: (config?: MockGroupModelConfig) => prismicT.CustomTypeModelGroupField;
45
+ declare type MockGroupModelConfig<Fields extends GroupFieldModelMap> = {
46
+ fields?: Fields;
47
+ } & MockModelConfig;
48
+ declare const group: <Fields extends GroupFieldModelMap>(config?: MockGroupModelConfig<Fields>) => prismicT.CustomTypeModelGroupField<Fields>;
99
49
 
100
- declare type MockImageModelConfig = {
50
+ declare type MockImageModelConfig<ThumbnailNames extends string = string> = {
101
51
  withConstraint?: boolean;
102
- thumbnailsCount?: number;
52
+ thumbnailNames?: readonly ThumbnailNames[];
103
53
  } & MockModelConfig;
104
- declare const image: (config?: MockImageModelConfig) => prismicT.CustomTypeModelImageField;
54
+ declare const image: <ThumbnailNames extends string = string>(config?: MockImageModelConfig<ThumbnailNames>) => prismicT.CustomTypeModelImageField<ThumbnailNames>;
105
55
 
106
56
  declare type MockIntegrationFieldsModelConfig = MockModelConfig;
107
57
  declare const integrationFields: (config?: MockIntegrationFieldsModelConfig) => prismicT.CustomTypeModelIntegrationFieldsField;
@@ -109,42 +59,62 @@ declare const integrationFields: (config?: MockIntegrationFieldsModelConfig) =>
109
59
  declare type MockKeyTextModelConfig = MockModelConfig;
110
60
  declare const keyText: (config?: MockKeyTextModelConfig) => prismicT.CustomTypeModelKeyTextField;
111
61
 
62
+ declare type MockLinkModel<AllowTargetBlank extends boolean = boolean> = prismicT.CustomTypeModelLinkField & {
63
+ config: AllowTargetBlank extends true ? {
64
+ allowTargetBlank: true;
65
+ } : {
66
+ allowTargetBlank?: undefined;
67
+ };
68
+ };
69
+ declare type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {
70
+ allowTargetBlank?: AllowTargetBlank;
71
+ } & MockModelConfig;
72
+ declare const link: <AllowTargetBlank extends boolean = boolean>(config?: MockLinkModelConfig<AllowTargetBlank>) => MockLinkModel<AllowTargetBlank>;
73
+
112
74
  declare type MockLinkTomediaModelConfig = MockModelConfig;
113
75
  declare const linkToMedia: (config?: MockLinkTomediaModelConfig) => prismicT.CustomTypeModelLinkToMediaField;
114
76
 
115
77
  declare type MockNumberModelConfig = MockModelConfig;
116
78
  declare const number: (config?: MockNumberModelConfig) => prismicT.CustomTypeModelNumberField;
117
79
 
118
- declare type MockSelectModelConfig = {
119
- optionsCount?: number;
120
- withDefaultValue?: boolean;
80
+ declare type MockRichTextModelConfig<WithMultipleBlocks extends boolean = boolean> = {
81
+ withMultipleBlocks?: WithMultipleBlocks;
121
82
  } & MockModelConfig;
122
- declare const select: (config?: MockSelectModelConfig) => prismicT.CustomTypeModelSelectField;
83
+ declare const richText: <WithMultipleBlocks extends boolean = boolean>(config?: MockRichTextModelConfig<WithMultipleBlocks>) => WithMultipleBlocks extends true ? prismicT.CustomTypeModelRichTextMultiField : prismicT.CustomTypeModelRichTextSingleField;
123
84
 
124
- declare type MockSharedSliceVariationModelConfig = {
125
- primaryFieldConfig?: BuildMockGroupFieldMapConfig;
126
- itemsFieldConfig?: BuildMockGroupFieldMapConfig;
85
+ declare type MockSelectModelConfig<Option extends string = string, DefaultOption extends Option = Option> = {
86
+ options?: Option[];
87
+ defaultValue?: DefaultOption;
127
88
  } & MockModelConfig;
128
- declare const sharedSliceVariation: (config?: MockSharedSliceVariationModelConfig) => prismicT.SharedSliceModelVariation;
89
+ declare const select: <Option extends string, DefaultOption extends Option>(config?: MockSelectModelConfig<Option, DefaultOption>) => prismicT.CustomTypeModelSelectField<Option, DefaultOption>;
129
90
 
130
- declare type MockSharedSliceModelConfig = {
131
- variationsCount?: number;
132
- } & Pick<MockSharedSliceVariationModelConfig, "itemsFieldConfig" | "primaryFieldConfig"> & MockModelConfig;
133
- declare const sharedSlice: (config?: MockSharedSliceModelConfig) => prismicT.SharedSliceModel;
91
+ declare type MockSharedSliceModelConfig<Variation extends prismicT.SharedSliceModelVariation> = {
92
+ id?: string;
93
+ name?: string;
94
+ variations?: Variation[];
95
+ } & MockModelConfig;
96
+ declare const sharedSlice: <Variation extends prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceModelConfig<Variation>) => prismicT.SharedSliceModel<string, Variation>;
134
97
 
135
98
  declare const sharedSliceChoice: () => prismicT.CustomTypeModelSharedSlice;
136
99
 
137
- declare type MockSliceModelConfig = {
138
- repeatFieldConfig?: BuildMockGroupFieldMapConfig;
139
- nonRepeatFieldConfig?: BuildMockGroupFieldMapConfig;
100
+ declare type MockSharedSliceVariationModelConfig<ID extends string = string, PrimaryFields extends GroupFieldModelMap = GroupFieldModelMap, ItemsFields extends GroupFieldModelMap = GroupFieldModelMap> = {
101
+ id?: ID;
102
+ name?: string;
103
+ primaryFields?: PrimaryFields;
104
+ itemsFields?: ItemsFields;
140
105
  } & MockModelConfig;
141
- declare const slice: (config?: MockSliceModelConfig) => prismicT.CustomTypeModelSlice;
106
+ declare const sharedSliceVariation: <ID extends string, PrimaryFields extends GroupFieldModelMap, ItemsFields extends GroupFieldModelMap>(config?: MockSharedSliceVariationModelConfig<ID, PrimaryFields, ItemsFields>) => prismicT.SharedSliceModelVariation<ID, PrimaryFields, ItemsFields>;
142
107
 
143
- declare type MockSliceZoneModelConfig = {
144
- choicesCount?: number;
145
- withSharedSlices?: boolean;
108
+ declare type MockSliceModelConfig<NonRepeatFields extends GroupFieldModelMap = GroupFieldModelMap, RepeatFields extends GroupFieldModelMap = GroupFieldModelMap> = {
109
+ nonRepeatFields?: NonRepeatFields;
110
+ repeatFields?: RepeatFields;
146
111
  } & MockModelConfig;
147
- declare const sliceZone: (config?: MockSliceZoneModelConfig) => prismicT.CustomTypeModelSliceZoneField;
112
+ declare const slice: <NonRepeatFields extends GroupFieldModelMap, RepeatFields extends GroupFieldModelMap>(config?: MockSliceModelConfig<NonRepeatFields, RepeatFields>) => prismicT.CustomTypeModelSlice<NonRepeatFields, RepeatFields>;
113
+
114
+ declare type MockSliceZoneModelConfig<Slices extends Record<string, prismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice> = Record<string, prismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice>> = {
115
+ choices?: Slices;
116
+ } & MockModelConfig;
117
+ declare const sliceZone: <Slices extends Record<string, prismicT.CustomTypeModelSlice<Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>> | prismicT.CustomTypeModelSharedSlice>>(config?: MockSliceZoneModelConfig<Slices>) => prismicT.CustomTypeModelSliceZoneField<Slices>;
148
118
 
149
119
  declare type MockTimestampModelConfig = MockModelConfig;
150
120
  declare const timestamp: (config?: MockTimestampModelConfig) => prismicT.CustomTypeModelTimestampField;
@@ -155,4 +125,8 @@ declare const title: (config?: MockTitleModelConfig) => prismicT.CustomTypeModel
155
125
  declare type MockUIDModelConfig = MockModelConfig;
156
126
  declare const uid: (config?: MockUIDModelConfig) => prismicT.CustomTypeModelUIDField;
157
127
 
158
- export { boolean, color, contentRelationship, customType, date, embed, geoPoint, group, image, integrationFields, keyText, link, linkToMedia, number, richText, select, sharedSlice, sharedSliceChoice, sharedSliceVariation, slice, sliceZone, timestamp, title, uid };
128
+ declare type BuildMockGroupFieldMapConfig = MockModelConfig;
129
+ declare const buildMockGroupFieldMap: (config?: BuildMockGroupFieldMapConfig) => GroupFieldModelMap;
130
+
131
+ export { boolean, buildMockGroupFieldMap, color, contentRelationship, customType, date, embed, geoPoint, group, image, integrationFields, keyText, link, linkToMedia, number, richText, select, sharedSlice, sharedSliceChoice, sharedSliceVariation, slice, sliceZone, timestamp, title, uid };
132
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,462 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const prismicT = require('@prismicio/types');
6
+ const changeCase = require('change-case');
7
+ const fakerLocaleEN = require('faker/lib/locales/en/index.js');
8
+ const Faker = require('faker/lib/index.js');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ const n = Object.create(null);
15
+ if (e) {
16
+ for (const k in e) {
17
+ if (k !== 'default') {
18
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ }
25
+ }
26
+ n["default"] = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ const prismicT__namespace = /*#__PURE__*/_interopNamespace(prismicT);
31
+ const changeCase__namespace = /*#__PURE__*/_interopNamespace(changeCase);
32
+ const fakerLocaleEN__namespace = /*#__PURE__*/_interopNamespace(fakerLocaleEN);
33
+ const Faker__default = /*#__PURE__*/_interopDefaultLegacy(Faker);
34
+
35
+ const FAKER_SEED = 1984;
36
+
37
+ const createFaker = (seed = FAKER_SEED) => {
38
+ let normalizedSeed;
39
+ if (typeof seed === "string") {
40
+ normalizedSeed = seed.split("").map((char) => char.charCodeAt(0));
41
+ } else {
42
+ normalizedSeed = seed;
43
+ }
44
+ const cacheKey = JSON.stringify(normalizedSeed);
45
+ if (createFaker.cache[cacheKey]) {
46
+ return createFaker.cache[cacheKey];
47
+ }
48
+ const fakerInstance = new Faker__default["default"]();
49
+ fakerInstance.locales["en"] = fakerLocaleEN__namespace;
50
+ fakerInstance.seed(normalizedSeed);
51
+ createFaker.cache[cacheKey] = fakerInstance;
52
+ return fakerInstance;
53
+ };
54
+ createFaker.cache = {};
55
+
56
+ const boolean = (config = {}) => {
57
+ const faker = createFaker(config.seed);
58
+ return {
59
+ type: prismicT__namespace.CustomTypeModelFieldType.Boolean,
60
+ config: {
61
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun())
62
+ }
63
+ };
64
+ };
65
+
66
+ const color = (config = {}) => {
67
+ const faker = createFaker(config.seed);
68
+ return {
69
+ type: prismicT__namespace.CustomTypeModelFieldType.Color,
70
+ config: {
71
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
72
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
73
+ }
74
+ };
75
+ };
76
+
77
+ const contentRelationship = (config = {}) => {
78
+ const faker = createFaker(config.seed);
79
+ return {
80
+ type: prismicT__namespace.CustomTypeModelFieldType.Link,
81
+ config: {
82
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
83
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
84
+ select: prismicT__namespace.CustomTypeModelLinkSelectType.Document,
85
+ customtypes: config.customTypeIDs,
86
+ tags: config.tags
87
+ }
88
+ };
89
+ };
90
+
91
+ const customType = (config = {}) => {
92
+ var _a, _b;
93
+ const faker = createFaker(config.seed);
94
+ let label = config.label || changeCase__namespace.capitalCase(faker.company.bsNoun());
95
+ let id = config.id || changeCase__namespace.snakeCase(label);
96
+ if (config.id && !config.label) {
97
+ label = changeCase__namespace.capitalCase(config.id);
98
+ } else if (config.label && !config.label) {
99
+ id = changeCase__namespace.snakeCase(config.label);
100
+ }
101
+ let json = {};
102
+ if ("fields" in config && config.fields) {
103
+ json = { Main: config.fields };
104
+ } else if ("tabs" in config && config.tabs) {
105
+ json = config.tabs;
106
+ }
107
+ return {
108
+ id,
109
+ label,
110
+ status: (_a = config.status) != null ? _a : faker.datatype.boolean(),
111
+ repeatable: (_b = config.repeatable) != null ? _b : faker.datatype.boolean(),
112
+ json
113
+ };
114
+ };
115
+
116
+ const date = (config = {}) => {
117
+ const faker = createFaker(config.seed);
118
+ return {
119
+ type: prismicT__namespace.CustomTypeModelFieldType.Date,
120
+ config: {
121
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
122
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
123
+ }
124
+ };
125
+ };
126
+
127
+ const embed = (config = {}) => {
128
+ const faker = createFaker(config.seed);
129
+ return {
130
+ type: prismicT__namespace.CustomTypeModelFieldType.Embed,
131
+ config: {
132
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
133
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
134
+ }
135
+ };
136
+ };
137
+
138
+ const geoPoint = (config = {}) => {
139
+ const faker = createFaker(config.seed);
140
+ return {
141
+ type: prismicT__namespace.CustomTypeModelFieldType.GeoPoint,
142
+ config: {
143
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun())
144
+ }
145
+ };
146
+ };
147
+
148
+ const group = (config = {}) => {
149
+ const faker = createFaker(config.seed);
150
+ return {
151
+ type: prismicT__namespace.CustomTypeModelFieldType.Group,
152
+ config: {
153
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
154
+ fields: config.fields || {}
155
+ }
156
+ };
157
+ };
158
+
159
+ const image = (config = {}) => {
160
+ const faker = createFaker(config.seed);
161
+ const thumbnails = (config.thumbnailNames || []).map((name) => {
162
+ return {
163
+ name,
164
+ width: faker.datatype.number({ min: 500, max: 2e3 }),
165
+ height: faker.datatype.number({ min: 500, max: 2e3 })
166
+ };
167
+ });
168
+ return {
169
+ type: prismicT__namespace.CustomTypeModelFieldType.Image,
170
+ config: {
171
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
172
+ constraint: {
173
+ width: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null,
174
+ height: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null
175
+ },
176
+ thumbnails
177
+ }
178
+ };
179
+ };
180
+
181
+ const integrationFields = (config = {}) => {
182
+ const faker = createFaker(config.seed);
183
+ return {
184
+ type: prismicT__namespace.CustomTypeModelFieldType.IntegrationFields,
185
+ config: {
186
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
187
+ catalog: changeCase__namespace.snakeCase(faker.lorem.words(4))
188
+ }
189
+ };
190
+ };
191
+
192
+ const keyText = (config = {}) => {
193
+ const faker = createFaker(config.seed);
194
+ return {
195
+ type: prismicT__namespace.CustomTypeModelFieldType.Text,
196
+ config: {
197
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
198
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
199
+ }
200
+ };
201
+ };
202
+
203
+ const link = (config = {}) => {
204
+ const faker = createFaker(config.seed);
205
+ return {
206
+ type: prismicT__namespace.CustomTypeModelFieldType.Link,
207
+ config: {
208
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
209
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
210
+ select: null,
211
+ allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.datatype.boolean()) || void 0
212
+ }
213
+ };
214
+ };
215
+
216
+ const linkToMedia = (config = {}) => {
217
+ const faker = createFaker(config.seed);
218
+ return {
219
+ type: prismicT__namespace.CustomTypeModelFieldType.Link,
220
+ config: {
221
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
222
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
223
+ select: prismicT__namespace.CustomTypeModelLinkSelectType.Media
224
+ }
225
+ };
226
+ };
227
+
228
+ const number = (config = {}) => {
229
+ const faker = createFaker(config.seed);
230
+ return {
231
+ type: prismicT__namespace.CustomTypeModelFieldType.Number,
232
+ config: {
233
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
234
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
235
+ }
236
+ };
237
+ };
238
+
239
+ const richText = (config = {}) => {
240
+ var _a;
241
+ const faker = createFaker(config.seed);
242
+ const blockTypes = faker.random.arrayElements([
243
+ prismicT__namespace.RichTextNodeType.heading1,
244
+ prismicT__namespace.RichTextNodeType.heading2,
245
+ prismicT__namespace.RichTextNodeType.heading3,
246
+ prismicT__namespace.RichTextNodeType.heading4,
247
+ prismicT__namespace.RichTextNodeType.heading5,
248
+ prismicT__namespace.RichTextNodeType.heading6,
249
+ prismicT__namespace.RichTextNodeType.paragraph,
250
+ prismicT__namespace.RichTextNodeType.preformatted,
251
+ prismicT__namespace.RichTextNodeType.strong,
252
+ prismicT__namespace.RichTextNodeType.em,
253
+ prismicT__namespace.RichTextNodeType.listItem,
254
+ prismicT__namespace.RichTextNodeType.oListItem,
255
+ prismicT__namespace.RichTextNodeType.image,
256
+ prismicT__namespace.RichTextNodeType.embed,
257
+ prismicT__namespace.RichTextNodeType.hyperlink
258
+ ]).join(",");
259
+ const blockTypeConfig = ((_a = config.withMultipleBlocks) != null ? _a : faker.datatype.boolean()) ? { multi: blockTypes } : { single: blockTypes };
260
+ return {
261
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
262
+ config: {
263
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
264
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
265
+ allowTargetBlank: faker.datatype.boolean() ? true : void 0,
266
+ ...blockTypeConfig
267
+ }
268
+ };
269
+ };
270
+
271
+ const select = (config = {}) => {
272
+ const faker = createFaker(config.seed);
273
+ return {
274
+ type: prismicT__namespace.CustomTypeModelFieldType.Select,
275
+ config: {
276
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
277
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
278
+ options: config.options || [],
279
+ default_value: config.defaultValue || void 0
280
+ }
281
+ };
282
+ };
283
+
284
+ const sharedSlice = (config = {}) => {
285
+ const faker = createFaker(config.seed);
286
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
287
+ let id = config.id || changeCase__namespace.snakeCase(name);
288
+ if (config.id && !config.name) {
289
+ name = changeCase__namespace.pascalCase(config.id);
290
+ } else if (config.name && !config.name) {
291
+ id = changeCase__namespace.snakeCase(config.name);
292
+ }
293
+ return {
294
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
295
+ id,
296
+ name,
297
+ description: faker.lorem.sentence(),
298
+ variations: config.variations || []
299
+ };
300
+ };
301
+
302
+ const sharedSliceChoice = () => {
303
+ return {
304
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
305
+ };
306
+ };
307
+
308
+ const sharedSliceVariation = (config = {}) => {
309
+ const faker = createFaker(config.seed);
310
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
311
+ let id = config.id || changeCase__namespace.snakeCase(name);
312
+ if (config.id && !config.name) {
313
+ name = changeCase__namespace.pascalCase(config.id);
314
+ } else if (config.name && !config.name) {
315
+ id = changeCase__namespace.snakeCase(config.name);
316
+ }
317
+ return {
318
+ id,
319
+ name,
320
+ description: faker.lorem.sentence(),
321
+ docURL: faker.internet.url(),
322
+ version: faker.git.shortSha(),
323
+ primary: config.primaryFields || {},
324
+ items: config.itemsFields || {}
325
+ };
326
+ };
327
+
328
+ const slice = (config = {}) => {
329
+ const faker = createFaker(config.seed);
330
+ return {
331
+ type: prismicT__namespace.CustomTypeModelSliceType.Slice,
332
+ icon: changeCase__namespace.snakeCase(faker.company.bsNoun()),
333
+ display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
334
+ fieldset: changeCase__namespace.capitalCase(faker.lorem.words()),
335
+ description: faker.lorem.sentence(),
336
+ repeat: config.repeatFields || {},
337
+ "non-repeat": config.nonRepeatFields || {}
338
+ };
339
+ };
340
+
341
+ const sliceZone = (config = {}) => {
342
+ const labels = {};
343
+ for (const choiceId in config.choices) {
344
+ const choice = config.choices[choiceId];
345
+ if (choice.type === prismicT__namespace.CustomTypeModelSliceType.Slice) {
346
+ labels[choiceId] = [];
347
+ }
348
+ }
349
+ return {
350
+ type: prismicT__namespace.CustomTypeModelFieldType.Slices,
351
+ fieldset: "Slice zone",
352
+ config: {
353
+ labels,
354
+ choices: config.choices || {}
355
+ }
356
+ };
357
+ };
358
+
359
+ const timestamp = (config = {}) => {
360
+ const faker = createFaker(config.seed);
361
+ return {
362
+ type: prismicT__namespace.CustomTypeModelFieldType.Timestamp,
363
+ config: {
364
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
365
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
366
+ }
367
+ };
368
+ };
369
+
370
+ const title = (config = {}) => {
371
+ const faker = createFaker(config.seed);
372
+ const single = faker.random.arrayElements([
373
+ "heading1",
374
+ "heading2",
375
+ "heading3",
376
+ "heading4",
377
+ "heading5",
378
+ "heading6"
379
+ ]).join(",");
380
+ return {
381
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
382
+ config: {
383
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
384
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
385
+ single,
386
+ allowTargetBlank: faker.datatype.boolean() ? true : void 0
387
+ }
388
+ };
389
+ };
390
+
391
+ const uid = (config = {}) => {
392
+ const faker = createFaker(config.seed);
393
+ return {
394
+ type: prismicT__namespace.CustomTypeModelFieldType.UID,
395
+ config: {
396
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
397
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
398
+ }
399
+ };
400
+ };
401
+
402
+ const generateFieldId = (config) => {
403
+ const faker = createFaker(config.seed);
404
+ return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
405
+ };
406
+
407
+ const mockModelFns = {
408
+ boolean,
409
+ color,
410
+ contentRelationship,
411
+ date,
412
+ embed,
413
+ geoPoint,
414
+ image,
415
+ integrationFields,
416
+ keyText,
417
+ link,
418
+ linkToMedia,
419
+ number,
420
+ richText,
421
+ select,
422
+ timestamp,
423
+ title
424
+ };
425
+ const buildMockGroupFieldMap = (config = {}) => {
426
+ const faker = createFaker(config.seed);
427
+ const fields = {};
428
+ const fieldTypes = faker.random.arrayElements(Object.keys(mockModelFns));
429
+ for (const fieldType of fieldTypes) {
430
+ const fieldId = generateFieldId({ seed: config.seed });
431
+ const mockModelFn = mockModelFns[fieldType];
432
+ fields[fieldId] = mockModelFn({ seed: config.seed });
433
+ }
434
+ return fields;
435
+ };
436
+
437
+ exports.boolean = boolean;
438
+ exports.buildMockGroupFieldMap = buildMockGroupFieldMap;
439
+ exports.color = color;
440
+ exports.contentRelationship = contentRelationship;
441
+ exports.customType = customType;
442
+ exports.date = date;
443
+ exports.embed = embed;
444
+ exports.geoPoint = geoPoint;
445
+ exports.group = group;
446
+ exports.image = image;
447
+ exports.integrationFields = integrationFields;
448
+ exports.keyText = keyText;
449
+ exports.link = link;
450
+ exports.linkToMedia = linkToMedia;
451
+ exports.number = number;
452
+ exports.richText = richText;
453
+ exports.select = select;
454
+ exports.sharedSlice = sharedSlice;
455
+ exports.sharedSliceChoice = sharedSliceChoice;
456
+ exports.sharedSliceVariation = sharedSliceVariation;
457
+ exports.slice = slice;
458
+ exports.sliceZone = sliceZone;
459
+ exports.timestamp = timestamp;
460
+ exports.title = title;
461
+ exports.uid = uid;
462
+ //# sourceMappingURL=index.js.map