@prismicio/mock 0.0.3 → 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 +561 -0
- package/dist/api/index.cjs.map +1 -0
- package/dist/api/index.d.ts +36 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +561 -0
- package/dist/api/index.js.map +1 -0
- package/dist/index.cjs +672 -644
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +228 -262
- package/dist/{index.mjs → index.js} +663 -634
- package/dist/index.js.map +1 -0
- package/dist/model/index.cjs +163 -203
- package/dist/model/index.cjs.map +1 -0
- package/dist/model/index.d.ts +70 -96
- 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 +284 -499
- package/dist/value/index.cjs.map +1 -0
- package/dist/value/index.d.ts +60 -120
- package/dist/value/index.d.ts.map +1 -0
- package/dist/value/{index.mjs → index.js} +447 -608
- package/dist/value/index.js.map +1 -0
- package/package.json +25 -20
- package/src/api/index.ts +11 -0
- package/src/api/query.ts +38 -0
- package/src/api/ref.ts +41 -0
- package/src/api/repository.ts +54 -0
- package/src/api/tags.ts +15 -0
- package/src/constants.ts +3 -1
- package/src/index.ts +1 -0
- package/src/lib/buildAlternativeLanguage.ts +18 -0
- package/src/lib/buildContentRelationshipField.ts +12 -5
- package/src/lib/buildEmbedField.ts +1 -1
- package/src/lib/buildImageFieldImage.ts +48 -0
- package/src/lib/createFaker.ts +19 -10
- package/src/lib/generateTags.ts +10 -2
- package/src/lib/valueForModelMap.ts +2 -2
- 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 +23 -30
- package/src/model/sharedSliceVariation.ts +33 -21
- package/src/model/slice.ts +15 -19
- package/src/model/sliceZone.ts +25 -42
- package/src/types.ts +50 -15
- package/src/value/color.ts +16 -6
- package/src/value/contentRelationship.ts +52 -36
- package/src/value/customType.ts +27 -4
- 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 -448
- package/src/lib/buildImageField.ts +0 -34
- package/src/lib/buildMockGroupFieldMap.ts +0 -84
package/src/value/image.ts
CHANGED
|
@@ -1,36 +1,49 @@
|
|
|
1
1
|
import * as prismicT from "@prismicio/types";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { buildImageFieldImage } from "../lib/buildImageFieldImage";
|
|
4
4
|
import { getMockImageData } from "../lib/getMockImageData";
|
|
5
5
|
|
|
6
|
-
import { MockValueConfig } from "../types";
|
|
6
|
+
import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
7
7
|
|
|
8
8
|
import * as modelGen from "../model";
|
|
9
9
|
|
|
10
10
|
export type MockImageValueConfig<
|
|
11
11
|
Model extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField,
|
|
12
|
-
|
|
12
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
13
|
+
> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
13
14
|
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
export type MockImageValue<
|
|
16
|
+
Model extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField,
|
|
17
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
18
|
+
> = prismicT.ImageField<Model["config"]["thumbnails"][number]["name"], State>;
|
|
19
|
+
|
|
20
|
+
export const image = <
|
|
21
|
+
Model extends prismicT.CustomTypeModelImageField = prismicT.CustomTypeModelImageField,
|
|
22
|
+
State extends prismicT.FieldState = "filled",
|
|
23
|
+
>(
|
|
24
|
+
config: MockImageValueConfig<Model, State> = {},
|
|
25
|
+
): MockImageValue<Model, State> => {
|
|
17
26
|
const model = config.model || modelGen.image({ seed: config.seed });
|
|
18
27
|
const imageData = getMockImageData({ seed: config.seed });
|
|
19
28
|
|
|
20
|
-
const value =
|
|
29
|
+
const value = buildImageFieldImage({
|
|
21
30
|
seed: config.seed,
|
|
22
31
|
imageData,
|
|
23
32
|
constraint: model.config.constraint,
|
|
24
|
-
|
|
33
|
+
state: config.state,
|
|
34
|
+
}) as MockImageValue<Model, State>;
|
|
25
35
|
|
|
26
36
|
for (const thumbnail of model.config.thumbnails) {
|
|
27
|
-
|
|
37
|
+
// TODO: Resolve the following type error
|
|
38
|
+
// @ts-expect-error - Unsure how to fix this type mismatch
|
|
39
|
+
value[thumbnail.name as keyof typeof value] = buildImageFieldImage({
|
|
28
40
|
seed: config.seed,
|
|
29
41
|
imageData,
|
|
30
42
|
constraint: {
|
|
31
43
|
width: thumbnail.width,
|
|
32
44
|
height: thumbnail.height,
|
|
33
45
|
},
|
|
46
|
+
state: config.state,
|
|
34
47
|
});
|
|
35
48
|
}
|
|
36
49
|
|
|
@@ -4,31 +4,43 @@ import * as changeCase from "change-case";
|
|
|
4
4
|
import { createFaker } from "../lib/createFaker";
|
|
5
5
|
import { getMockImageData } from "../lib/getMockImageData";
|
|
6
6
|
|
|
7
|
-
import { MockValueConfig } from "../types";
|
|
7
|
+
import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
8
8
|
|
|
9
9
|
export type MockIntegrationFieldsValueConfig<
|
|
10
10
|
Model extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField,
|
|
11
|
-
Blob
|
|
11
|
+
Blob = unknown,
|
|
12
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
12
13
|
> = {
|
|
13
14
|
data?: Blob;
|
|
14
|
-
} & MockValueConfig<Model
|
|
15
|
+
} & MockValueConfig<Model> &
|
|
16
|
+
MockValueStateConfig<State>;
|
|
17
|
+
|
|
18
|
+
export type MockIntegrationFieldsValue<
|
|
19
|
+
Blob = unknown,
|
|
20
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
21
|
+
> = prismicT.IntegrationFields<Blob, State>;
|
|
15
22
|
|
|
16
23
|
export const integrationFields = <
|
|
17
24
|
Model extends prismicT.CustomTypeModelIntegrationFieldsField = prismicT.CustomTypeModelIntegrationFieldsField,
|
|
18
|
-
Blob
|
|
25
|
+
Blob = unknown,
|
|
26
|
+
State extends prismicT.FieldState = "filled",
|
|
19
27
|
>(
|
|
20
|
-
config: MockIntegrationFieldsValueConfig<Model, Blob> = {},
|
|
21
|
-
):
|
|
28
|
+
config: MockIntegrationFieldsValueConfig<Model, Blob, State> = {},
|
|
29
|
+
): MockIntegrationFieldsValue<Blob, State> => {
|
|
22
30
|
const faker = createFaker(config.seed);
|
|
23
31
|
|
|
24
32
|
const imageData = getMockImageData({ seed: config.seed });
|
|
25
33
|
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
return (
|
|
35
|
+
config.state === "empty"
|
|
36
|
+
? null
|
|
37
|
+
: {
|
|
38
|
+
id: faker.git.shortSha(),
|
|
39
|
+
title: changeCase.capitalCase(faker.lorem.words(3)),
|
|
40
|
+
description: faker.lorem.sentence(),
|
|
41
|
+
image_url: imageData.url,
|
|
42
|
+
last_update: faker.date.past(20, new Date("2021-03-07")).getTime(),
|
|
43
|
+
blob: config.data as Blob,
|
|
44
|
+
}
|
|
45
|
+
) as MockIntegrationFieldsValue<Blob, State>;
|
|
34
46
|
};
|
package/src/value/keyText.ts
CHANGED
|
@@ -3,16 +3,28 @@ import * as changeCase from "change-case";
|
|
|
3
3
|
|
|
4
4
|
import { createFaker } from "../lib/createFaker";
|
|
5
5
|
|
|
6
|
-
import { MockValueConfig } from "../types";
|
|
6
|
+
import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
7
7
|
|
|
8
8
|
export type MockKeyTextValueConfig<
|
|
9
9
|
Model extends prismicT.CustomTypeModelKeyTextField = prismicT.CustomTypeModelKeyTextField,
|
|
10
|
-
|
|
10
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
11
|
+
> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
11
12
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
export type MockKeyTextValue<
|
|
14
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
15
|
+
> = prismicT.KeyTextField<State>;
|
|
16
|
+
|
|
17
|
+
export const keyText = <
|
|
18
|
+
Model extends prismicT.CustomTypeModelKeyTextField = prismicT.CustomTypeModelKeyTextField,
|
|
19
|
+
State extends prismicT.FieldState = "filled",
|
|
20
|
+
>(
|
|
21
|
+
config: MockKeyTextValueConfig<Model, State> = {},
|
|
22
|
+
): MockKeyTextValue<State> => {
|
|
15
23
|
const faker = createFaker(config.seed);
|
|
16
24
|
|
|
17
|
-
return
|
|
25
|
+
return (
|
|
26
|
+
config.state === "empty"
|
|
27
|
+
? null
|
|
28
|
+
: changeCase.sentenceCase(faker.lorem.words(3))
|
|
29
|
+
) as MockKeyTextValue<State>;
|
|
18
30
|
};
|
package/src/value/link.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as prismicT from "@prismicio/types";
|
|
|
2
2
|
|
|
3
3
|
import { createFaker } from "../lib/createFaker";
|
|
4
4
|
|
|
5
|
-
import { MockValueConfig } from "../types";
|
|
5
|
+
import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
6
6
|
|
|
7
7
|
import * as modelGen from "../model";
|
|
8
8
|
|
|
@@ -10,47 +10,45 @@ import { contentRelationship } from "./contentRelationship";
|
|
|
10
10
|
import { linkToMedia } from "./linkToMedia";
|
|
11
11
|
|
|
12
12
|
export type MockLinkValueConfig<
|
|
13
|
-
LinkType extends prismicT.LinkType = prismicT.LinkType,
|
|
14
|
-
IsFilled extends boolean = true,
|
|
13
|
+
LinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType],
|
|
15
14
|
Model extends prismicT.CustomTypeModelLinkField = prismicT.CustomTypeModelLinkField,
|
|
15
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
16
16
|
> = {
|
|
17
17
|
type?: LinkType;
|
|
18
|
-
isFilled?: IsFilled;
|
|
19
18
|
withTargetBlank?: Model["config"]["allowTargetBlank"] extends undefined
|
|
20
19
|
? false
|
|
21
20
|
: boolean;
|
|
22
21
|
/**
|
|
23
22
|
* A list of potential documents to which the field can be linked.
|
|
24
23
|
*/
|
|
25
|
-
linkableDocuments?: LinkType extends prismicT.LinkType.Document
|
|
24
|
+
linkableDocuments?: LinkType extends typeof prismicT.LinkType.Document
|
|
26
25
|
? prismicT.PrismicDocument[]
|
|
27
26
|
: never;
|
|
28
|
-
} & MockValueConfig<Model
|
|
27
|
+
} & MockValueConfig<Model> &
|
|
28
|
+
MockValueStateConfig<State>;
|
|
29
29
|
|
|
30
30
|
type MockLinkValue<
|
|
31
|
-
LinkType extends prismicT.LinkType = prismicT.LinkType,
|
|
32
|
-
|
|
33
|
-
> =
|
|
34
|
-
?
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
:
|
|
31
|
+
LinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType],
|
|
32
|
+
State extends prismicT.FieldState = "filled",
|
|
33
|
+
> = State extends "empty"
|
|
34
|
+
? prismicT.EmptyLinkField<LinkType>
|
|
35
|
+
: LinkType extends typeof prismicT.LinkType.Web
|
|
36
|
+
? prismicT.FilledLinkToWebField
|
|
37
|
+
: LinkType extends typeof prismicT.LinkType.Media
|
|
38
|
+
? prismicT.FilledLinkToMediaField
|
|
39
|
+
: LinkType extends typeof prismicT.LinkType.Document
|
|
40
|
+
? prismicT.FilledLinkToDocumentField
|
|
41
|
+
: never;
|
|
42
42
|
|
|
43
43
|
export const link = <
|
|
44
|
-
LinkType extends prismicT.LinkType = prismicT.LinkType,
|
|
45
|
-
IsFilled extends boolean = true,
|
|
44
|
+
LinkType extends typeof prismicT.LinkType[keyof typeof prismicT.LinkType] = typeof prismicT.LinkType[keyof typeof prismicT.LinkType],
|
|
46
45
|
Model extends prismicT.CustomTypeModelLinkField = prismicT.CustomTypeModelLinkField,
|
|
46
|
+
State extends prismicT.FieldState = "filled",
|
|
47
47
|
>(
|
|
48
|
-
config: MockLinkValueConfig<LinkType,
|
|
49
|
-
): MockLinkValue<LinkType,
|
|
48
|
+
config: MockLinkValueConfig<LinkType, Model, State> = {},
|
|
49
|
+
): MockLinkValue<LinkType, State> => {
|
|
50
50
|
const faker = createFaker(config.seed);
|
|
51
51
|
|
|
52
|
-
const isFilled = config.isFilled ?? true;
|
|
53
|
-
|
|
54
52
|
const type =
|
|
55
53
|
config.type ||
|
|
56
54
|
faker.random.arrayElement([
|
|
@@ -59,24 +57,29 @@ export const link = <
|
|
|
59
57
|
prismicT.LinkType.Media,
|
|
60
58
|
]);
|
|
61
59
|
|
|
62
|
-
if (
|
|
60
|
+
if (config.state === "empty") {
|
|
61
|
+
return {
|
|
62
|
+
link_type: type,
|
|
63
|
+
} as MockLinkValue<LinkType, State>;
|
|
64
|
+
} else {
|
|
63
65
|
switch (type) {
|
|
64
66
|
case prismicT.LinkType.Document: {
|
|
65
67
|
return contentRelationship({
|
|
66
68
|
seed: config.seed,
|
|
67
|
-
|
|
69
|
+
state: config.state,
|
|
68
70
|
linkableDocuments: config.linkableDocuments,
|
|
69
|
-
}) as MockLinkValue<LinkType,
|
|
71
|
+
}) as unknown as MockLinkValue<LinkType, State>;
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
case prismicT.LinkType.Media: {
|
|
73
75
|
return linkToMedia({
|
|
74
76
|
seed: config.seed,
|
|
75
|
-
|
|
76
|
-
}) as MockLinkValue<LinkType,
|
|
77
|
+
state: config.state,
|
|
78
|
+
}) as MockLinkValue<LinkType, State>;
|
|
77
79
|
}
|
|
78
80
|
|
|
79
|
-
case prismicT.LinkType.Web:
|
|
81
|
+
case prismicT.LinkType.Web:
|
|
82
|
+
default: {
|
|
80
83
|
const model = config.model || modelGen.link({ seed: config.seed });
|
|
81
84
|
|
|
82
85
|
return {
|
|
@@ -87,12 +90,8 @@ export const link = <
|
|
|
87
90
|
(model.config.allowTargetBlank && faker.datatype.boolean())
|
|
88
91
|
? "_blank"
|
|
89
92
|
: undefined,
|
|
90
|
-
} as MockLinkValue<LinkType,
|
|
93
|
+
} as MockLinkValue<LinkType, State>;
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
96
|
}
|
|
94
|
-
|
|
95
|
-
return {
|
|
96
|
-
link_type: type,
|
|
97
|
-
} as MockLinkValue<LinkType, IsFilled>;
|
|
98
97
|
};
|
package/src/value/linkToMedia.ts
CHANGED
|
@@ -2,31 +2,30 @@ import * as prismicT from "@prismicio/types";
|
|
|
2
2
|
|
|
3
3
|
import { createFaker } from "../lib/createFaker";
|
|
4
4
|
|
|
5
|
-
import { MockValueConfig } from "../types";
|
|
5
|
+
import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
6
6
|
|
|
7
7
|
export type MockLinkToMediaValueConfig<
|
|
8
|
-
IsFilled extends boolean = true,
|
|
9
8
|
Model extends prismicT.CustomTypeModelLinkToMediaField = prismicT.CustomTypeModelLinkToMediaField,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
} & MockValueConfig<Model>;
|
|
9
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
10
|
+
> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
13
11
|
|
|
14
|
-
type MockLinkToMediaValue<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
: prismicT.EmptyLinkField<prismicT.LinkType.Media>;
|
|
12
|
+
type MockLinkToMediaValue<
|
|
13
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
14
|
+
> = prismicT.LinkToMediaField<State>;
|
|
18
15
|
|
|
19
16
|
export const linkToMedia = <
|
|
20
|
-
IsFilled extends boolean = true,
|
|
21
17
|
Model extends prismicT.CustomTypeModelLinkToMediaField = prismicT.CustomTypeModelLinkToMediaField,
|
|
18
|
+
State extends prismicT.FieldState = "filled",
|
|
22
19
|
>(
|
|
23
|
-
config: MockLinkToMediaValueConfig<
|
|
24
|
-
): MockLinkToMediaValue<
|
|
20
|
+
config: MockLinkToMediaValueConfig<Model, State> = {},
|
|
21
|
+
): MockLinkToMediaValue<State> => {
|
|
25
22
|
const faker = createFaker(config.seed);
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
if (config.state === "empty") {
|
|
25
|
+
return {
|
|
26
|
+
link_type: prismicT.LinkType.Media,
|
|
27
|
+
} as MockLinkToMediaValue<State>;
|
|
28
|
+
} else {
|
|
30
29
|
return {
|
|
31
30
|
link_type: prismicT.LinkType.Media,
|
|
32
31
|
name: faker.system.commonFileName(),
|
|
@@ -35,10 +34,6 @@ export const linkToMedia = <
|
|
|
35
34
|
size: faker.datatype.number().toString(),
|
|
36
35
|
height: faker.datatype.number().toString(),
|
|
37
36
|
width: faker.datatype.number().toString(),
|
|
38
|
-
} as
|
|
39
|
-
} else {
|
|
40
|
-
return {
|
|
41
|
-
link_type: prismicT.LinkType.Media,
|
|
42
|
-
} as MockLinkToMediaValue<IsFilled>;
|
|
37
|
+
} as MockLinkToMediaValue<State>;
|
|
43
38
|
}
|
|
44
39
|
};
|
package/src/value/number.ts
CHANGED
|
@@ -2,16 +2,26 @@ import * as prismicT from "@prismicio/types";
|
|
|
2
2
|
|
|
3
3
|
import { createFaker } from "../lib/createFaker";
|
|
4
4
|
|
|
5
|
-
import { MockValueConfig } from "../types";
|
|
5
|
+
import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
6
6
|
|
|
7
7
|
export type MockNumberValueConfig<
|
|
8
8
|
Model extends prismicT.CustomTypeModelNumberField = prismicT.CustomTypeModelNumberField,
|
|
9
|
-
|
|
9
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
10
|
+
> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
10
11
|
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
export type MockNumberValue<
|
|
13
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
14
|
+
> = prismicT.NumberField<State>;
|
|
15
|
+
|
|
16
|
+
export const number = <
|
|
17
|
+
Model extends prismicT.CustomTypeModelNumberField = prismicT.CustomTypeModelNumberField,
|
|
18
|
+
State extends prismicT.FieldState = "filled",
|
|
19
|
+
>(
|
|
20
|
+
config: MockNumberValueConfig<Model, State> = {},
|
|
21
|
+
): MockNumberValue<State> => {
|
|
14
22
|
const faker = createFaker(config.seed);
|
|
15
23
|
|
|
16
|
-
return
|
|
24
|
+
return (
|
|
25
|
+
config.state === "empty" ? null : faker.datatype.number()
|
|
26
|
+
) as MockNumberValue<State>;
|
|
17
27
|
};
|
|
@@ -8,12 +8,12 @@ import { MockRichTextValueConfig } from "../../types";
|
|
|
8
8
|
import * as modelGen from "../../model";
|
|
9
9
|
|
|
10
10
|
type RichTextNodeTitleType =
|
|
11
|
-
| prismicT.RichTextNodeType.heading1
|
|
12
|
-
| prismicT.RichTextNodeType.heading2
|
|
13
|
-
| prismicT.RichTextNodeType.heading3
|
|
14
|
-
| prismicT.RichTextNodeType.heading4
|
|
15
|
-
| prismicT.RichTextNodeType.heading5
|
|
16
|
-
| prismicT.RichTextNodeType.heading6;
|
|
11
|
+
| typeof prismicT.RichTextNodeType.heading1
|
|
12
|
+
| typeof prismicT.RichTextNodeType.heading2
|
|
13
|
+
| typeof prismicT.RichTextNodeType.heading3
|
|
14
|
+
| typeof prismicT.RichTextNodeType.heading4
|
|
15
|
+
| typeof prismicT.RichTextNodeType.heading5
|
|
16
|
+
| typeof prismicT.RichTextNodeType.heading6;
|
|
17
17
|
|
|
18
18
|
type RTHeadingNode =
|
|
19
19
|
| prismicT.RTHeading1Node
|
|
@@ -61,7 +61,7 @@ export const heading = (
|
|
|
61
61
|
prismicT.RichTextNodeType.heading4,
|
|
62
62
|
prismicT.RichTextNodeType.heading5,
|
|
63
63
|
prismicT.RichTextNodeType.heading6,
|
|
64
|
-
].includes(type as
|
|
64
|
+
].includes(type as RichTextNodeTitleType),
|
|
65
65
|
) as RichTextNodeTitleType[];
|
|
66
66
|
const type = faker.random.arrayElement(types);
|
|
67
67
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as prismicT from "@prismicio/types";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { buildImageFieldImage } from "../../lib/buildImageFieldImage";
|
|
4
4
|
import { getMockImageData } from "../../lib/getMockImageData";
|
|
5
5
|
|
|
6
6
|
import { MockRichTextValueConfig } from "../../types";
|
|
@@ -11,7 +11,11 @@ export const image = (
|
|
|
11
11
|
config: MockRichTextImageValueConfig = {},
|
|
12
12
|
): prismicT.RTImageNode | undefined => {
|
|
13
13
|
const imageData = getMockImageData({ seed: config.seed });
|
|
14
|
-
const imageField =
|
|
14
|
+
const imageField = buildImageFieldImage({
|
|
15
|
+
seed: config.seed,
|
|
16
|
+
imageData,
|
|
17
|
+
state: false,
|
|
18
|
+
});
|
|
15
19
|
|
|
16
20
|
return {
|
|
17
21
|
type: prismicT.RichTextNodeType.image,
|
package/src/value/select.ts
CHANGED
|
@@ -2,23 +2,38 @@ import * as prismicT from "@prismicio/types";
|
|
|
2
2
|
|
|
3
3
|
import { createFaker } from "../lib/createFaker";
|
|
4
4
|
|
|
5
|
-
import { MockValueConfig } from "../types";
|
|
5
|
+
import { MockValueStateConfig, MockValueConfig } from "../types";
|
|
6
6
|
|
|
7
7
|
import * as modelGen from "../model";
|
|
8
8
|
|
|
9
9
|
export type MockSelectValueConfig<
|
|
10
10
|
Model extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField,
|
|
11
|
-
|
|
11
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
12
|
+
> = MockValueConfig<Model> & MockValueStateConfig<State>;
|
|
12
13
|
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
export type MockSelectValue<
|
|
15
|
+
Model extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField,
|
|
16
|
+
State extends prismicT.FieldState = prismicT.FieldState,
|
|
17
|
+
> = prismicT.SelectField<Model["config"]["options"][number], State>;
|
|
18
|
+
|
|
19
|
+
export const select = <
|
|
20
|
+
Model extends prismicT.CustomTypeModelSelectField = prismicT.CustomTypeModelSelectField,
|
|
21
|
+
State extends prismicT.FieldState = "filled",
|
|
22
|
+
>(
|
|
23
|
+
config: MockSelectValueConfig<Model, State> = {},
|
|
24
|
+
): MockSelectValue<Model, State> => {
|
|
16
25
|
const faker = createFaker(config.seed);
|
|
17
26
|
|
|
18
27
|
const model = config.model || modelGen.select({ seed: config.seed });
|
|
19
28
|
const defaultValue = model.config.default_value;
|
|
20
29
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
30
|
+
if (config.state === "empty") {
|
|
31
|
+
return null as MockSelectValue<Model, State>;
|
|
32
|
+
} else {
|
|
33
|
+
return (
|
|
34
|
+
typeof defaultValue === "string" && faker.datatype.boolean()
|
|
35
|
+
? defaultValue
|
|
36
|
+
: faker.random.arrayElement(model.config.options)
|
|
37
|
+
) as MockSelectValue<Model, State>;
|
|
38
|
+
}
|
|
24
39
|
};
|
package/src/value/sharedSlice.ts
CHANGED
|
@@ -14,7 +14,7 @@ export type MockSharedSliceValueConfig<
|
|
|
14
14
|
Model extends prismicT.SharedSliceModel = prismicT.SharedSliceModel,
|
|
15
15
|
> = Pick<
|
|
16
16
|
MockSharedSliceVariationValueConfig,
|
|
17
|
-
"
|
|
17
|
+
"itemsCount" | "primaryFieldConfigs" | "itemsFieldConfigs"
|
|
18
18
|
> &
|
|
19
19
|
MockValueConfig<Model>;
|
|
20
20
|
|
|
@@ -31,7 +31,7 @@ export const sharedSlice = <
|
|
|
31
31
|
return sharedSliceVariation({
|
|
32
32
|
seed: config.seed,
|
|
33
33
|
model: variationModel,
|
|
34
|
-
|
|
34
|
+
itemsCount: config.itemsCount,
|
|
35
35
|
type: model.id,
|
|
36
36
|
primaryFieldConfigs: config.primaryFieldConfigs,
|
|
37
37
|
itemsFieldConfigs: config.itemsFieldConfigs,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as prismicT from "@prismicio/types";
|
|
2
|
-
import * as changeCase from "change-case";
|
|
3
2
|
|
|
4
3
|
import { MockValueConfig, ModelValue } from "../types";
|
|
5
4
|
|
|
@@ -12,31 +11,12 @@ import {
|
|
|
12
11
|
|
|
13
12
|
import * as modelGen from "../model";
|
|
14
13
|
|
|
15
|
-
const patterns = {
|
|
16
|
-
none: {
|
|
17
|
-
minItems: 0,
|
|
18
|
-
maxItems: 0,
|
|
19
|
-
},
|
|
20
|
-
short: {
|
|
21
|
-
minItems: 1,
|
|
22
|
-
maxItems: 3,
|
|
23
|
-
},
|
|
24
|
-
medium: {
|
|
25
|
-
minItems: 3,
|
|
26
|
-
maxItems: 6,
|
|
27
|
-
},
|
|
28
|
-
long: {
|
|
29
|
-
minItems: 6,
|
|
30
|
-
maxItems: 12,
|
|
31
|
-
},
|
|
32
|
-
} as const;
|
|
33
|
-
|
|
34
14
|
export type MockSharedSliceVariationValueConfig<
|
|
35
15
|
Model extends prismicT.SharedSliceModelVariation = prismicT.SharedSliceModelVariation,
|
|
36
16
|
> = {
|
|
37
17
|
type?: string;
|
|
38
18
|
label?: string;
|
|
39
|
-
|
|
19
|
+
itemsCount?: number;
|
|
40
20
|
primaryFieldConfigs?: ValueForModelMapConfigs;
|
|
41
21
|
itemsFieldConfigs?: ValueForModelMapConfigs;
|
|
42
22
|
} & MockValueConfig<Model>;
|
|
@@ -51,28 +31,20 @@ export const sharedSliceVariation = <
|
|
|
51
31
|
const model =
|
|
52
32
|
config.model || modelGen.sharedSliceVariation({ seed: config.seed });
|
|
53
33
|
|
|
54
|
-
const patternKey =
|
|
55
|
-
config.pattern ||
|
|
56
|
-
faker.random.arrayElement(
|
|
57
|
-
Object.keys(patterns) as (keyof typeof patterns)[],
|
|
58
|
-
);
|
|
59
|
-
const pattern = patterns[patternKey];
|
|
60
|
-
|
|
61
34
|
const sliceType = config.type ?? generateFieldId({ seed: config.seed });
|
|
62
|
-
const sliceLabel =
|
|
63
|
-
config.label ?? changeCase.capitalCase(faker.company.bsNoun());
|
|
64
35
|
|
|
65
36
|
const itemsCount =
|
|
66
37
|
Object.keys(model.items).length > 0
|
|
67
|
-
?
|
|
68
|
-
|
|
69
|
-
|
|
38
|
+
? config.itemsCount ??
|
|
39
|
+
faker.datatype.number({
|
|
40
|
+
min: 1,
|
|
41
|
+
max: 6,
|
|
70
42
|
})
|
|
71
43
|
: 0;
|
|
72
44
|
|
|
73
45
|
return {
|
|
74
46
|
slice_type: sliceType,
|
|
75
|
-
slice_label:
|
|
47
|
+
slice_label: null,
|
|
76
48
|
variation: model.id,
|
|
77
49
|
version: faker.git.shortSha(),
|
|
78
50
|
primary: valueForModelMap({
|
package/src/value/slice.ts
CHANGED
|
@@ -12,31 +12,12 @@ import {
|
|
|
12
12
|
|
|
13
13
|
import * as modelGen from "../model";
|
|
14
14
|
|
|
15
|
-
const patterns = {
|
|
16
|
-
none: {
|
|
17
|
-
minItems: 0,
|
|
18
|
-
maxItems: 0,
|
|
19
|
-
},
|
|
20
|
-
short: {
|
|
21
|
-
minItems: 1,
|
|
22
|
-
maxItems: 3,
|
|
23
|
-
},
|
|
24
|
-
medium: {
|
|
25
|
-
minItems: 3,
|
|
26
|
-
maxItems: 6,
|
|
27
|
-
},
|
|
28
|
-
long: {
|
|
29
|
-
minItems: 6,
|
|
30
|
-
maxItems: 12,
|
|
31
|
-
},
|
|
32
|
-
} as const;
|
|
33
|
-
|
|
34
15
|
export type MockSliceValueConfig<
|
|
35
16
|
Model extends prismicT.CustomTypeModelSlice = prismicT.CustomTypeModelSlice,
|
|
36
17
|
> = {
|
|
37
18
|
type?: string;
|
|
38
19
|
label?: string | null;
|
|
39
|
-
|
|
20
|
+
itemsCount?: number;
|
|
40
21
|
primaryFieldConfigs?: ValueForModelMapConfigs;
|
|
41
22
|
itemsFieldConfigs?: ValueForModelMapConfigs;
|
|
42
23
|
} & MockValueConfig<Model>;
|
|
@@ -50,13 +31,6 @@ export const slice = <
|
|
|
50
31
|
|
|
51
32
|
const model = config.model || modelGen.slice({ seed: config.seed });
|
|
52
33
|
|
|
53
|
-
const patternKey =
|
|
54
|
-
config.pattern ||
|
|
55
|
-
faker.random.arrayElement(
|
|
56
|
-
Object.keys(patterns) as (keyof typeof patterns)[],
|
|
57
|
-
);
|
|
58
|
-
const pattern = patterns[patternKey];
|
|
59
|
-
|
|
60
34
|
const sliceType = config.type ?? generateFieldId({ seed: config.seed });
|
|
61
35
|
const sliceLabel =
|
|
62
36
|
config.label !== undefined
|
|
@@ -65,9 +39,10 @@ export const slice = <
|
|
|
65
39
|
|
|
66
40
|
const itemsCount =
|
|
67
41
|
Object.keys(model.repeat).length > 0
|
|
68
|
-
?
|
|
69
|
-
|
|
70
|
-
|
|
42
|
+
? config.itemsCount ??
|
|
43
|
+
faker.datatype.number({
|
|
44
|
+
min: 1,
|
|
45
|
+
max: 6,
|
|
71
46
|
})
|
|
72
47
|
: 0;
|
|
73
48
|
|