@prismicio/mock 0.0.4 → 0.0.8

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 (72) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +54 -35
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +4 -2
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/{index.mjs → index.js} +116 -63
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +365 -417
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +157 -243
  11. package/dist/{index.mjs → index.js} +359 -409
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +164 -204
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +73 -97
  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 +310 -519
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +71 -132
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/{index.mjs → index.js} +474 -629
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +21 -21
  26. package/src/constants.ts +3 -1
  27. package/src/lib/buildAlternativeLanguage.ts +18 -0
  28. package/src/lib/buildContentRelationshipField.ts +12 -5
  29. package/src/lib/buildEmbedField.ts +1 -1
  30. package/src/lib/buildImageFieldImage.ts +48 -0
  31. package/src/lib/createFaker.ts +19 -10
  32. package/src/lib/valueForModelMap.ts +2 -2
  33. package/src/model/buildMockGroupFieldMap.ts +65 -0
  34. package/src/model/contentRelationship.ts +14 -21
  35. package/src/model/customType.ts +49 -48
  36. package/src/model/group.ts +8 -15
  37. package/src/model/image.ts +13 -13
  38. package/src/model/index.ts +2 -0
  39. package/src/model/integrationFields.ts +4 -2
  40. package/src/model/select.ts +11 -16
  41. package/src/model/sharedSlice.ts +23 -30
  42. package/src/model/sharedSliceVariation.ts +33 -21
  43. package/src/model/slice.ts +15 -19
  44. package/src/model/sliceZone.ts +25 -42
  45. package/src/types.ts +130 -83
  46. package/src/value/color.ts +16 -6
  47. package/src/value/contentRelationship.ts +52 -36
  48. package/src/value/customType.ts +22 -3
  49. package/src/value/date.ts +25 -9
  50. package/src/value/embed.ts +18 -6
  51. package/src/value/geoPoint.ts +21 -9
  52. package/src/value/group.ts +35 -44
  53. package/src/value/image.ts +22 -9
  54. package/src/value/integrationFields.ts +26 -14
  55. package/src/value/keyText.ts +18 -6
  56. package/src/value/link.ts +33 -34
  57. package/src/value/linkToMedia.ts +15 -20
  58. package/src/value/number.ts +16 -6
  59. package/src/value/richText/heading.ts +7 -7
  60. package/src/value/richText/image.ts +6 -2
  61. package/src/value/richText/index.ts +1 -1
  62. package/src/value/select.ts +23 -8
  63. package/src/value/sharedSlice.ts +2 -2
  64. package/src/value/sharedSliceVariation.ts +6 -34
  65. package/src/value/slice.ts +5 -30
  66. package/src/value/sliceZone.ts +60 -69
  67. package/src/value/timestamp.ts +19 -6
  68. package/src/value/title.ts +26 -13
  69. package/src/value/uid.ts +1 -1
  70. package/dist/model/index.mjs +0 -448
  71. package/src/lib/buildImageField.ts +0 -34
  72. 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,57 +42,81 @@ 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
- declare type MockIntegrationFieldsModelConfig = MockModelConfig;
56
+ declare type MockIntegrationFieldsModelConfig = {
57
+ catalog?: string;
58
+ } & MockModelConfig;
107
59
  declare const integrationFields: (config?: MockIntegrationFieldsModelConfig) => prismicT.CustomTypeModelIntegrationFieldsField;
108
60
 
109
61
  declare type MockKeyTextModelConfig = MockModelConfig;
110
62
  declare const keyText: (config?: MockKeyTextModelConfig) => prismicT.CustomTypeModelKeyTextField;
111
63
 
64
+ declare type MockLinkModel<AllowTargetBlank extends boolean = boolean> = prismicT.CustomTypeModelLinkField & {
65
+ config: AllowTargetBlank extends true ? {
66
+ allowTargetBlank: true;
67
+ } : {
68
+ allowTargetBlank?: undefined;
69
+ };
70
+ };
71
+ declare type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {
72
+ allowTargetBlank?: AllowTargetBlank;
73
+ } & MockModelConfig;
74
+ declare const link: <AllowTargetBlank extends boolean = boolean>(config?: MockLinkModelConfig<AllowTargetBlank>) => MockLinkModel<AllowTargetBlank>;
75
+
112
76
  declare type MockLinkTomediaModelConfig = MockModelConfig;
113
77
  declare const linkToMedia: (config?: MockLinkTomediaModelConfig) => prismicT.CustomTypeModelLinkToMediaField;
114
78
 
115
79
  declare type MockNumberModelConfig = MockModelConfig;
116
80
  declare const number: (config?: MockNumberModelConfig) => prismicT.CustomTypeModelNumberField;
117
81
 
118
- declare type MockSelectModelConfig = {
119
- optionsCount?: number;
120
- withDefaultValue?: boolean;
82
+ declare type MockRichTextModelConfig<WithMultipleBlocks extends boolean = boolean> = {
83
+ withMultipleBlocks?: WithMultipleBlocks;
121
84
  } & MockModelConfig;
122
- declare const select: (config?: MockSelectModelConfig) => prismicT.CustomTypeModelSelectField;
85
+ declare const richText: <WithMultipleBlocks extends boolean = boolean>(config?: MockRichTextModelConfig<WithMultipleBlocks>) => WithMultipleBlocks extends true ? prismicT.CustomTypeModelRichTextMultiField : prismicT.CustomTypeModelRichTextSingleField;
123
86
 
124
- declare type MockSharedSliceVariationModelConfig = {
125
- primaryFieldConfig?: BuildMockGroupFieldMapConfig;
126
- itemsFieldConfig?: BuildMockGroupFieldMapConfig;
87
+ declare type MockSelectModelConfig<Option extends string = string, DefaultOption extends Option = Option> = {
88
+ options?: Option[];
89
+ defaultValue?: DefaultOption;
127
90
  } & MockModelConfig;
128
- declare const sharedSliceVariation: (config?: MockSharedSliceVariationModelConfig) => prismicT.SharedSliceModelVariation;
91
+ declare const select: <Option extends string, DefaultOption extends Option>(config?: MockSelectModelConfig<Option, DefaultOption>) => prismicT.CustomTypeModelSelectField<Option, DefaultOption>;
129
92
 
130
- declare type MockSharedSliceModelConfig = {
131
- variationsCount?: number;
132
- } & Pick<MockSharedSliceVariationModelConfig, "itemsFieldConfig" | "primaryFieldConfig"> & MockModelConfig;
133
- declare const sharedSlice: (config?: MockSharedSliceModelConfig) => prismicT.SharedSliceModel;
93
+ declare type MockSharedSliceModelConfig<Variation extends prismicT.SharedSliceModelVariation> = {
94
+ id?: string;
95
+ name?: string;
96
+ variations?: Variation[];
97
+ } & MockModelConfig;
98
+ declare const sharedSlice: <Variation extends prismicT.SharedSliceModelVariation<string, Record<string, prismicT.CustomTypeModelFieldForGroup>, Record<string, prismicT.CustomTypeModelFieldForGroup>>>(config?: MockSharedSliceModelConfig<Variation>) => prismicT.SharedSliceModel<string, Variation>;
134
99
 
135
100
  declare const sharedSliceChoice: () => prismicT.CustomTypeModelSharedSlice;
136
101
 
137
- declare type MockSliceModelConfig = {
138
- repeatFieldConfig?: BuildMockGroupFieldMapConfig;
139
- nonRepeatFieldConfig?: BuildMockGroupFieldMapConfig;
102
+ declare type MockSharedSliceVariationModelConfig<ID extends string = string, PrimaryFields extends GroupFieldModelMap = GroupFieldModelMap, ItemsFields extends GroupFieldModelMap = GroupFieldModelMap> = {
103
+ id?: ID;
104
+ name?: string;
105
+ primaryFields?: PrimaryFields;
106
+ itemsFields?: ItemsFields;
140
107
  } & MockModelConfig;
141
- declare const slice: (config?: MockSliceModelConfig) => prismicT.CustomTypeModelSlice;
108
+ declare const sharedSliceVariation: <ID extends string, PrimaryFields extends GroupFieldModelMap, ItemsFields extends GroupFieldModelMap>(config?: MockSharedSliceVariationModelConfig<ID, PrimaryFields, ItemsFields>) => prismicT.SharedSliceModelVariation<ID, PrimaryFields, ItemsFields>;
142
109
 
143
- declare type MockSliceZoneModelConfig = {
144
- choicesCount?: number;
145
- withSharedSlices?: boolean;
110
+ declare type MockSliceModelConfig<NonRepeatFields extends GroupFieldModelMap = GroupFieldModelMap, RepeatFields extends GroupFieldModelMap = GroupFieldModelMap> = {
111
+ nonRepeatFields?: NonRepeatFields;
112
+ repeatFields?: RepeatFields;
146
113
  } & MockModelConfig;
147
- declare const sliceZone: (config?: MockSliceZoneModelConfig) => prismicT.CustomTypeModelSliceZoneField;
114
+ declare const slice: <NonRepeatFields extends GroupFieldModelMap, RepeatFields extends GroupFieldModelMap>(config?: MockSliceModelConfig<NonRepeatFields, RepeatFields>) => prismicT.CustomTypeModelSlice<NonRepeatFields, RepeatFields>;
115
+
116
+ declare type MockSliceZoneModelConfig<Slices extends Record<string, prismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice> = Record<string, prismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice>> = {
117
+ choices?: Slices;
118
+ } & MockModelConfig;
119
+ 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
120
 
149
121
  declare type MockTimestampModelConfig = MockModelConfig;
150
122
  declare const timestamp: (config?: MockTimestampModelConfig) => prismicT.CustomTypeModelTimestampField;
@@ -155,4 +127,8 @@ declare const title: (config?: MockTitleModelConfig) => prismicT.CustomTypeModel
155
127
  declare type MockUIDModelConfig = MockModelConfig;
156
128
  declare const uid: (config?: MockUIDModelConfig) => prismicT.CustomTypeModelUIDField;
157
129
 
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 };
130
+ declare type BuildMockGroupFieldMapConfig = MockModelConfig;
131
+ declare const buildMockGroupFieldMap: (config?: BuildMockGroupFieldMapConfig) => GroupFieldModelMap;
132
+
133
+ 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 };
134
+ //# 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: config.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