@prismicio/mock 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.cjs +208 -100
- package/dist/api/index.cjs.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.js +208 -100
- package/dist/api/index.js.map +1 -1
- package/dist/index.cjs +311 -213
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +9 -5
- package/dist/index.js +310 -211
- package/dist/index.js.map +1 -1
- package/dist/model/index.cjs +168 -74
- package/dist/model/index.cjs.map +1 -1
- package/dist/model/index.d.ts +1 -1
- package/dist/model/index.js +168 -74
- package/dist/model/index.js.map +1 -1
- package/dist/value/index.cjs +280 -182
- package/dist/value/index.cjs.map +1 -1
- package/dist/value/index.d.ts +8 -4
- package/dist/value/index.js +280 -182
- package/dist/value/index.js.map +1 -1
- package/package.json +19 -16
- package/src/api/query.ts +2 -2
- package/src/api/ref.ts +3 -3
- package/src/api/repository.ts +5 -5
- package/src/lib/buildEmbedField.ts +16 -27
- package/src/lib/buildImageFieldImage.ts +3 -2
- package/src/lib/createFaker.ts +98 -20
- package/src/lib/generateCustomTypeId.ts +1 -1
- package/src/lib/generateFieldId.ts +1 -3
- package/src/lib/generateTags.ts +4 -12
- package/src/lib/getMockEmbedData.ts +33 -12
- package/src/lib/getMockImageData.ts +1 -1
- package/src/lib/lorem.ts +112 -0
- package/src/model/boolean.ts +1 -1
- package/src/model/buildMockGroupFieldMap.ts +1 -1
- package/src/model/color.ts +2 -2
- package/src/model/contentRelationship.ts +2 -2
- package/src/model/customType.ts +3 -3
- package/src/model/date.ts +2 -2
- package/src/model/embed.ts +2 -2
- package/src/model/geoPoint.ts +1 -1
- package/src/model/group.ts +1 -1
- package/src/model/image.ts +5 -9
- package/src/model/integrationFields.ts +2 -2
- package/src/model/keyText.ts +2 -2
- package/src/model/link.ts +3 -3
- package/src/model/linkToMedia.ts +2 -2
- package/src/model/number.ts +2 -2
- package/src/model/richText.ts +6 -6
- package/src/model/select.ts +2 -2
- package/src/model/sharedSlice.ts +2 -2
- package/src/model/sharedSliceVariation.ts +4 -4
- package/src/model/slice.ts +4 -4
- package/src/model/timestamp.ts +2 -2
- package/src/model/title.ts +5 -5
- package/src/model/uid.ts +2 -2
- package/src/types.ts +7 -10
- package/src/value/boolean.ts +1 -1
- package/src/value/color.ts +1 -1
- package/src/value/contentRelationship.ts +3 -3
- package/src/value/customType.ts +5 -5
- package/src/value/embed.ts +20 -7
- package/src/value/geoPoint.ts +2 -4
- package/src/value/group.ts +1 -6
- package/src/value/integrationFields.ts +4 -4
- package/src/value/keyText.ts +1 -3
- package/src/value/link.ts +3 -3
- package/src/value/linkToMedia.ts +7 -6
- package/src/value/number.ts +1 -1
- package/src/value/richText/embed.ts +2 -2
- package/src/value/richText/heading.ts +3 -10
- package/src/value/richText/image.ts +3 -5
- package/src/value/richText/index.ts +3 -8
- package/src/value/richText/list.ts +4 -8
- package/src/value/richText/oList.ts +4 -8
- package/src/value/richText/paragraph.ts +8 -4
- package/src/value/richText/preformatted.ts +9 -5
- package/src/value/select.ts +2 -2
- package/src/value/sharedSlice.ts +1 -1
- package/src/value/sharedSliceVariation.ts +2 -6
- package/src/value/slice.ts +2 -6
- package/src/value/sliceZone.ts +4 -10
- package/src/value/timestamp.ts +28 -15
- package/src/value/uid.ts +1 -1
package/src/model/customType.ts
CHANGED
|
@@ -48,7 +48,7 @@ export const customType = <
|
|
|
48
48
|
const faker = createFaker(config.seed);
|
|
49
49
|
|
|
50
50
|
let label: string =
|
|
51
|
-
config.label || changeCase.capitalCase(faker.
|
|
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
|
@@ -15,8 +15,8 @@ export const date = (
|
|
|
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
|
@@ -15,8 +15,8 @@ export const embed = (
|
|
|
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
package/src/model/group.ts
CHANGED
|
@@ -17,7 +17,7 @@ export const group = <Fields extends GroupFieldModelMap>(
|
|
|
17
17
|
return {
|
|
18
18
|
type: prismicT.CustomTypeModelFieldType.Group,
|
|
19
19
|
config: {
|
|
20
|
-
label: changeCase.capitalCase(faker.
|
|
20
|
+
label: changeCase.capitalCase(faker.word()),
|
|
21
21
|
fields: config.fields || ({} as Fields),
|
|
22
22
|
},
|
|
23
23
|
};
|
package/src/model/image.ts
CHANGED
|
@@ -18,22 +18,18 @@ export const image = <ThumbnailNames extends string = string>(
|
|
|
18
18
|
const thumbnails = (config.thumbnailNames || []).map((name) => {
|
|
19
19
|
return {
|
|
20
20
|
name,
|
|
21
|
-
width: faker.
|
|
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
|
},
|
|
@@ -17,8 +17,8 @@ export const integrationFields = (
|
|
|
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
|
@@ -15,8 +15,8 @@ export const keyText = (
|
|
|
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
|
@@ -28,13 +28,13 @@ export const link = <AllowTargetBlank extends boolean = boolean>(
|
|
|
28
28
|
return {
|
|
29
29
|
type: prismicT.CustomTypeModelFieldType.Link,
|
|
30
30
|
config: {
|
|
31
|
-
label: changeCase.capitalCase(faker.
|
|
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
|
@@ -15,8 +15,8 @@ export const linkToMedia = (
|
|
|
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
|
@@ -15,8 +15,8 @@ export const number = (
|
|
|
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
|
@@ -18,8 +18,8 @@ export const richText = <WithMultipleBlocks extends boolean = boolean>(
|
|
|
18
18
|
: prismicT.CustomTypeModelRichTextSingleField => {
|
|
19
19
|
const faker = createFaker(config.seed);
|
|
20
20
|
|
|
21
|
-
const blockTypes = faker
|
|
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
|
@@ -21,8 +21,8 @@ export const select = <Option extends string, DefaultOption extends Option>(
|
|
|
21
21
|
return {
|
|
22
22
|
type: prismicT.CustomTypeModelFieldType.Select,
|
|
23
23
|
config: {
|
|
24
|
-
label: changeCase.capitalCase(faker.
|
|
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
|
},
|
package/src/model/sharedSlice.ts
CHANGED
|
@@ -21,7 +21,7 @@ export const sharedSlice = <
|
|
|
21
21
|
const faker = createFaker(config.seed);
|
|
22
22
|
|
|
23
23
|
let name: string =
|
|
24
|
-
config.name || changeCase.capitalCase(faker.
|
|
24
|
+
config.name || changeCase.capitalCase(faker.words(faker.range(1, 2)));
|
|
25
25
|
let id: string = config.id || changeCase.snakeCase(name);
|
|
26
26
|
|
|
27
27
|
if (config.id && !config.name) {
|
|
@@ -34,7 +34,7 @@ export const sharedSlice = <
|
|
|
34
34
|
type: prismicT.CustomTypeModelSliceType.SharedSlice,
|
|
35
35
|
id,
|
|
36
36
|
name,
|
|
37
|
-
description: faker.
|
|
37
|
+
description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
|
|
38
38
|
variations: config.variations || ([] as Variation[]),
|
|
39
39
|
};
|
|
40
40
|
};
|
|
@@ -30,7 +30,7 @@ export const sharedSliceVariation = <
|
|
|
30
30
|
const faker = createFaker(config.seed);
|
|
31
31
|
|
|
32
32
|
let name: string =
|
|
33
|
-
config.name || changeCase.capitalCase(faker.
|
|
33
|
+
config.name || changeCase.capitalCase(faker.words(faker.range(1, 2)));
|
|
34
34
|
let id: ID = config.id || (changeCase.snakeCase(name) as ID);
|
|
35
35
|
|
|
36
36
|
if (config.id && !config.name) {
|
|
@@ -42,9 +42,9 @@ export const sharedSliceVariation = <
|
|
|
42
42
|
return {
|
|
43
43
|
id,
|
|
44
44
|
name,
|
|
45
|
-
description: faker.
|
|
46
|
-
docURL: faker.
|
|
47
|
-
version: faker.
|
|
45
|
+
description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
|
|
46
|
+
docURL: faker.url(),
|
|
47
|
+
version: faker.hash(7),
|
|
48
48
|
primary: config.primaryFields || ({} as PrimaryFields),
|
|
49
49
|
items: config.itemsFields || ({} as ItemsFields),
|
|
50
50
|
};
|
package/src/model/slice.ts
CHANGED
|
@@ -23,12 +23,12 @@ export const slice = <
|
|
|
23
23
|
|
|
24
24
|
return {
|
|
25
25
|
type: prismicT.CustomTypeModelSliceType.Slice,
|
|
26
|
-
icon: changeCase.snakeCase(faker.
|
|
27
|
-
display: faker.
|
|
26
|
+
icon: changeCase.snakeCase(faker.word()),
|
|
27
|
+
display: faker.boolean()
|
|
28
28
|
? prismicT.CustomTypeModelSliceDisplay.Grid
|
|
29
29
|
: prismicT.CustomTypeModelSliceDisplay.List,
|
|
30
|
-
fieldset: changeCase.capitalCase(faker.
|
|
31
|
-
description: faker.
|
|
30
|
+
fieldset: changeCase.capitalCase(faker.words(2)),
|
|
31
|
+
description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
|
|
32
32
|
repeat: config.repeatFields || ({} as RepeatFields),
|
|
33
33
|
"non-repeat": config.nonRepeatFields || ({} as NonRepeatFields),
|
|
34
34
|
};
|
package/src/model/timestamp.ts
CHANGED
|
@@ -15,8 +15,8 @@ export const timestamp = (
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.Timestamp,
|
|
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/title.ts
CHANGED
|
@@ -12,8 +12,8 @@ export const title = (
|
|
|
12
12
|
): prismicT.CustomTypeModelTitleField => {
|
|
13
13
|
const faker = createFaker(config.seed);
|
|
14
14
|
|
|
15
|
-
const single = faker
|
|
16
|
-
.
|
|
15
|
+
const single = faker
|
|
16
|
+
.randomElements([
|
|
17
17
|
"heading1",
|
|
18
18
|
"heading2",
|
|
19
19
|
"heading3",
|
|
@@ -26,10 +26,10 @@ export const title = (
|
|
|
26
26
|
return {
|
|
27
27
|
type: prismicT.CustomTypeModelFieldType.StructuredText,
|
|
28
28
|
config: {
|
|
29
|
-
label: changeCase.capitalCase(faker.
|
|
30
|
-
placeholder: changeCase.sentenceCase(faker.
|
|
29
|
+
label: changeCase.capitalCase(faker.word()),
|
|
30
|
+
placeholder: changeCase.sentenceCase(faker.words(3)),
|
|
31
31
|
single,
|
|
32
|
-
allowTargetBlank: faker.
|
|
32
|
+
allowTargetBlank: faker.boolean() || undefined,
|
|
33
33
|
},
|
|
34
34
|
};
|
|
35
35
|
};
|
package/src/model/uid.ts
CHANGED
|
@@ -15,8 +15,8 @@ export const uid = (
|
|
|
15
15
|
return {
|
|
16
16
|
type: prismicT.CustomTypeModelFieldType.UID,
|
|
17
17
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
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/types.ts
CHANGED
|
@@ -27,7 +27,7 @@ export type SetRequired<BaseType, Keys extends keyof BaseType> = Simplify<
|
|
|
27
27
|
Required<Pick<BaseType, Keys>>
|
|
28
28
|
>;
|
|
29
29
|
|
|
30
|
-
export type Seed = string | number
|
|
30
|
+
export type Seed = string | number;
|
|
31
31
|
|
|
32
32
|
export interface MockImageData {
|
|
33
33
|
url: string;
|
|
@@ -35,14 +35,11 @@ export interface MockImageData {
|
|
|
35
35
|
height: number;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
export
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
thumbnail_height: number | null;
|
|
44
|
-
thumbnail_width: number | null;
|
|
45
|
-
}
|
|
38
|
+
export type MockEmbedData = prismicT.AnyOEmbed &
|
|
39
|
+
prismicT.OEmbedExtra & {
|
|
40
|
+
embed_url: string;
|
|
41
|
+
html: string;
|
|
42
|
+
};
|
|
46
43
|
|
|
47
44
|
export type MockRestApiConfig = {
|
|
48
45
|
seed?: Seed;
|
|
@@ -88,7 +85,7 @@ export type MockValueConfigForModel<
|
|
|
88
85
|
: Model extends prismicT.CustomTypeModelDateField
|
|
89
86
|
? value.MockDateValueConfig<Model, State>
|
|
90
87
|
: Model extends prismicT.CustomTypeModelEmbedField
|
|
91
|
-
? value.MockEmbedValueConfig<Model, State>
|
|
88
|
+
? value.MockEmbedValueConfig<Model, prismicT.AnyOEmbed, State>
|
|
92
89
|
: Model extends prismicT.CustomTypeModelGeoPointField
|
|
93
90
|
? value.MockGeoPointValueConfig<Model, State>
|
|
94
91
|
: Model extends prismicT.CustomTypeModelImageField
|
package/src/value/boolean.ts
CHANGED
package/src/value/color.ts
CHANGED
|
@@ -76,10 +76,10 @@ export const contentRelationship = <
|
|
|
76
76
|
{
|
|
77
77
|
...documentGen({ seed: config.seed }),
|
|
78
78
|
type: model.config.customtypes
|
|
79
|
-
? faker.
|
|
79
|
+
? faker.randomElement(model.config.customtypes)
|
|
80
80
|
: generateCustomTypeId({ seed: config.seed }),
|
|
81
81
|
tags: model.config.tags
|
|
82
|
-
? faker.
|
|
82
|
+
? faker.randomElements(model.config.tags)
|
|
83
83
|
: generateTags({ seed: config.seed }),
|
|
84
84
|
} as prismicT.PrismicDocument<
|
|
85
85
|
never,
|
|
@@ -87,7 +87,7 @@ export const contentRelationship = <
|
|
|
87
87
|
>,
|
|
88
88
|
];
|
|
89
89
|
|
|
90
|
-
const document = faker.
|
|
90
|
+
const document = faker.randomElement(linkableDocuments);
|
|
91
91
|
|
|
92
92
|
if (!document) {
|
|
93
93
|
throw new Error("A linkable document could not be found.");
|
package/src/value/customType.ts
CHANGED
|
@@ -63,11 +63,11 @@ export const customType = <
|
|
|
63
63
|
|
|
64
64
|
return {
|
|
65
65
|
type: model.id,
|
|
66
|
-
id: faker.
|
|
67
|
-
uid: hasUID ? changeCase.snakeCase(faker.
|
|
68
|
-
url: withURL ? faker.
|
|
69
|
-
href: faker.
|
|
70
|
-
lang: faker.
|
|
66
|
+
id: faker.hash(7),
|
|
67
|
+
uid: hasUID ? changeCase.snakeCase(faker.words(faker.range(1, 3))) : null,
|
|
68
|
+
url: withURL ? faker.url() : null,
|
|
69
|
+
href: faker.url(),
|
|
70
|
+
lang: faker.word(),
|
|
71
71
|
tags: generateTags({ seed: config.seed }),
|
|
72
72
|
slugs: [] as prismicT.PrismicDocument["slugs"],
|
|
73
73
|
linked_documents: [] as prismicT.PrismicDocument["linked_documents"],
|
package/src/value/embed.ts
CHANGED
|
@@ -7,24 +7,37 @@ import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
|
7
7
|
|
|
8
8
|
export type MockEmbedValueConfig<
|
|
9
9
|
Model extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField,
|
|
10
|
+
Data extends prismicT.AnyOEmbed = prismicT.AnyOEmbed,
|
|
10
11
|
State extends prismicT.FieldState = prismicT.FieldState,
|
|
11
|
-
> =
|
|
12
|
+
> = {
|
|
13
|
+
url?: string;
|
|
14
|
+
html?: string;
|
|
15
|
+
data?: Data;
|
|
16
|
+
} & MockValueConfig<Model> &
|
|
17
|
+
MockValueStateConfig<State>;
|
|
12
18
|
|
|
13
19
|
export type MockEmbedValue<
|
|
20
|
+
Data extends prismicT.AnyOEmbed = prismicT.AnyOEmbed,
|
|
14
21
|
State extends prismicT.FieldState = prismicT.FieldState,
|
|
15
|
-
> = prismicT.EmbedField<
|
|
22
|
+
> = prismicT.EmbedField<Data, State>;
|
|
16
23
|
|
|
17
24
|
export const embed = <
|
|
18
25
|
Model extends prismicT.CustomTypeModelEmbedField = prismicT.CustomTypeModelEmbedField,
|
|
26
|
+
Data extends prismicT.AnyOEmbed = prismicT.AnyOEmbed,
|
|
19
27
|
State extends prismicT.FieldState = "filled",
|
|
20
28
|
>(
|
|
21
|
-
config: MockEmbedValueConfig<Model, State> = {},
|
|
22
|
-
): MockEmbedValue<State> => {
|
|
23
|
-
const
|
|
29
|
+
config: MockEmbedValueConfig<Model, Data, State> = {},
|
|
30
|
+
): MockEmbedValue<Data, State> => {
|
|
31
|
+
const data = config.data ?? getMockEmbedData({ seed: config.seed });
|
|
24
32
|
|
|
25
33
|
return (
|
|
26
34
|
config.state === "empty"
|
|
27
35
|
? {}
|
|
28
|
-
: buildEmbedField({
|
|
29
|
-
|
|
36
|
+
: buildEmbedField({
|
|
37
|
+
seed: config.seed,
|
|
38
|
+
url: config.url ?? ("embed_url" in data ? data.embed_url : undefined),
|
|
39
|
+
html: config.html ?? ("html" in data ? data.html : undefined),
|
|
40
|
+
data,
|
|
41
|
+
})
|
|
42
|
+
) as MockEmbedValue<Data, State>;
|
|
30
43
|
};
|
package/src/value/geoPoint.ts
CHANGED
|
@@ -21,14 +21,12 @@ export const geoPoint = <
|
|
|
21
21
|
): MockGeoPointValue<State> => {
|
|
22
22
|
const faker = createFaker(config.seed);
|
|
23
23
|
|
|
24
|
-
const coordinates = faker.address.nearbyGPSCoordinate();
|
|
25
|
-
|
|
26
24
|
return (
|
|
27
25
|
config.state === "empty"
|
|
28
26
|
? {}
|
|
29
27
|
: {
|
|
30
|
-
longitude:
|
|
31
|
-
latitude:
|
|
28
|
+
longitude: faker.rangeFloat(-180, 180),
|
|
29
|
+
latitude: faker.rangeFloat(-90, 90),
|
|
32
30
|
}
|
|
33
31
|
) as MockGeoPointValue<State>;
|
|
34
32
|
};
|
package/src/value/group.ts
CHANGED
|
@@ -36,12 +36,7 @@ export const group = <
|
|
|
36
36
|
|
|
37
37
|
const model = config.model || modelGen.group({ seed: config.seed });
|
|
38
38
|
|
|
39
|
-
const itemsCount =
|
|
40
|
-
config.itemsCount ??
|
|
41
|
-
faker.datatype.number({
|
|
42
|
-
min: 1,
|
|
43
|
-
max: 6,
|
|
44
|
-
});
|
|
39
|
+
const itemsCount = config.itemsCount ?? faker.range(1, 6);
|
|
45
40
|
|
|
46
41
|
return Array(itemsCount)
|
|
47
42
|
.fill(undefined)
|
|
@@ -35,11 +35,11 @@ export const integrationFields = <
|
|
|
35
35
|
config.state === "empty"
|
|
36
36
|
? null
|
|
37
37
|
: {
|
|
38
|
-
id: faker.
|
|
39
|
-
title: changeCase.capitalCase(faker.
|
|
40
|
-
description: faker.
|
|
38
|
+
id: faker.hash(7),
|
|
39
|
+
title: changeCase.capitalCase(faker.words(faker.range(1, 3))),
|
|
40
|
+
description: changeCase.sentenceCase(faker.words(faker.range(5, 10))),
|
|
41
41
|
image_url: imageData.url,
|
|
42
|
-
last_update: faker.date
|
|
42
|
+
last_update: faker.date().getTime(),
|
|
43
43
|
blob: config.data as Blob,
|
|
44
44
|
}
|
|
45
45
|
) as MockIntegrationFieldsValue<Blob, State>;
|
package/src/value/keyText.ts
CHANGED
|
@@ -23,8 +23,6 @@ export const keyText = <
|
|
|
23
23
|
const faker = createFaker(config.seed);
|
|
24
24
|
|
|
25
25
|
return (
|
|
26
|
-
config.state === "empty"
|
|
27
|
-
? null
|
|
28
|
-
: changeCase.sentenceCase(faker.lorem.words(3))
|
|
26
|
+
config.state === "empty" ? null : changeCase.sentenceCase(faker.words(3))
|
|
29
27
|
) as MockKeyTextValue<State>;
|
|
30
28
|
};
|
package/src/value/link.ts
CHANGED
|
@@ -51,7 +51,7 @@ export const link = <
|
|
|
51
51
|
|
|
52
52
|
const type =
|
|
53
53
|
config.type ||
|
|
54
|
-
faker.
|
|
54
|
+
faker.randomElement([
|
|
55
55
|
prismicT.LinkType.Web,
|
|
56
56
|
prismicT.LinkType.Document,
|
|
57
57
|
prismicT.LinkType.Media,
|
|
@@ -84,10 +84,10 @@ export const link = <
|
|
|
84
84
|
|
|
85
85
|
return {
|
|
86
86
|
link_type: prismicT.LinkType.Web,
|
|
87
|
-
url: faker.
|
|
87
|
+
url: faker.url(),
|
|
88
88
|
target:
|
|
89
89
|
config.withTargetBlank ??
|
|
90
|
-
(model.config.allowTargetBlank && faker.
|
|
90
|
+
(model.config.allowTargetBlank && faker.boolean())
|
|
91
91
|
? "_blank"
|
|
92
92
|
: undefined,
|
|
93
93
|
} as MockLinkValue<LinkType, State>;
|
package/src/value/linkToMedia.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as prismicT from "@prismicio/types";
|
|
2
|
+
import * as changeCase from "change-case";
|
|
2
3
|
|
|
3
4
|
import { createFaker } from "../lib/createFaker";
|
|
4
5
|
|
|
@@ -28,12 +29,12 @@ export const linkToMedia = <
|
|
|
28
29
|
} else {
|
|
29
30
|
return {
|
|
30
31
|
link_type: prismicT.LinkType.Media,
|
|
31
|
-
name: faker.
|
|
32
|
-
kind: faker.
|
|
33
|
-
url: faker.
|
|
34
|
-
size: faker.
|
|
35
|
-
height: faker.
|
|
36
|
-
width: faker.
|
|
32
|
+
name: `${changeCase.snakeCase(faker.words(faker.range(1, 2)))}.example`,
|
|
33
|
+
kind: changeCase.snakeCase(faker.word()),
|
|
34
|
+
url: faker.url(),
|
|
35
|
+
size: faker.range(500, 3000).toString(),
|
|
36
|
+
height: faker.range(500, 3000).toString(),
|
|
37
|
+
width: faker.range(500, 3000).toString(),
|
|
37
38
|
} as MockLinkToMediaValue<State>;
|
|
38
39
|
}
|
|
39
40
|
};
|
package/src/value/number.ts
CHANGED
|
@@ -10,8 +10,8 @@ type MockRichTextEmbedValueConfig = MockRichTextValueConfig;
|
|
|
10
10
|
export const embed = (
|
|
11
11
|
config: MockRichTextEmbedValueConfig = {},
|
|
12
12
|
): prismicT.RTEmbedNode | undefined => {
|
|
13
|
-
const
|
|
14
|
-
const embedField = buildEmbedField({ seed: config.seed,
|
|
13
|
+
const data = getMockEmbedData({ seed: config.seed });
|
|
14
|
+
const embedField = buildEmbedField({ seed: config.seed, data });
|
|
15
15
|
|
|
16
16
|
return {
|
|
17
17
|
type: prismicT.RichTextNodeType.embed,
|
|
@@ -63,25 +63,18 @@ export const heading = (
|
|
|
63
63
|
prismicT.RichTextNodeType.heading6,
|
|
64
64
|
].includes(type as RichTextNodeTitleType),
|
|
65
65
|
) as RichTextNodeTitleType[];
|
|
66
|
-
const type = faker.
|
|
66
|
+
const type = faker.randomElement(types);
|
|
67
67
|
|
|
68
68
|
if (type) {
|
|
69
69
|
const patternKey =
|
|
70
70
|
config.pattern ||
|
|
71
|
-
faker.
|
|
72
|
-
Object.keys(patterns) as (keyof typeof patterns)[],
|
|
73
|
-
);
|
|
71
|
+
faker.randomElement(Object.keys(patterns) as (keyof typeof patterns)[]);
|
|
74
72
|
const pattern = patterns[patternKey];
|
|
75
73
|
|
|
76
74
|
return {
|
|
77
75
|
type,
|
|
78
76
|
text: changeCase.capitalCase(
|
|
79
|
-
faker.
|
|
80
|
-
faker.datatype.number({
|
|
81
|
-
min: pattern.minWords,
|
|
82
|
-
max: pattern.maxWords,
|
|
83
|
-
}),
|
|
84
|
-
),
|
|
77
|
+
faker.words(faker.range(pattern.minWords, pattern.maxWords)),
|
|
85
78
|
),
|
|
86
79
|
spans: [],
|
|
87
80
|
};
|
|
@@ -14,16 +14,14 @@ export const image = (
|
|
|
14
14
|
const imageField = buildImageFieldImage({
|
|
15
15
|
seed: config.seed,
|
|
16
16
|
imageData,
|
|
17
|
-
state:
|
|
17
|
+
state: "filled",
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
return {
|
|
21
21
|
type: prismicT.RichTextNodeType.image,
|
|
22
22
|
alt: imageField.alt,
|
|
23
|
-
|
|
24
|
-
url: imageField.url!,
|
|
23
|
+
url: imageField.url,
|
|
25
24
|
copyright: imageField.copyright,
|
|
26
|
-
|
|
27
|
-
dimensions: imageField.dimensions!,
|
|
25
|
+
dimensions: imageField.dimensions,
|
|
28
26
|
};
|
|
29
27
|
};
|