@prismicio/mock 0.0.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.cjs +348 -236
- package/dist/api/index.cjs.map +1 -1
- package/dist/api/index.d.ts +52 -6
- package/dist/api/index.js +348 -236
- package/dist/api/index.js.map +1 -1
- package/dist/index.cjs +893 -543
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +247 -73
- package/dist/index.js +885 -542
- package/dist/index.js.map +1 -1
- package/dist/model/index.cjs +398 -134
- package/dist/model/index.cjs.map +1 -1
- package/dist/model/index.d.ts +114 -28
- package/dist/model/index.js +398 -134
- package/dist/model/index.js.map +1 -1
- package/dist/value/index.cjs +598 -468
- package/dist/value/index.cjs.map +1 -1
- package/dist/value/index.d.ts +96 -40
- package/dist/value/index.js +598 -468
- package/dist/value/index.js.map +1 -1
- package/package.json +22 -20
- package/src/api/createAPIMockFactory.ts +56 -0
- package/src/api/query.ts +4 -4
- package/src/api/ref.ts +6 -6
- package/src/api/repository.ts +12 -14
- package/src/api/tags.ts +5 -2
- package/src/createMockFactory.ts +52 -0
- package/src/index.ts +15 -0
- package/src/lib/buildEmbedField.ts +28 -30
- package/src/lib/buildImageFieldImage.ts +19 -7
- package/src/lib/createFaker.ts +99 -22
- package/src/lib/generateCustomTypeId.ts +13 -5
- package/src/lib/generateFieldId.ts +13 -7
- package/src/lib/generateTags.ts +17 -16
- package/src/lib/getMockEmbedData.ts +45 -16
- package/src/lib/getMockImageData.ts +13 -5
- package/src/lib/lorem.ts +112 -0
- package/src/lib/valueForModel.ts +47 -30
- package/src/lib/valueForModelMap.ts +24 -4
- package/src/model/boolean.ts +6 -6
- package/src/model/buildMockGroupFieldMap.ts +5 -5
- package/src/model/color.ts +4 -4
- package/src/model/contentRelationship.ts +4 -4
- package/src/model/createModelMockFactory.ts +213 -0
- package/src/model/customType.ts +6 -6
- package/src/model/date.ts +4 -4
- package/src/model/embed.ts +4 -4
- package/src/model/geoPoint.ts +3 -3
- package/src/model/group.ts +7 -7
- package/src/model/image.ts +8 -12
- package/src/model/index.ts +2 -0
- package/src/model/integrationFields.ts +4 -4
- package/src/model/keyText.ts +4 -4
- package/src/model/link.ts +6 -6
- package/src/model/linkToMedia.ts +5 -5
- package/src/model/number.ts +4 -4
- package/src/model/richText.ts +8 -8
- package/src/model/select.ts +5 -5
- package/src/model/sharedSlice.ts +5 -5
- package/src/model/sharedSliceVariation.ts +10 -10
- package/src/model/slice.ts +7 -7
- package/src/model/sliceZone.ts +7 -4
- package/src/model/timestamp.ts +4 -4
- package/src/model/title.ts +7 -7
- package/src/model/uid.ts +4 -4
- package/src/types.ts +70 -31
- package/src/value/boolean.ts +4 -6
- package/src/value/color.ts +3 -3
- package/src/value/contentRelationship.ts +21 -18
- package/src/value/createValueMockFactory.ts +236 -0
- package/src/value/customType.ts +12 -12
- package/src/value/date.ts +6 -2
- package/src/value/embed.ts +23 -7
- package/src/value/geoPoint.ts +4 -6
- package/src/value/group.ts +6 -11
- package/src/value/image.ts +26 -18
- package/src/value/integrationFields.ts +12 -26
- package/src/value/keyText.ts +3 -5
- package/src/value/link.ts +11 -9
- package/src/value/linkToMedia.ts +9 -8
- package/src/value/number.ts +3 -3
- package/src/value/richText/embed.ts +6 -3
- package/src/value/richText/heading.ts +32 -27
- package/src/value/richText/image.ts +9 -8
- package/src/value/richText/index.ts +71 -48
- package/src/value/richText/list.ts +6 -10
- package/src/value/richText/oList.ts +6 -10
- package/src/value/richText/paragraph.ts +10 -6
- package/src/value/richText/preformatted.ts +11 -7
- package/src/value/select.ts +11 -7
- package/src/value/sharedSlice.ts +5 -5
- package/src/value/sharedSliceVariation.ts +11 -16
- package/src/value/slice.ts +11 -15
- package/src/value/sliceZone.ts +14 -18
- package/src/value/timestamp.ts +31 -18
- package/src/value/title.ts +7 -3
- package/src/value/uid.ts +6 -4
|
@@ -42,23 +42,23 @@ const mockModelFns = {
|
|
|
42
42
|
export type BuildMockGroupFieldMapConfig = MockModelConfig;
|
|
43
43
|
|
|
44
44
|
export const buildMockGroupFieldMap = (
|
|
45
|
-
config: BuildMockGroupFieldMapConfig
|
|
45
|
+
config: BuildMockGroupFieldMapConfig,
|
|
46
46
|
): GroupFieldModelMap => {
|
|
47
|
-
const faker = createFaker(config.seed);
|
|
47
|
+
const faker = config.faker || createFaker(config.seed);
|
|
48
48
|
|
|
49
49
|
const fields: GroupFieldModelMap = {};
|
|
50
50
|
|
|
51
|
-
const fieldTypes = faker.
|
|
51
|
+
const fieldTypes = faker.randomElements(
|
|
52
52
|
Object.keys(mockModelFns) as (keyof typeof mockModelFns)[],
|
|
53
53
|
);
|
|
54
54
|
|
|
55
55
|
for (const fieldType of fieldTypes) {
|
|
56
|
-
const fieldId = generateFieldId({
|
|
56
|
+
const fieldId = generateFieldId({ faker });
|
|
57
57
|
const mockModelFn = mockModelFns[fieldType] as (
|
|
58
58
|
config: MockModelConfig,
|
|
59
59
|
) => ValueOf<GroupFieldModelMap>;
|
|
60
60
|
|
|
61
|
-
fields[fieldId] = mockModelFn({
|
|
61
|
+
fields[fieldId] = mockModelFn({ faker });
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
return fields;
|
package/src/model/color.ts
CHANGED
|
@@ -8,15 +8,15 @@ import { MockModelConfig } from "../types";
|
|
|
8
8
|
export type MockColorModelConfig = MockModelConfig;
|
|
9
9
|
|
|
10
10
|
export const color = (
|
|
11
|
-
config: MockColorModelConfig
|
|
11
|
+
config: MockColorModelConfig,
|
|
12
12
|
): prismicT.CustomTypeModelColorField => {
|
|
13
|
-
const faker = createFaker(config.seed);
|
|
13
|
+
const faker = config.faker || createFaker(config.seed);
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.Color,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
19
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
18
|
+
label: changeCase.capitalCase(faker.word()),
|
|
19
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
22
|
};
|
|
@@ -17,15 +17,15 @@ export const contentRelationship = <
|
|
|
17
17
|
CustomTypeIDs extends string,
|
|
18
18
|
Tags extends string,
|
|
19
19
|
>(
|
|
20
|
-
config: MockContentRelationshipModelConfig<CustomTypeIDs, Tags
|
|
20
|
+
config: MockContentRelationshipModelConfig<CustomTypeIDs, Tags>,
|
|
21
21
|
): prismicT.CustomTypeModelContentRelationshipField<CustomTypeIDs, Tags> => {
|
|
22
|
-
const faker = createFaker(config.seed);
|
|
22
|
+
const faker = config.faker || createFaker(config.seed);
|
|
23
23
|
|
|
24
24
|
return {
|
|
25
25
|
type: prismicT.CustomTypeModelFieldType.Link,
|
|
26
26
|
config: {
|
|
27
|
-
label: changeCase.capitalCase(faker.
|
|
28
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
27
|
+
label: changeCase.capitalCase(faker.word()),
|
|
28
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
29
29
|
select: prismicT.CustomTypeModelLinkSelectType.Document,
|
|
30
30
|
customtypes: config.customTypeIDs,
|
|
31
31
|
tags: config.tags,
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import * as prismicT from "@prismicio/types";
|
|
2
|
+
|
|
3
|
+
import { createFaker, Faker } from "../lib/createFaker";
|
|
4
|
+
|
|
5
|
+
import { GroupFieldModelMap, Seed, WithoutFakerConfig } from "../types";
|
|
6
|
+
|
|
7
|
+
import { boolean, MockBooleanModelConfig } from "./boolean";
|
|
8
|
+
import {
|
|
9
|
+
buildMockGroupFieldMap,
|
|
10
|
+
BuildMockGroupFieldMapConfig,
|
|
11
|
+
} from "./buildMockGroupFieldMap";
|
|
12
|
+
import { color, MockColorModelConfig } from "./color";
|
|
13
|
+
import {
|
|
14
|
+
contentRelationship,
|
|
15
|
+
MockContentRelationshipModelConfig,
|
|
16
|
+
} from "./contentRelationship";
|
|
17
|
+
import { customType, MockCustomTypeModelConfig } from "./customType";
|
|
18
|
+
import { date, MockDateModelConfig } from "./date";
|
|
19
|
+
import { embed, MockEmbedModelConfig } from "./embed";
|
|
20
|
+
import { geoPoint, MockGeoPointModelConfig } from "./geoPoint";
|
|
21
|
+
import { group, MockGroupModelConfig } from "./group";
|
|
22
|
+
import { image, MockImageModelConfig } from "./image";
|
|
23
|
+
import {
|
|
24
|
+
integrationFields,
|
|
25
|
+
MockIntegrationFieldsModelConfig,
|
|
26
|
+
} from "./integrationFields";
|
|
27
|
+
import { keyText, MockKeyTextModelConfig } from "./keyText";
|
|
28
|
+
import { link, MockLinkModelConfig } from "./link";
|
|
29
|
+
import { linkToMedia, MockLinkToMediaModelConfig } from "./linkToMedia";
|
|
30
|
+
import { number, MockNumberModelConfig } from "./number";
|
|
31
|
+
import { richText, MockRichTextModelConfig } from "./richText";
|
|
32
|
+
import { select, MockSelectModelConfig } from "./select";
|
|
33
|
+
import { sharedSlice, MockSharedSliceModelConfig } from "./sharedSlice";
|
|
34
|
+
import { sharedSliceChoice } from "./sharedSliceChoice";
|
|
35
|
+
import {
|
|
36
|
+
sharedSliceVariation,
|
|
37
|
+
MockSharedSliceVariationModelConfig,
|
|
38
|
+
} from "./sharedSliceVariation";
|
|
39
|
+
import { slice, MockSliceModelConfig } from "./slice";
|
|
40
|
+
import { sliceZone, MockSliceZoneModelConfig } from "./sliceZone";
|
|
41
|
+
import { timestamp, MockTimestampModelConfig } from "./timestamp";
|
|
42
|
+
import { title, MockTitleModelConfig } from "./title";
|
|
43
|
+
import { uid, MockUIDModelConfig } from "./uid";
|
|
44
|
+
|
|
45
|
+
export const createModelMockFactory = (
|
|
46
|
+
...args: ConstructorParameters<typeof ModelMockFactory>
|
|
47
|
+
): ModelMockFactory => {
|
|
48
|
+
return new ModelMockFactory(...args);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
type ModelMockFactoryConfig =
|
|
52
|
+
| {
|
|
53
|
+
seed: Seed;
|
|
54
|
+
}
|
|
55
|
+
| {
|
|
56
|
+
faker: Faker;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export class ModelMockFactory {
|
|
60
|
+
private faker: Faker;
|
|
61
|
+
|
|
62
|
+
constructor(config: ModelMockFactoryConfig) {
|
|
63
|
+
this.faker = "faker" in config ? config.faker : createFaker(config.seed);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
get seed() {
|
|
67
|
+
return this.faker.seed;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
buildMockGroupFieldMap(
|
|
71
|
+
config?: WithoutFakerConfig<BuildMockGroupFieldMapConfig>,
|
|
72
|
+
) {
|
|
73
|
+
return buildMockGroupFieldMap({ ...config, faker: this.faker });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
boolean(config?: WithoutFakerConfig<MockBooleanModelConfig>) {
|
|
77
|
+
return boolean({ ...config, faker: this.faker });
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
color(config?: WithoutFakerConfig<MockColorModelConfig>) {
|
|
81
|
+
return color({ ...config, faker: this.faker });
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
contentRelationship<CustomTypeIDs extends string, Tags extends string>(
|
|
85
|
+
config?: WithoutFakerConfig<
|
|
86
|
+
MockContentRelationshipModelConfig<CustomTypeIDs, Tags>
|
|
87
|
+
>,
|
|
88
|
+
) {
|
|
89
|
+
return contentRelationship({ ...config, faker: this.faker });
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
customType<
|
|
93
|
+
Definition extends
|
|
94
|
+
| prismicT.CustomTypeModelTab
|
|
95
|
+
| prismicT.CustomTypeModelDefinition,
|
|
96
|
+
>(config?: WithoutFakerConfig<MockCustomTypeModelConfig<Definition>>) {
|
|
97
|
+
return customType({ ...config, faker: this.faker });
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
date(config?: WithoutFakerConfig<MockDateModelConfig>) {
|
|
101
|
+
return date({ ...config, faker: this.faker });
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
embed(config?: WithoutFakerConfig<MockEmbedModelConfig>) {
|
|
105
|
+
return embed({ ...config, faker: this.faker });
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
geoPoint(config?: WithoutFakerConfig<MockGeoPointModelConfig>) {
|
|
109
|
+
return geoPoint({ ...config, faker: this.faker });
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
group<Fields extends GroupFieldModelMap>(
|
|
113
|
+
config?: WithoutFakerConfig<MockGroupModelConfig<Fields>>,
|
|
114
|
+
) {
|
|
115
|
+
return group({ ...config, faker: this.faker });
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
image<ThumbnailNames extends string = string>(
|
|
119
|
+
config?: WithoutFakerConfig<MockImageModelConfig<ThumbnailNames>>,
|
|
120
|
+
) {
|
|
121
|
+
return image({ ...config, faker: this.faker });
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
integrationFields(
|
|
125
|
+
config?: WithoutFakerConfig<MockIntegrationFieldsModelConfig>,
|
|
126
|
+
) {
|
|
127
|
+
return integrationFields({ ...config, faker: this.faker });
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
keyText(config?: WithoutFakerConfig<MockKeyTextModelConfig>) {
|
|
131
|
+
return keyText({ ...config, faker: this.faker });
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
link<AllowTargetBlank extends boolean = boolean>(
|
|
135
|
+
config?: WithoutFakerConfig<MockLinkModelConfig<AllowTargetBlank>>,
|
|
136
|
+
) {
|
|
137
|
+
return link({ ...config, faker: this.faker });
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
linkToMedia(config?: WithoutFakerConfig<MockLinkToMediaModelConfig>) {
|
|
141
|
+
return linkToMedia({ ...config, faker: this.faker });
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
number(config?: WithoutFakerConfig<MockNumberModelConfig>) {
|
|
145
|
+
return number({ ...config, faker: this.faker });
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
richText<WithMultipleBlocks extends boolean = boolean>(
|
|
149
|
+
config?: WithoutFakerConfig<MockRichTextModelConfig<WithMultipleBlocks>>,
|
|
150
|
+
) {
|
|
151
|
+
return richText({ ...config, faker: this.faker });
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
select<Option extends string, DefaultOption extends Option>(
|
|
155
|
+
config?: WithoutFakerConfig<MockSelectModelConfig<Option, DefaultOption>>,
|
|
156
|
+
) {
|
|
157
|
+
return select({ ...config, faker: this.faker });
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
sharedSlice<Variation extends prismicT.SharedSliceModelVariation>(
|
|
161
|
+
config?: WithoutFakerConfig<MockSharedSliceModelConfig<Variation>>,
|
|
162
|
+
) {
|
|
163
|
+
return sharedSlice({ ...config, faker: this.faker });
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
sharedSliceChoice() {
|
|
167
|
+
return sharedSliceChoice();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
sharedSliceVariation<
|
|
171
|
+
ID extends string,
|
|
172
|
+
PrimaryFields extends GroupFieldModelMap,
|
|
173
|
+
ItemsFields extends GroupFieldModelMap,
|
|
174
|
+
>(
|
|
175
|
+
config?: WithoutFakerConfig<
|
|
176
|
+
MockSharedSliceVariationModelConfig<ID, PrimaryFields, ItemsFields>
|
|
177
|
+
>,
|
|
178
|
+
) {
|
|
179
|
+
return sharedSliceVariation({ ...config, faker: this.faker });
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
slice<
|
|
183
|
+
NonRepeatFields extends GroupFieldModelMap,
|
|
184
|
+
RepeatFields extends GroupFieldModelMap,
|
|
185
|
+
>(
|
|
186
|
+
config?: WithoutFakerConfig<
|
|
187
|
+
MockSliceModelConfig<NonRepeatFields, RepeatFields>
|
|
188
|
+
>,
|
|
189
|
+
) {
|
|
190
|
+
return slice({ ...config, faker: this.faker });
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
sliceZone<
|
|
194
|
+
Slices extends Record<
|
|
195
|
+
string,
|
|
196
|
+
prismicT.CustomTypeModelSlice | prismicT.CustomTypeModelSharedSlice
|
|
197
|
+
>,
|
|
198
|
+
>(config?: WithoutFakerConfig<MockSliceZoneModelConfig<Slices>>) {
|
|
199
|
+
return sliceZone({ ...config, faker: this.faker });
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
timestamp(config?: WithoutFakerConfig<MockTimestampModelConfig>) {
|
|
203
|
+
return timestamp({ ...config, faker: this.faker });
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
title(config?: WithoutFakerConfig<MockTitleModelConfig>) {
|
|
207
|
+
return title({ ...config, faker: this.faker });
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
uid(config?: WithoutFakerConfig<MockUIDModelConfig>) {
|
|
211
|
+
return uid({ ...config, faker: this.faker });
|
|
212
|
+
}
|
|
213
|
+
}
|
package/src/model/customType.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { createFaker } from "../lib/createFaker";
|
|
|
5
5
|
|
|
6
6
|
import { MockModelConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
type MockCustomTypeModelConfig<
|
|
8
|
+
export type MockCustomTypeModelConfig<
|
|
9
9
|
Definition extends
|
|
10
10
|
| prismicT.CustomTypeModelTab
|
|
11
11
|
| prismicT.CustomTypeModelDefinition =
|
|
@@ -43,12 +43,12 @@ export const customType = <
|
|
|
43
43
|
| prismicT.CustomTypeModelTab
|
|
44
44
|
| prismicT.CustomTypeModelDefinition,
|
|
45
45
|
>(
|
|
46
|
-
config: MockCustomTypeModelConfig<Definition
|
|
46
|
+
config: MockCustomTypeModelConfig<Definition>,
|
|
47
47
|
): MockCustomTypeModel<Definition> => {
|
|
48
|
-
const faker = createFaker(config.seed);
|
|
48
|
+
const faker = config.faker || createFaker(config.seed);
|
|
49
49
|
|
|
50
50
|
let label: string =
|
|
51
|
-
config.label || changeCase.capitalCase(faker.
|
|
51
|
+
config.label || changeCase.capitalCase(faker.words(faker.range(1, 2)));
|
|
52
52
|
let id: string = config.id || changeCase.snakeCase(label);
|
|
53
53
|
|
|
54
54
|
if (config.id && !config.label) {
|
|
@@ -68,8 +68,8 @@ export const customType = <
|
|
|
68
68
|
return {
|
|
69
69
|
id,
|
|
70
70
|
label,
|
|
71
|
-
status: config.status ?? faker.
|
|
72
|
-
repeatable: config.repeatable ?? faker.
|
|
71
|
+
status: config.status ?? faker.boolean(),
|
|
72
|
+
repeatable: config.repeatable ?? faker.boolean(),
|
|
73
73
|
json,
|
|
74
74
|
} as MockCustomTypeModel<Definition>;
|
|
75
75
|
};
|
package/src/model/date.ts
CHANGED
|
@@ -8,15 +8,15 @@ import { MockModelConfig } from "../types";
|
|
|
8
8
|
export type MockDateModelConfig = MockModelConfig;
|
|
9
9
|
|
|
10
10
|
export const date = (
|
|
11
|
-
config: MockDateModelConfig
|
|
11
|
+
config: MockDateModelConfig,
|
|
12
12
|
): prismicT.CustomTypeModelDateField => {
|
|
13
|
-
const faker = createFaker(config.seed);
|
|
13
|
+
const faker = config.faker || createFaker(config.seed);
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.Date,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
19
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
18
|
+
label: changeCase.capitalCase(faker.word()),
|
|
19
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
22
|
};
|
package/src/model/embed.ts
CHANGED
|
@@ -8,15 +8,15 @@ import { MockModelConfig } from "../types";
|
|
|
8
8
|
export type MockEmbedModelConfig = MockModelConfig;
|
|
9
9
|
|
|
10
10
|
export const embed = (
|
|
11
|
-
config: MockEmbedModelConfig
|
|
11
|
+
config: MockEmbedModelConfig,
|
|
12
12
|
): prismicT.CustomTypeModelEmbedField => {
|
|
13
|
-
const faker = createFaker(config.seed);
|
|
13
|
+
const faker = config.faker || createFaker(config.seed);
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.Embed,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
19
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
18
|
+
label: changeCase.capitalCase(faker.word()),
|
|
19
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
22
|
};
|
package/src/model/geoPoint.ts
CHANGED
|
@@ -8,14 +8,14 @@ import { MockModelConfig } from "../types";
|
|
|
8
8
|
export type MockGeoPointModelConfig = MockModelConfig;
|
|
9
9
|
|
|
10
10
|
export const geoPoint = (
|
|
11
|
-
config: MockGeoPointModelConfig
|
|
11
|
+
config: MockGeoPointModelConfig,
|
|
12
12
|
): prismicT.CustomTypeModelGeoPointField => {
|
|
13
|
-
const faker = createFaker(config.seed);
|
|
13
|
+
const faker = config.faker || createFaker(config.seed);
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.GeoPoint,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
18
|
+
label: changeCase.capitalCase(faker.word()),
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
21
|
};
|
package/src/model/group.ts
CHANGED
|
@@ -5,20 +5,20 @@ import { createFaker } from "../lib/createFaker";
|
|
|
5
5
|
|
|
6
6
|
import { GroupFieldModelMap, MockModelConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
type MockGroupModelConfig<Fields extends GroupFieldModelMap> = {
|
|
8
|
+
export type MockGroupModelConfig<Fields extends GroupFieldModelMap> = {
|
|
9
9
|
fields?: Fields;
|
|
10
10
|
} & MockModelConfig;
|
|
11
11
|
|
|
12
|
-
export
|
|
13
|
-
config: MockGroupModelConfig<Fields
|
|
14
|
-
): prismicT.CustomTypeModelGroupField<Fields>
|
|
15
|
-
const faker = createFaker(config.seed);
|
|
12
|
+
export function group<Fields extends GroupFieldModelMap>(
|
|
13
|
+
config: MockGroupModelConfig<Fields>,
|
|
14
|
+
): prismicT.CustomTypeModelGroupField<Fields> {
|
|
15
|
+
const faker = config.faker || createFaker(config.seed);
|
|
16
16
|
|
|
17
17
|
return {
|
|
18
18
|
type: prismicT.CustomTypeModelFieldType.Group,
|
|
19
19
|
config: {
|
|
20
|
-
label: changeCase.capitalCase(faker.
|
|
20
|
+
label: changeCase.capitalCase(faker.word()),
|
|
21
21
|
fields: config.fields || ({} as Fields),
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
|
-
}
|
|
24
|
+
}
|
package/src/model/image.ts
CHANGED
|
@@ -5,35 +5,31 @@ import { createFaker } from "../lib/createFaker";
|
|
|
5
5
|
|
|
6
6
|
import { MockModelConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
type MockImageModelConfig<ThumbnailNames extends string = string> = {
|
|
8
|
+
export type MockImageModelConfig<ThumbnailNames extends string = string> = {
|
|
9
9
|
withConstraint?: boolean;
|
|
10
10
|
thumbnailNames?: readonly ThumbnailNames[];
|
|
11
11
|
} & MockModelConfig;
|
|
12
12
|
|
|
13
13
|
export const image = <ThumbnailNames extends string = string>(
|
|
14
|
-
config: MockImageModelConfig<ThumbnailNames
|
|
14
|
+
config: MockImageModelConfig<ThumbnailNames>,
|
|
15
15
|
): prismicT.CustomTypeModelImageField<ThumbnailNames> => {
|
|
16
|
-
const faker = createFaker(config.seed);
|
|
16
|
+
const faker = config.faker || createFaker(config.seed);
|
|
17
17
|
|
|
18
18
|
const thumbnails = (config.thumbnailNames || []).map((name) => {
|
|
19
19
|
return {
|
|
20
20
|
name,
|
|
21
|
-
width: faker.
|
|
22
|
-
height: faker.
|
|
21
|
+
width: faker.range(500, 2000),
|
|
22
|
+
height: faker.range(500, 2000),
|
|
23
23
|
};
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
return {
|
|
27
27
|
type: prismicT.CustomTypeModelFieldType.Image,
|
|
28
28
|
config: {
|
|
29
|
-
label: changeCase.capitalCase(faker.
|
|
29
|
+
label: changeCase.capitalCase(faker.word()),
|
|
30
30
|
constraint: {
|
|
31
|
-
width: config.withConstraint
|
|
32
|
-
|
|
33
|
-
: null,
|
|
34
|
-
height: config.withConstraint
|
|
35
|
-
? faker.datatype.number({ min: 500, max: 2000 })
|
|
36
|
-
: null,
|
|
31
|
+
width: config.withConstraint ? faker.range(500, 2000) : null,
|
|
32
|
+
height: config.withConstraint ? faker.range(500, 2000) : null,
|
|
37
33
|
},
|
|
38
34
|
thumbnails,
|
|
39
35
|
},
|
package/src/model/index.ts
CHANGED
|
@@ -10,15 +10,15 @@ export type MockIntegrationFieldsModelConfig = {
|
|
|
10
10
|
} & MockModelConfig;
|
|
11
11
|
|
|
12
12
|
export const integrationFields = (
|
|
13
|
-
config: MockIntegrationFieldsModelConfig
|
|
13
|
+
config: MockIntegrationFieldsModelConfig,
|
|
14
14
|
): prismicT.CustomTypeModelIntegrationFieldsField => {
|
|
15
|
-
const faker = createFaker(config.seed);
|
|
15
|
+
const faker = config.faker || createFaker(config.seed);
|
|
16
16
|
|
|
17
17
|
return {
|
|
18
18
|
type: prismicT.CustomTypeModelFieldType.IntegrationFields,
|
|
19
19
|
config: {
|
|
20
|
-
label: changeCase.capitalCase(faker.
|
|
21
|
-
catalog: config.catalog || changeCase.snakeCase(faker.
|
|
20
|
+
label: changeCase.capitalCase(faker.word()),
|
|
21
|
+
catalog: config.catalog || changeCase.snakeCase(faker.words(2)),
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
24
|
};
|
package/src/model/keyText.ts
CHANGED
|
@@ -8,15 +8,15 @@ import { MockModelConfig } from "../types";
|
|
|
8
8
|
export type MockKeyTextModelConfig = MockModelConfig;
|
|
9
9
|
|
|
10
10
|
export const keyText = (
|
|
11
|
-
config: MockKeyTextModelConfig
|
|
11
|
+
config: MockKeyTextModelConfig,
|
|
12
12
|
): prismicT.CustomTypeModelKeyTextField => {
|
|
13
|
-
const faker = createFaker(config.seed);
|
|
13
|
+
const faker = config.faker || createFaker(config.seed);
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.Text,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
19
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
18
|
+
label: changeCase.capitalCase(faker.word()),
|
|
19
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
22
|
};
|
package/src/model/link.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { createFaker } from "../lib/createFaker";
|
|
|
5
5
|
|
|
6
6
|
import { MockModelConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
type MockLinkModel<AllowTargetBlank extends boolean = boolean> =
|
|
8
|
+
export type MockLinkModel<AllowTargetBlank extends boolean = boolean> =
|
|
9
9
|
prismicT.CustomTypeModelLinkField & {
|
|
10
10
|
config: AllowTargetBlank extends true
|
|
11
11
|
? {
|
|
@@ -21,20 +21,20 @@ export type MockLinkModelConfig<AllowTargetBlank extends boolean = boolean> = {
|
|
|
21
21
|
} & MockModelConfig;
|
|
22
22
|
|
|
23
23
|
export const link = <AllowTargetBlank extends boolean = boolean>(
|
|
24
|
-
config: MockLinkModelConfig<AllowTargetBlank
|
|
24
|
+
config: MockLinkModelConfig<AllowTargetBlank>,
|
|
25
25
|
): MockLinkModel<AllowTargetBlank> => {
|
|
26
|
-
const faker = createFaker(config.seed);
|
|
26
|
+
const faker = config.faker || createFaker(config.seed);
|
|
27
27
|
|
|
28
28
|
return {
|
|
29
29
|
type: prismicT.CustomTypeModelFieldType.Link,
|
|
30
30
|
config: {
|
|
31
|
-
label: changeCase.capitalCase(faker.
|
|
32
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
31
|
+
label: changeCase.capitalCase(faker.word()),
|
|
32
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
33
33
|
select: null,
|
|
34
34
|
allowTargetBlank:
|
|
35
35
|
("allowTargetBlank" in config
|
|
36
36
|
? config.allowTargetBlank
|
|
37
|
-
: faker.
|
|
37
|
+
: faker.boolean()) || undefined,
|
|
38
38
|
},
|
|
39
39
|
} as MockLinkModel<AllowTargetBlank>;
|
|
40
40
|
};
|
package/src/model/linkToMedia.ts
CHANGED
|
@@ -5,18 +5,18 @@ import { createFaker } from "../lib/createFaker";
|
|
|
5
5
|
|
|
6
6
|
import { MockModelConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
export type
|
|
8
|
+
export type MockLinkToMediaModelConfig = MockModelConfig;
|
|
9
9
|
|
|
10
10
|
export const linkToMedia = (
|
|
11
|
-
config:
|
|
11
|
+
config: MockLinkToMediaModelConfig,
|
|
12
12
|
): prismicT.CustomTypeModelLinkToMediaField => {
|
|
13
|
-
const faker = createFaker(config.seed);
|
|
13
|
+
const faker = config.faker || createFaker(config.seed);
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.Link,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
19
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
18
|
+
label: changeCase.capitalCase(faker.word()),
|
|
19
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
20
20
|
select: prismicT.CustomTypeModelLinkSelectType.Media,
|
|
21
21
|
},
|
|
22
22
|
};
|
package/src/model/number.ts
CHANGED
|
@@ -8,15 +8,15 @@ import { MockModelConfig } from "../types";
|
|
|
8
8
|
export type MockNumberModelConfig = MockModelConfig;
|
|
9
9
|
|
|
10
10
|
export const number = (
|
|
11
|
-
config: MockNumberModelConfig
|
|
11
|
+
config: MockNumberModelConfig,
|
|
12
12
|
): prismicT.CustomTypeModelNumberField => {
|
|
13
|
-
const faker = createFaker(config.seed);
|
|
13
|
+
const faker = config.faker || createFaker(config.seed);
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.Number,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
19
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
18
|
+
label: changeCase.capitalCase(faker.word()),
|
|
19
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
22
|
};
|
package/src/model/richText.ts
CHANGED
|
@@ -12,14 +12,14 @@ export type MockRichTextModelConfig<
|
|
|
12
12
|
} & MockModelConfig;
|
|
13
13
|
|
|
14
14
|
export const richText = <WithMultipleBlocks extends boolean = boolean>(
|
|
15
|
-
config: MockRichTextModelConfig<WithMultipleBlocks
|
|
15
|
+
config: MockRichTextModelConfig<WithMultipleBlocks>,
|
|
16
16
|
): WithMultipleBlocks extends true
|
|
17
17
|
? prismicT.CustomTypeModelRichTextMultiField
|
|
18
18
|
: prismicT.CustomTypeModelRichTextSingleField => {
|
|
19
|
-
const faker = createFaker(config.seed);
|
|
19
|
+
const faker = config.faker || createFaker(config.seed);
|
|
20
20
|
|
|
21
|
-
const blockTypes = faker
|
|
22
|
-
.
|
|
21
|
+
const blockTypes = faker
|
|
22
|
+
.randomElements([
|
|
23
23
|
prismicT.RichTextNodeType.heading1,
|
|
24
24
|
prismicT.RichTextNodeType.heading2,
|
|
25
25
|
prismicT.RichTextNodeType.heading3,
|
|
@@ -39,16 +39,16 @@ export const richText = <WithMultipleBlocks extends boolean = boolean>(
|
|
|
39
39
|
.join(",");
|
|
40
40
|
|
|
41
41
|
const blockTypeConfig =
|
|
42
|
-
config.withMultipleBlocks ?? faker.
|
|
42
|
+
config.withMultipleBlocks ?? faker.boolean()
|
|
43
43
|
? { multi: blockTypes }
|
|
44
44
|
: { single: blockTypes };
|
|
45
45
|
|
|
46
46
|
return {
|
|
47
47
|
type: prismicT.CustomTypeModelFieldType.StructuredText,
|
|
48
48
|
config: {
|
|
49
|
-
label: changeCase.capitalCase(faker.
|
|
50
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
51
|
-
allowTargetBlank: faker.
|
|
49
|
+
label: changeCase.capitalCase(faker.word()),
|
|
50
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
51
|
+
allowTargetBlank: faker.boolean() ? true : undefined,
|
|
52
52
|
...blockTypeConfig,
|
|
53
53
|
},
|
|
54
54
|
} as WithMultipleBlocks extends true
|
package/src/model/select.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { createFaker } from "../lib/createFaker";
|
|
|
5
5
|
|
|
6
6
|
import { MockModelConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
type MockSelectModelConfig<
|
|
8
|
+
export type MockSelectModelConfig<
|
|
9
9
|
Option extends string = string,
|
|
10
10
|
DefaultOption extends Option = Option,
|
|
11
11
|
> = {
|
|
@@ -14,15 +14,15 @@ type MockSelectModelConfig<
|
|
|
14
14
|
} & MockModelConfig;
|
|
15
15
|
|
|
16
16
|
export const select = <Option extends string, DefaultOption extends Option>(
|
|
17
|
-
config: MockSelectModelConfig<Option, DefaultOption
|
|
17
|
+
config: MockSelectModelConfig<Option, DefaultOption>,
|
|
18
18
|
): prismicT.CustomTypeModelSelectField<Option, DefaultOption> => {
|
|
19
|
-
const faker = createFaker(config.seed);
|
|
19
|
+
const faker = config.faker || createFaker(config.seed);
|
|
20
20
|
|
|
21
21
|
return {
|
|
22
22
|
type: prismicT.CustomTypeModelFieldType.Select,
|
|
23
23
|
config: {
|
|
24
|
-
label: changeCase.capitalCase(faker.
|
|
25
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
24
|
+
label: changeCase.capitalCase(faker.word()),
|
|
25
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
26
26
|
options: config.options || [],
|
|
27
27
|
default_value: config.defaultValue || undefined,
|
|
28
28
|
},
|