@prismicio/mock 0.0.6 → 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.
- package/README.md +4 -1
- package/dist/api/index.cjs +39 -27
- package/dist/api/index.cjs.map +1 -0
- package/dist/api/index.d.ts +2 -1
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/{index.mjs → index.js} +104 -58
- package/dist/api/index.js.map +1 -0
- package/dist/index.cjs +293 -393
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +132 -230
- package/dist/{index.mjs → index.js} +286 -384
- package/dist/index.js.map +1 -0
- package/dist/model/index.cjs +148 -205
- package/dist/model/index.cjs.map +1 -0
- package/dist/model/index.d.ts +68 -104
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +462 -0
- package/dist/model/index.js.map +1 -0
- package/dist/value/index.cjs +238 -495
- package/dist/value/index.cjs.map +1 -0
- package/dist/value/index.d.ts +54 -116
- package/dist/value/index.d.ts.map +1 -0
- package/dist/value/{index.mjs → index.js} +407 -610
- package/dist/value/index.js.map +1 -0
- package/package.json +21 -21
- package/src/lib/buildContentRelationshipField.ts +6 -1
- package/src/lib/buildEmbedField.ts +1 -1
- package/src/lib/buildImageFieldImage.ts +48 -0
- package/src/model/buildMockGroupFieldMap.ts +65 -0
- package/src/model/contentRelationship.ts +14 -21
- package/src/model/customType.ts +49 -48
- package/src/model/group.ts +8 -15
- package/src/model/image.ts +13 -13
- package/src/model/index.ts +2 -0
- package/src/model/select.ts +11 -16
- package/src/model/sharedSlice.ts +14 -41
- package/src/model/sharedSliceVariation.ts +33 -21
- package/src/model/slice.ts +15 -19
- package/src/model/sliceZone.ts +23 -59
- package/src/types.ts +41 -12
- package/src/value/color.ts +16 -6
- package/src/value/contentRelationship.ts +51 -36
- package/src/value/date.ts +25 -9
- package/src/value/embed.ts +18 -6
- package/src/value/geoPoint.ts +21 -9
- package/src/value/group.ts +7 -27
- package/src/value/image.ts +22 -9
- package/src/value/integrationFields.ts +26 -14
- package/src/value/keyText.ts +18 -6
- package/src/value/link.ts +33 -34
- package/src/value/linkToMedia.ts +15 -20
- package/src/value/number.ts +16 -6
- package/src/value/richText/heading.ts +7 -7
- package/src/value/richText/image.ts +6 -2
- package/src/value/richText/index.ts +1 -1
- package/src/value/select.ts +23 -8
- package/src/value/sharedSlice.ts +2 -2
- package/src/value/sharedSliceVariation.ts +6 -34
- package/src/value/slice.ts +5 -30
- package/src/value/sliceZone.ts +44 -60
- package/src/value/timestamp.ts +19 -6
- package/src/value/title.ts +1 -1
- package/src/value/uid.ts +1 -1
- package/dist/model/index.mjs +0 -465
- package/src/lib/buildImageField.ts +0 -34
- package/src/lib/buildMockGroupFieldMap.ts +0 -84
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/constants.ts","../../src/lib/createFaker.ts","../../src/model/boolean.ts","../../src/model/color.ts","../../src/model/contentRelationship.ts","../../src/model/customType.ts","../../src/model/date.ts","../../src/model/embed.ts","../../src/model/geoPoint.ts","../../src/model/group.ts","../../src/model/image.ts","../../src/model/integrationFields.ts","../../src/model/keyText.ts","../../src/model/link.ts","../../src/model/linkToMedia.ts","../../src/model/number.ts","../../src/model/richText.ts","../../src/model/select.ts","../../src/model/sharedSlice.ts","../../src/model/sharedSliceChoice.ts","../../src/model/sharedSliceVariation.ts","../../src/model/slice.ts","../../src/model/sliceZone.ts","../../src/model/timestamp.ts","../../src/model/title.ts","../../src/model/uid.ts","../../src/lib/generateFieldId.ts","../../src/model/buildMockGroupFieldMap.ts"],"sourcesContent":["import { Seed } from \"./types\";\n\nexport const FAKER_SEED: Seed = 1984;\n","import * as fakerStatic from \"faker\";\n// @ts-expect-error - Missing .d.ts\nimport * as fakerLocaleEN from \"faker/lib/locales/en/index.js\";\n// @ts-expect-error - Missing .d.ts\nimport Faker from \"faker/lib/index.js\";\n\nimport { FAKER_SEED } from \"../constants\";\n\nexport const createFaker = (seed = FAKER_SEED): typeof fakerStatic => {\n\tlet normalizedSeed: number | number[];\n\tif (typeof seed === \"string\") {\n\t\tnormalizedSeed = seed.split(\"\").map((char) => char.charCodeAt(0));\n\t} else {\n\t\tnormalizedSeed = seed;\n\t}\n\n\tconst cacheKey = JSON.stringify(normalizedSeed);\n\n\tif (createFaker.cache[cacheKey]) {\n\t\treturn createFaker.cache[cacheKey];\n\t}\n\n\tconst fakerInstance = new Faker();\n\tfakerInstance.locales[\"en\"] = fakerLocaleEN;\n\tfakerInstance.seed(normalizedSeed);\n\n\tcreateFaker.cache[cacheKey] = fakerInstance;\n\n\treturn fakerInstance;\n};\ncreateFaker.cache = {} as Record<string, typeof fakerStatic>;\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockBooleanModelConfig = MockModelConfig;\n\nexport const boolean = (\n\tconfig: MockBooleanModelConfig = {},\n): prismicT.CustomTypeModelBooleanField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Boolean,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockColorModelConfig = MockModelConfig;\n\nexport const color = (\n\tconfig: MockColorModelConfig = {},\n): prismicT.CustomTypeModelColorField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Color,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockContentRelationshipModelConfig<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n> = {\n\tcustomTypeIDs?: readonly CustomTypeIDs[];\n\ttags?: readonly Tags[];\n} & MockModelConfig;\n\nexport const contentRelationship = <\n\tCustomTypeIDs extends string,\n\tTags extends string,\n>(\n\tconfig: MockContentRelationshipModelConfig<CustomTypeIDs, Tags> = {},\n): prismicT.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t\tselect: prismicT.CustomTypeModelLinkSelectType.Document,\n\t\t\tcustomtypes: config.customTypeIDs,\n\t\t\ttags: config.tags,\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockCustomTypeModelConfig<\n\tDefinition extends\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition =\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition,\n> = {\n\tid?: string;\n\tlabel?: string;\n\tstatus?: boolean;\n\trepeatable?: boolean;\n} & (\n\t| {\n\t\t\tfields?: Definition;\n\t\t\ttabs?: never;\n\t }\n\t| {\n\t\t\ttabs?: Definition;\n\t\t\tfields?: never;\n\t }\n) &\n\tMockModelConfig;\n\ntype MockCustomTypeModel<\n\tDefinition extends\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition,\n> = Definition extends prismicT.CustomTypeModelTab\n\t? prismicT.CustomTypeModel<string, Record<\"Main\", Definition>>\n\t: Definition extends prismicT.CustomTypeModelDefinition\n\t? prismicT.CustomTypeModel<string, Definition>\n\t: never;\n\nexport const customType = <\n\tDefinition extends\n\t\t| prismicT.CustomTypeModelTab\n\t\t| prismicT.CustomTypeModelDefinition,\n>(\n\tconfig: MockCustomTypeModelConfig<Definition> = {},\n): MockCustomTypeModel<Definition> => {\n\tconst faker = createFaker(config.seed);\n\n\tlet label: string =\n\t\tconfig.label || changeCase.capitalCase(faker.company.bsNoun());\n\tlet id: string = config.id || changeCase.snakeCase(label);\n\n\tif (config.id && !config.label) {\n\t\tlabel = changeCase.capitalCase(config.id);\n\t} else if (config.label && !config.label) {\n\t\tid = changeCase.snakeCase(config.label);\n\t}\n\n\tlet json = {} as MockCustomTypeModel<Definition>[\"json\"];\n\n\tif (\"fields\" in config && config.fields) {\n\t\tjson = { Main: config.fields } as typeof json;\n\t} else if (\"tabs\" in config && config.tabs) {\n\t\tjson = config.tabs as typeof json;\n\t}\n\n\treturn {\n\t\tid,\n\t\tlabel,\n\t\tstatus: config.status ?? faker.datatype.boolean(),\n\t\trepeatable: config.repeatable ?? faker.datatype.boolean(),\n\t\tjson,\n\t} as MockCustomTypeModel<Definition>;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockDateModelConfig = MockModelConfig;\n\nexport const date = (\n\tconfig: MockDateModelConfig = {},\n): prismicT.CustomTypeModelDateField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Date,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockEmbedModelConfig = MockModelConfig;\n\nexport const embed = (\n\tconfig: MockEmbedModelConfig = {},\n): prismicT.CustomTypeModelEmbedField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Embed,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockGeoPointModelConfig = MockModelConfig;\n\nexport const geoPoint = (\n\tconfig: MockGeoPointModelConfig = {},\n): prismicT.CustomTypeModelGeoPointField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.GeoPoint,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { GroupFieldModelMap, MockModelConfig } from \"../types\";\n\ntype MockGroupModelConfig<Fields extends GroupFieldModelMap> = {\n\tfields?: Fields;\n} & MockModelConfig;\n\nexport const group = <Fields extends GroupFieldModelMap>(\n\tconfig: MockGroupModelConfig<Fields> = {},\n): prismicT.CustomTypeModelGroupField<Fields> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Group,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tfields: config.fields || ({} as Fields),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockImageModelConfig<ThumbnailNames extends string = string> = {\n\twithConstraint?: boolean;\n\tthumbnailNames?: readonly ThumbnailNames[];\n} & MockModelConfig;\n\nexport const image = <ThumbnailNames extends string = string>(\n\tconfig: MockImageModelConfig<ThumbnailNames> = {},\n): prismicT.CustomTypeModelImageField<ThumbnailNames> => {\n\tconst faker = createFaker(config.seed);\n\n\tconst thumbnails = (config.thumbnailNames || []).map((name) => {\n\t\treturn {\n\t\t\tname,\n\t\t\twidth: faker.datatype.number({ min: 500, max: 2000 }),\n\t\t\theight: faker.datatype.number({ min: 500, max: 2000 }),\n\t\t};\n\t});\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Image,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tconstraint: {\n\t\t\t\twidth: config.withConstraint\n\t\t\t\t\t? faker.datatype.number({ min: 500, max: 2000 })\n\t\t\t\t\t: null,\n\t\t\t\theight: config.withConstraint\n\t\t\t\t\t? faker.datatype.number({ min: 500, max: 2000 })\n\t\t\t\t\t: null,\n\t\t\t},\n\t\t\tthumbnails,\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockIntegrationFieldsModelConfig = MockModelConfig;\n\nexport const integrationFields = (\n\tconfig: MockIntegrationFieldsModelConfig = {},\n): prismicT.CustomTypeModelIntegrationFieldsField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.IntegrationFields,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tcatalog: changeCase.snakeCase(faker.lorem.words(4)),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockKeyTextModelConfig = MockModelConfig;\n\nexport const keyText = (\n\tconfig: MockKeyTextModelConfig = {},\n): prismicT.CustomTypeModelKeyTextField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Text,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockLinkModel<AllowTargetBlank extends boolean = boolean> =\n\tprismicT.CustomTypeModelLinkField & {\n\t\tconfig: AllowTargetBlank extends true\n\t\t\t? {\n\t\t\t\t\tallowTargetBlank: true;\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tallowTargetBlank?: undefined;\n\t\t\t };\n\t};\n\nexport type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {\n\tallowTargetBlank?: AllowTargetBlank;\n} & MockModelConfig;\n\nexport const link = <AllowTargetBlank extends boolean = boolean>(\n\tconfig: MockLinkModelConfig<AllowTargetBlank> = {},\n): MockLinkModel<AllowTargetBlank> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t\tselect: null,\n\t\t\tallowTargetBlank:\n\t\t\t\t(\"allowTargetBlank\" in config\n\t\t\t\t\t? config.allowTargetBlank\n\t\t\t\t\t: faker.datatype.boolean()) || undefined,\n\t\t},\n\t} as MockLinkModel<AllowTargetBlank>;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockLinkTomediaModelConfig = MockModelConfig;\n\nexport const linkToMedia = (\n\tconfig: MockLinkTomediaModelConfig = {},\n): prismicT.CustomTypeModelLinkToMediaField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t\tselect: prismicT.CustomTypeModelLinkSelectType.Media,\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockNumberModelConfig = MockModelConfig;\n\nexport const number = (\n\tconfig: MockNumberModelConfig = {},\n): prismicT.CustomTypeModelNumberField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Number,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockRichTextModelConfig<\n\tWithMultipleBlocks extends boolean = boolean,\n> = {\n\twithMultipleBlocks?: WithMultipleBlocks;\n} & MockModelConfig;\n\nexport const richText = <WithMultipleBlocks extends boolean = boolean>(\n\tconfig: MockRichTextModelConfig<WithMultipleBlocks> = {},\n): WithMultipleBlocks extends true\n\t? prismicT.CustomTypeModelRichTextMultiField\n\t: prismicT.CustomTypeModelRichTextSingleField => {\n\tconst faker = createFaker(config.seed);\n\n\tconst blockTypes = faker.random\n\t\t.arrayElements([\n\t\t\tprismicT.RichTextNodeType.heading1,\n\t\t\tprismicT.RichTextNodeType.heading2,\n\t\t\tprismicT.RichTextNodeType.heading3,\n\t\t\tprismicT.RichTextNodeType.heading4,\n\t\t\tprismicT.RichTextNodeType.heading5,\n\t\t\tprismicT.RichTextNodeType.heading6,\n\t\t\tprismicT.RichTextNodeType.paragraph,\n\t\t\tprismicT.RichTextNodeType.preformatted,\n\t\t\tprismicT.RichTextNodeType.strong,\n\t\t\tprismicT.RichTextNodeType.em,\n\t\t\tprismicT.RichTextNodeType.listItem,\n\t\t\tprismicT.RichTextNodeType.oListItem,\n\t\t\tprismicT.RichTextNodeType.image,\n\t\t\tprismicT.RichTextNodeType.embed,\n\t\t\tprismicT.RichTextNodeType.hyperlink,\n\t\t])\n\t\t.join(\",\");\n\n\tconst blockTypeConfig =\n\t\tconfig.withMultipleBlocks ?? faker.datatype.boolean()\n\t\t\t? { multi: blockTypes }\n\t\t\t: { single: blockTypes };\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.StructuredText,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t\tallowTargetBlank: faker.datatype.boolean() ? true : undefined,\n\t\t\t...blockTypeConfig,\n\t\t},\n\t} as WithMultipleBlocks extends true\n\t\t? prismicT.CustomTypeModelRichTextMultiField\n\t\t: prismicT.CustomTypeModelRichTextSingleField;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockSelectModelConfig<\n\tOption extends string = string,\n\tDefaultOption extends Option = Option,\n> = {\n\toptions?: Option[];\n\tdefaultValue?: DefaultOption;\n} & MockModelConfig;\n\nexport const select = <Option extends string, DefaultOption extends Option>(\n\tconfig: MockSelectModelConfig<Option, DefaultOption> = {},\n): prismicT.CustomTypeModelSelectField<Option, DefaultOption> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Select,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t\toptions: config.options || [],\n\t\t\tdefault_value: config.defaultValue || undefined,\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockSharedSliceModelConfig<\n\tVariation extends prismicT.SharedSliceModelVariation,\n> = {\n\tid?: string;\n\tname?: string;\n\tvariations?: Variation[];\n} & MockModelConfig;\n\nexport const sharedSlice = <\n\tVariation extends prismicT.SharedSliceModelVariation,\n>(\n\tconfig: MockSharedSliceModelConfig<Variation> = {},\n): prismicT.SharedSliceModel<string, Variation> => {\n\tconst faker = createFaker(config.seed);\n\n\tlet name: string =\n\t\tconfig.name || changeCase.capitalCase(faker.company.bsNoun());\n\tlet id: string = config.id || changeCase.snakeCase(name);\n\n\tif (config.id && !config.name) {\n\t\tname = changeCase.pascalCase(config.id);\n\t} else if (config.name && !config.name) {\n\t\tid = changeCase.snakeCase(config.name);\n\t}\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelSliceType.SharedSlice,\n\t\tid,\n\t\tname,\n\t\tdescription: faker.lorem.sentence(),\n\t\tvariations: config.variations || ([] as Variation[]),\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nexport const sharedSliceChoice = (): prismicT.CustomTypeModelSharedSlice => {\n\treturn {\n\t\ttype: prismicT.CustomTypeModelSliceType.SharedSlice,\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { GroupFieldModelMap, MockModelConfig } from \"../types\";\n\nexport type MockSharedSliceVariationModelConfig<\n\tID extends string = string,\n\tPrimaryFields extends GroupFieldModelMap = GroupFieldModelMap,\n\tItemsFields extends GroupFieldModelMap = GroupFieldModelMap,\n> = {\n\tid?: ID;\n\tname?: string;\n\tprimaryFields?: PrimaryFields;\n\titemsFields?: ItemsFields;\n} & MockModelConfig;\n\nexport const sharedSliceVariation = <\n\tID extends string,\n\tPrimaryFields extends GroupFieldModelMap,\n\tItemsFields extends GroupFieldModelMap,\n>(\n\tconfig: MockSharedSliceVariationModelConfig<\n\t\tID,\n\t\tPrimaryFields,\n\t\tItemsFields\n\t> = {},\n): prismicT.SharedSliceModelVariation<ID, PrimaryFields, ItemsFields> => {\n\tconst faker = createFaker(config.seed);\n\n\tlet name: string =\n\t\tconfig.name || changeCase.capitalCase(faker.company.bsNoun());\n\tlet id: ID = config.id || (changeCase.snakeCase(name) as ID);\n\n\tif (config.id && !config.name) {\n\t\tname = changeCase.pascalCase(config.id);\n\t} else if (config.name && !config.name) {\n\t\tid = changeCase.snakeCase(config.name) as ID;\n\t}\n\n\treturn {\n\t\tid,\n\t\tname,\n\t\tdescription: faker.lorem.sentence(),\n\t\tdocURL: faker.internet.url(),\n\t\tversion: faker.git.shortSha(),\n\t\tprimary: config.primaryFields || ({} as PrimaryFields),\n\t\titems: config.itemsFields || ({} as ItemsFields),\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { GroupFieldModelMap, MockModelConfig } from \"../types\";\n\ntype MockSliceModelConfig<\n\tNonRepeatFields extends GroupFieldModelMap = GroupFieldModelMap,\n\tRepeatFields extends GroupFieldModelMap = GroupFieldModelMap,\n> = {\n\tnonRepeatFields?: NonRepeatFields;\n\trepeatFields?: RepeatFields;\n} & MockModelConfig;\n\nexport const slice = <\n\tNonRepeatFields extends GroupFieldModelMap,\n\tRepeatFields extends GroupFieldModelMap,\n>(\n\tconfig: MockSliceModelConfig<NonRepeatFields, RepeatFields> = {},\n): prismicT.CustomTypeModelSlice<NonRepeatFields, RepeatFields> => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelSliceType.Slice,\n\t\ticon: changeCase.snakeCase(faker.company.bsNoun()),\n\t\tdisplay: faker.datatype.boolean()\n\t\t\t? prismicT.CustomTypeModelSliceDisplay.Grid\n\t\t\t: prismicT.CustomTypeModelSliceDisplay.List,\n\t\tfieldset: changeCase.capitalCase(faker.lorem.words()),\n\t\tdescription: faker.lorem.sentence(),\n\t\trepeat: config.repeatFields || ({} as RepeatFields),\n\t\t\"non-repeat\": config.nonRepeatFields || ({} as NonRepeatFields),\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockSliceZoneModelConfig<\n\tSlices extends Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice\n\t> = Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice\n\t>,\n> = {\n\tchoices?: Slices;\n} & MockModelConfig;\n\nexport const sliceZone = <\n\tSlices extends Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice\n\t>,\n>(\n\tconfig: MockSliceZoneModelConfig<Slices> = {},\n): prismicT.CustomTypeModelSliceZoneField<Slices> => {\n\tconst labels =\n\t\t{} as prismicT.CustomTypeModelSliceZoneField<Slices>[\"config\"][\"labels\"];\n\n\tfor (const choiceId in config.choices) {\n\t\tconst choice = config.choices[choiceId];\n\n\t\tif (choice.type === prismicT.CustomTypeModelSliceType.Slice) {\n\t\t\tlabels[choiceId as unknown as keyof typeof labels] = [];\n\t\t}\n\t}\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Slices,\n\t\tfieldset: \"Slice zone\",\n\t\tconfig: {\n\t\t\tlabels,\n\t\t\tchoices: config.choices || ({} as Slices),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockTimestampModelConfig = MockModelConfig;\n\nexport const timestamp = (\n\tconfig: MockTimestampModelConfig = {},\n): prismicT.CustomTypeModelTimestampField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.Timestamp,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockTitleModelConfig = MockModelConfig;\n\nexport const title = (\n\tconfig: MockTitleModelConfig = {},\n): prismicT.CustomTypeModelTitleField => {\n\tconst faker = createFaker(config.seed);\n\n\tconst single = faker.random\n\t\t.arrayElements([\n\t\t\t\"heading1\",\n\t\t\t\"heading2\",\n\t\t\t\"heading3\",\n\t\t\t\"heading4\",\n\t\t\t\"heading5\",\n\t\t\t\"heading6\",\n\t\t])\n\t\t.join(\",\");\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.StructuredText,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t\tsingle,\n\t\t\tallowTargetBlank: faker.datatype.boolean() ? true : undefined,\n\t\t},\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\nexport type MockUIDModelConfig = MockModelConfig;\n\nexport const uid = (\n\tconfig: MockUIDModelConfig = {},\n): prismicT.CustomTypeModelUIDField => {\n\tconst faker = createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismicT.CustomTypeModelFieldType.UID,\n\t\tconfig: {\n\t\t\tlabel: changeCase.capitalCase(faker.company.bsNoun()),\n\t\t\tplaceholder: changeCase.sentenceCase(faker.lorem.words(3)),\n\t\t},\n\t};\n};\n","import * as changeCase from \"change-case\";\n\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype GenerateFieldIdConfig = Pick<MockModelConfig, \"seed\">;\n\nexport const generateFieldId = (config: GenerateFieldIdConfig): string => {\n\tconst faker = createFaker(config.seed);\n\n\treturn changeCase.snakeCase(\n\t\tfaker.lorem.words(faker.datatype.number({ min: 1, max: 3 })),\n\t);\n};\n","import { GroupFieldModelMap, MockModelConfig, ValueOf } from \"../types\";\n\nimport { boolean } from \"../model/boolean\";\nimport { color } from \"../model/color\";\nimport { contentRelationship } from \"../model/contentRelationship\";\nimport { date } from \"../model/date\";\nimport { embed } from \"../model/embed\";\nimport { geoPoint } from \"../model/geoPoint\";\nimport { image } from \"../model/image\";\nimport { integrationFields } from \"../model/integrationFields\";\nimport { keyText } from \"../model/keyText\";\nimport { link } from \"../model/link\";\nimport { linkToMedia } from \"../model/linkToMedia\";\nimport { number } from \"../model/number\";\nimport { richText } from \"../model/richText\";\nimport { select } from \"../model/select\";\nimport { timestamp } from \"../model/timestamp\";\nimport { title } from \"../model/title\";\n\nimport { createFaker } from \"../lib/createFaker\";\nimport { generateFieldId } from \"../lib/generateFieldId\";\n\nconst mockModelFns = {\n\tboolean,\n\tcolor,\n\tcontentRelationship,\n\tdate,\n\tembed,\n\tgeoPoint,\n\timage,\n\tintegrationFields,\n\tkeyText,\n\tlink,\n\tlinkToMedia,\n\tnumber,\n\trichText,\n\tselect,\n\ttimestamp,\n\ttitle,\n};\n\nexport type BuildMockGroupFieldMapConfig = MockModelConfig;\n\nexport const buildMockGroupFieldMap = (\n\tconfig: BuildMockGroupFieldMapConfig = {},\n): GroupFieldModelMap => {\n\tconst faker = createFaker(config.seed);\n\n\tconst fields: GroupFieldModelMap = {};\n\n\tconst fieldTypes = faker.random.arrayElements(\n\t\tObject.keys(mockModelFns) as (keyof typeof mockModelFns)[],\n\t);\n\n\tfor (const fieldType of fieldTypes) {\n\t\tconst fieldId = generateFieldId({ seed: config.seed });\n\t\tconst mockModelFn = mockModelFns[fieldType] as (\n\t\t\tconfig: MockModelConfig,\n\t\t) => ValueOf<GroupFieldModelMap>;\n\n\t\tfields[fieldId] = mockModelFn({ seed: config.seed });\n\t}\n\n\treturn fields;\n};\n"],"names":["Faker","fakerLocaleEN","prismicT","changeCase"],"mappings":"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"}
|