@prismicio/mock 0.0.7 → 0.0.10
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 +365 -255
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +36 -30
- package/dist/index.js +364 -253
- 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 +4 -2
- package/dist/model/index.js +168 -74
- package/dist/model/index.js.map +1 -1
- package/dist/value/index.cjs +334 -224
- package/dist/value/index.cjs.map +1 -1
- package/dist/value/index.d.ts +29 -25
- package/dist/value/index.js +334 -224
- package/dist/value/index.js.map +1 -1
- package/package.json +19 -17
- 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 +5 -3
- 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 +105 -92
- 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 +31 -25
- 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 +50 -49
- package/src/value/timestamp.ts +28 -15
- package/src/value/title.ts +26 -13
- 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
|
},
|
|
@@ -5,7 +5,9 @@ import { createFaker } from "../lib/createFaker";
|
|
|
5
5
|
|
|
6
6
|
import { MockModelConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
export type MockIntegrationFieldsModelConfig =
|
|
8
|
+
export type MockIntegrationFieldsModelConfig = {
|
|
9
|
+
catalog?: string;
|
|
10
|
+
} & MockModelConfig;
|
|
9
11
|
|
|
10
12
|
export const integrationFields = (
|
|
11
13
|
config: MockIntegrationFieldsModelConfig = {},
|
|
@@ -15,8 +17,8 @@ export const integrationFields = (
|
|
|
15
17
|
return {
|
|
16
18
|
type: prismicT.CustomTypeModelFieldType.IntegrationFields,
|
|
17
19
|
config: {
|
|
18
|
-
label: changeCase.capitalCase(faker.
|
|
19
|
-
catalog: changeCase.snakeCase(faker.
|
|
20
|
+
label: changeCase.capitalCase(faker.word()),
|
|
21
|
+
catalog: config.catalog || changeCase.snakeCase(faker.words(2)),
|
|
20
22
|
},
|
|
21
23
|
};
|
|
22
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
|
@@ -10,8 +10,10 @@ export type IterableElement<TargetIterable> = TargetIterable extends Iterable<
|
|
|
10
10
|
? ElementType
|
|
11
11
|
: never;
|
|
12
12
|
|
|
13
|
-
export type ValueOf<
|
|
14
|
-
ObjectType
|
|
13
|
+
export type ValueOf<
|
|
14
|
+
ObjectType,
|
|
15
|
+
ValueType extends keyof ObjectType = keyof ObjectType,
|
|
16
|
+
> = ObjectType[ValueType];
|
|
15
17
|
|
|
16
18
|
type Simplify<T> = { [KeyType in keyof T]: T[KeyType] };
|
|
17
19
|
type Except<ObjectType, KeysType extends keyof ObjectType> = Pick<
|
|
@@ -25,7 +27,7 @@ export type SetRequired<BaseType, Keys extends keyof BaseType> = Simplify<
|
|
|
25
27
|
Required<Pick<BaseType, Keys>>
|
|
26
28
|
>;
|
|
27
29
|
|
|
28
|
-
export type Seed = string | number
|
|
30
|
+
export type Seed = string | number;
|
|
29
31
|
|
|
30
32
|
export interface MockImageData {
|
|
31
33
|
url: string;
|
|
@@ -33,14 +35,11 @@ export interface MockImageData {
|
|
|
33
35
|
height: number;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
export
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
thumbnail_height: number | null;
|
|
42
|
-
thumbnail_width: number | null;
|
|
43
|
-
}
|
|
38
|
+
export type MockEmbedData = prismicT.AnyOEmbed &
|
|
39
|
+
prismicT.OEmbedExtra & {
|
|
40
|
+
embed_url: string;
|
|
41
|
+
html: string;
|
|
42
|
+
};
|
|
44
43
|
|
|
45
44
|
export type MockRestApiConfig = {
|
|
46
45
|
seed?: Seed;
|
|
@@ -74,40 +73,46 @@ export type MockValueStateConfig<
|
|
|
74
73
|
state?: State;
|
|
75
74
|
};
|
|
76
75
|
|
|
77
|
-
export type MockValueConfigForModel<
|
|
78
|
-
Model extends
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
76
|
+
export type MockValueConfigForModel<
|
|
77
|
+
Model extends PrismicModel,
|
|
78
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
79
|
+
> = Model extends prismicT.CustomTypeModelBooleanField
|
|
80
|
+
? value.MockBooleanValueConfig<Model>
|
|
81
|
+
: Model extends prismicT.CustomTypeModelColorField
|
|
82
|
+
? value.MockColorValueConfig<Model, State>
|
|
83
|
+
: Model extends prismicT.CustomTypeModelContentRelationshipField
|
|
84
|
+
? value.MockContentRelationshipValueConfig<Model, State>
|
|
85
|
+
: Model extends prismicT.CustomTypeModelDateField
|
|
86
|
+
? value.MockDateValueConfig<Model, State>
|
|
87
|
+
: Model extends prismicT.CustomTypeModelEmbedField
|
|
88
|
+
? value.MockEmbedValueConfig<Model, prismicT.AnyOEmbed, State>
|
|
89
|
+
: Model extends prismicT.CustomTypeModelGeoPointField
|
|
90
|
+
? value.MockGeoPointValueConfig<Model, State>
|
|
91
|
+
: Model extends prismicT.CustomTypeModelImageField
|
|
92
|
+
? value.MockImageValueConfig<Model, State>
|
|
93
|
+
: Model extends prismicT.CustomTypeModelKeyTextField
|
|
94
|
+
? value.MockKeyTextValueConfig<Model, State>
|
|
95
|
+
: Model extends prismicT.CustomTypeModelLinkField
|
|
96
|
+
? value.MockLinkValueConfig<
|
|
97
|
+
typeof prismicT.LinkType[keyof typeof prismicT.LinkType],
|
|
98
|
+
Model,
|
|
99
|
+
State
|
|
100
|
+
>
|
|
101
|
+
: Model extends prismicT.CustomTypeModelLinkToMediaField
|
|
102
|
+
? value.MockLinkToMediaValueConfig<Model, State>
|
|
103
|
+
: Model extends prismicT.CustomTypeModelNumberField
|
|
104
|
+
? value.MockNumberValueConfig<Model, State>
|
|
105
|
+
: Model extends prismicT.CustomTypeModelRichTextField
|
|
106
|
+
? value.MockRichTextValueConfig
|
|
107
|
+
: Model extends prismicT.CustomTypeModelSelectField
|
|
108
|
+
? value.MockSelectValueConfig<Model, State>
|
|
109
|
+
: Model extends prismicT.CustomTypeModelTimestampField
|
|
110
|
+
? value.MockTimestampValueConfig<Model, State>
|
|
111
|
+
: Model extends prismicT.CustomTypeModelTitleField
|
|
112
|
+
? value.MockTitleValueConfig<Model, State>
|
|
113
|
+
: Model extends prismicT.CustomTypeModelUIDField
|
|
114
|
+
? value.MockUIDValueConfig<Model>
|
|
115
|
+
: never;
|
|
111
116
|
|
|
112
117
|
type CustomTypeModelStructuredTextField =
|
|
113
118
|
| prismicT.CustomTypeModelRichTextField
|
|
@@ -126,37 +131,43 @@ export type ModelValueMap<
|
|
|
126
131
|
[P in keyof T]: ModelValue<T[P]>;
|
|
127
132
|
};
|
|
128
133
|
|
|
129
|
-
export type ModelValue<
|
|
130
|
-
T extends
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
134
|
+
export type ModelValue<
|
|
135
|
+
T extends PrismicModel,
|
|
136
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
137
|
+
> = T extends prismicT.CustomTypeModel
|
|
138
|
+
? CustomTypeModelValue<T>
|
|
139
|
+
: T extends prismicT.CustomTypeModelUIDField
|
|
140
|
+
? prismicT.PrismicDocument["uid"]
|
|
141
|
+
: T extends prismicT.CustomTypeModelFieldForGroup
|
|
142
|
+
? CustomTypeModelFieldForGroupValue<T, State>
|
|
143
|
+
: T extends prismicT.CustomTypeModelGroupField
|
|
144
|
+
? CustomTypeModelGroupFieldValue<T, State>
|
|
145
|
+
: T extends prismicT.CustomTypeModelSliceZoneField
|
|
146
|
+
? prismicT.SliceZone<
|
|
147
|
+
ValueOf<{
|
|
148
|
+
[P in keyof T["config"]["choices"] as P extends string
|
|
149
|
+
? P
|
|
150
|
+
: never]: T["config"]["choices"][P] extends prismicT.CustomTypeModelSlice
|
|
151
|
+
? CustomTypeModelSliceValue<
|
|
152
|
+
T["config"]["choices"][P],
|
|
153
|
+
P extends string ? P : string
|
|
154
|
+
>
|
|
155
|
+
: T["config"]["choices"][P] extends prismicT.CustomTypeModelSharedSlice
|
|
156
|
+
? prismicT.SharedSlice<P extends string ? P : string>
|
|
157
|
+
: never;
|
|
158
|
+
}>,
|
|
159
|
+
State
|
|
160
|
+
>
|
|
161
|
+
: T extends prismicT.CustomTypeModelSlice
|
|
162
|
+
? CustomTypeModelSliceValue<T>
|
|
163
|
+
: T extends prismicT.CustomTypeModelSharedSlice
|
|
164
|
+
? // TODO: Allow providing a union of of Shared Slices
|
|
165
|
+
prismicT.SharedSlice
|
|
166
|
+
: T extends prismicT.SharedSliceModel
|
|
167
|
+
? SharedSliceModelValue<T>
|
|
168
|
+
: T extends prismicT.SharedSliceModelVariation
|
|
169
|
+
? SharedSliceModelVariationValue<T>
|
|
170
|
+
: never;
|
|
160
171
|
|
|
161
172
|
type CustomTypeModelValue<T extends prismicT.CustomTypeModel> =
|
|
162
173
|
prismicT.PrismicDocument<
|
|
@@ -171,43 +182,45 @@ type CustomTypeModelValue<T extends prismicT.CustomTypeModel> =
|
|
|
171
182
|
|
|
172
183
|
type CustomTypeModelFieldForGroupValue<
|
|
173
184
|
T extends prismicT.CustomTypeModelFieldForGroup,
|
|
185
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
174
186
|
> = T extends prismicT.CustomTypeModelBooleanField
|
|
175
187
|
? prismicT.BooleanField
|
|
176
188
|
: T extends prismicT.CustomTypeModelColorField
|
|
177
|
-
? prismicT.ColorField
|
|
189
|
+
? prismicT.ColorField<State>
|
|
178
190
|
: T extends prismicT.CustomTypeModelTitleField
|
|
179
|
-
? prismicT.TitleField
|
|
191
|
+
? prismicT.TitleField<State>
|
|
180
192
|
: T extends prismicT.CustomTypeModelRichTextField
|
|
181
|
-
? prismicT.RichTextField
|
|
193
|
+
? prismicT.RichTextField<State>
|
|
182
194
|
: T extends prismicT.CustomTypeModelImageField
|
|
183
|
-
? prismicT.ImageField
|
|
195
|
+
? prismicT.ImageField<string | null, State>
|
|
184
196
|
: T extends prismicT.CustomTypeModelLinkField
|
|
185
|
-
? prismicT.LinkField
|
|
197
|
+
? prismicT.LinkField<string, string, never, State>
|
|
186
198
|
: T extends prismicT.CustomTypeModelLinkToMediaField
|
|
187
|
-
? prismicT.LinkToMediaField
|
|
199
|
+
? prismicT.LinkToMediaField<State>
|
|
188
200
|
: T extends prismicT.CustomTypeModelContentRelationshipField
|
|
189
|
-
? prismicT.RelationField
|
|
201
|
+
? prismicT.RelationField<string, string, never, State>
|
|
190
202
|
: T extends prismicT.CustomTypeModelDateField
|
|
191
|
-
? prismicT.DateField
|
|
203
|
+
? prismicT.DateField<State>
|
|
192
204
|
: T extends prismicT.CustomTypeModelTimestampField
|
|
193
|
-
? prismicT.TimestampField
|
|
205
|
+
? prismicT.TimestampField<State>
|
|
194
206
|
: T extends prismicT.CustomTypeModelNumberField
|
|
195
|
-
? prismicT.NumberField
|
|
207
|
+
? prismicT.NumberField<State>
|
|
196
208
|
: T extends prismicT.CustomTypeModelKeyTextField
|
|
197
|
-
? prismicT.KeyTextField
|
|
209
|
+
? prismicT.KeyTextField<State>
|
|
198
210
|
: T extends prismicT.CustomTypeModelSelectField
|
|
199
|
-
? prismicT.SelectField
|
|
211
|
+
? prismicT.SelectField<string, State>
|
|
200
212
|
: T extends prismicT.CustomTypeModelEmbedField
|
|
201
|
-
? prismicT.EmbedField
|
|
213
|
+
? prismicT.EmbedField<prismicT.AnyOEmbed & prismicT.OEmbedExtra, State>
|
|
202
214
|
: T extends prismicT.CustomTypeModelGeoPointField
|
|
203
|
-
? prismicT.GeoPointField
|
|
215
|
+
? prismicT.GeoPointField<State>
|
|
204
216
|
: T extends prismicT.CustomTypeModelIntegrationFieldsField
|
|
205
|
-
? prismicT.IntegrationFields
|
|
217
|
+
? prismicT.IntegrationFields<unknown, State>
|
|
206
218
|
: never;
|
|
207
219
|
|
|
208
220
|
type CustomTypeModelGroupFieldValue<
|
|
209
221
|
T extends prismicT.CustomTypeModelGroupField,
|
|
210
|
-
|
|
222
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
223
|
+
> = prismicT.GroupField<ModelValueMap<T["config"]["fields"]>, State>;
|
|
211
224
|
|
|
212
225
|
type CustomTypeModelSliceValue<
|
|
213
226
|
T extends prismicT.CustomTypeModelSlice,
|
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"],
|