prismic-ts-codegen 0.1.25-alpha.0 → 0.1.26
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/_node_modules/@prismicio/client/dist/package.json.cjs +1 -1
- package/dist/_node_modules/@prismicio/client/dist/package.json.cjs.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/package.json.js +1 -1
- package/dist/_node_modules/@prismicio/client/dist/package.json.js.map +1 -1
- package/dist/cli/types.d.ts +2 -2
- package/dist/constants.cjs +24 -20
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.ts +26 -4
- package/dist/constants.js +24 -20
- package/dist/constants.js.map +1 -1
- package/dist/lib/buildFieldDocs.cjs +27 -3
- package/dist/lib/buildFieldDocs.cjs.map +1 -1
- package/dist/lib/buildFieldDocs.js +27 -3
- package/dist/lib/buildFieldDocs.js.map +1 -1
- package/dist/lib/buildFieldProperties.cjs +1 -6
- package/dist/lib/buildFieldProperties.cjs.map +1 -1
- package/dist/lib/buildFieldProperties.js +1 -6
- package/dist/lib/buildFieldProperties.js.map +1 -1
- package/package.json +3 -6
- package/src/cli/types.ts +2 -2
- package/src/constants.ts +28 -24
- package/src/lib/buildFieldDocs.ts +39 -13
- package/src/lib/buildFieldProperties.ts +1 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.cjs","sources":["../../../../../node_modules/@prismicio/client/dist/package.json.js"],"sourcesContent":["const version = \"7.16.
|
|
1
|
+
{"version":3,"file":"package.json.cjs","sources":["../../../../../node_modules/@prismicio/client/dist/package.json.js"],"sourcesContent":["const version = \"7.16.1\";\nexport {\n version\n};\n//# sourceMappingURL=package.json.js.map\n"],"names":[],"mappings":";;AAAK,MAAC,UAAU;;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.js","sources":["../../../../../node_modules/@prismicio/client/dist/package.json.js"],"sourcesContent":["const version = \"7.16.
|
|
1
|
+
{"version":3,"file":"package.json.js","sources":["../../../../../node_modules/@prismicio/client/dist/package.json.js"],"sourcesContent":["const version = \"7.16.1\";\nexport {\n version\n};\n//# sourceMappingURL=package.json.js.map\n"],"names":[],"mappings":"AAAK,MAAC,UAAU;","x_google_ignoreList":[0]}
|
package/dist/cli/types.d.ts
CHANGED
|
@@ -45,8 +45,8 @@ export type Config = {
|
|
|
45
45
|
* repositories, set `includeCreateClientInterface` to `true` for the
|
|
46
46
|
* primary repository and `false` or any other repository. The generated
|
|
47
47
|
* `AllDocumentTypes` type for non-primary repositories can be provided to
|
|
48
|
-
* `@prismicio/client`'s `
|
|
49
|
-
* to type the client.
|
|
48
|
+
* `@prismicio/client`'s `createClient()` function as its only type
|
|
49
|
+
* parameter to type the client.
|
|
50
50
|
*
|
|
51
51
|
* @defaultValue `true`
|
|
52
52
|
*/
|
package/dist/constants.cjs
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const CUSTOM_TYPES_DOCUMENTATION_URL = "https://prismic.io/docs/
|
|
4
|
-
const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/
|
|
3
|
+
const CUSTOM_TYPES_DOCUMENTATION_URL = "https://prismic.io/docs/content-modeling";
|
|
4
|
+
const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/slices";
|
|
5
5
|
const FIELD_DOCUMENTATION_URLS = {
|
|
6
|
-
UID: "https://prismic.io/docs/
|
|
7
|
-
Boolean: "https://prismic.io/docs/
|
|
8
|
-
Color: "https://prismic.io/docs/
|
|
9
|
-
Date: "https://prismic.io/docs/
|
|
10
|
-
Timestamp: "https://prismic.io/docs/
|
|
11
|
-
Number: "https://prismic.io/docs/
|
|
12
|
-
Text: "https://prismic.io/docs/
|
|
13
|
-
Select: "https://prismic.io/docs/
|
|
14
|
-
StructuredText: "https://prismic.io/docs/
|
|
15
|
-
Image: "https://prismic.io/docs/
|
|
16
|
-
Link:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
6
|
+
UID: "https://prismic.io/docs/fields/uid",
|
|
7
|
+
Boolean: "https://prismic.io/docs/fields/boolean",
|
|
8
|
+
Color: "https://prismic.io/docs/fields/color",
|
|
9
|
+
Date: "https://prismic.io/docs/fields/date",
|
|
10
|
+
Timestamp: "https://prismic.io/docs/fields/timestamp",
|
|
11
|
+
Number: "https://prismic.io/docs/fields/number",
|
|
12
|
+
Text: "https://prismic.io/docs/fields/text",
|
|
13
|
+
Select: "https://prismic.io/docs/fields/select",
|
|
14
|
+
StructuredText: "https://prismic.io/docs/fields/rich-text",
|
|
15
|
+
Image: "https://prismic.io/docs/fields/image",
|
|
16
|
+
Link: {
|
|
17
|
+
contentRelationship: "https://prismic.io/docs/fields/content-relationship",
|
|
18
|
+
link: "https://prismic.io/docs/fields/link",
|
|
19
|
+
linkToMedia: "https://prismic.io/docs/fields/link-to-media"
|
|
20
|
+
},
|
|
21
|
+
Embed: "https://prismic.io/docs/fields/embed",
|
|
22
|
+
GeoPoint: "https://prismic.io/docs/fields/geopoint",
|
|
23
|
+
Table: "https://prismic.io/docs/fields/table",
|
|
24
|
+
Group: "https://prismic.io/docs/fields/repeatable-group",
|
|
25
|
+
IntegrationFields: "https://prismic.io/docs/fields/integration",
|
|
26
|
+
Slices: "https://prismic.io/docs/slices",
|
|
27
|
+
Choice: "https://prismic.io/docs/slices"
|
|
24
28
|
};
|
|
25
29
|
exports.CUSTOM_TYPES_DOCUMENTATION_URL = CUSTOM_TYPES_DOCUMENTATION_URL;
|
|
26
30
|
exports.FIELD_DOCUMENTATION_URLS = FIELD_DOCUMENTATION_URLS;
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","sources":["../../src/constants.ts"],"sourcesContent":["import type { CustomTypeModelFieldType } from \"@prismicio/client\";\n\nexport const CUSTOM_TYPES_DOCUMENTATION_URL =\n\t\"https://prismic.io/docs/
|
|
1
|
+
{"version":3,"file":"constants.cjs","sources":["../../src/constants.ts"],"sourcesContent":["import type { CustomTypeModelFieldType } from \"@prismicio/client\";\n\nexport const CUSTOM_TYPES_DOCUMENTATION_URL =\n\t\"https://prismic.io/docs/content-modeling\";\n\nexport const SHARED_SLICES_DOCUMENTATION_URL = \"https://prismic.io/docs/slices\";\n\nexport const FIELD_DOCUMENTATION_URLS = {\n\tUID: \"https://prismic.io/docs/fields/uid\",\n\tBoolean: \"https://prismic.io/docs/fields/boolean\",\n\tColor: \"https://prismic.io/docs/fields/color\",\n\tDate: \"https://prismic.io/docs/fields/date\",\n\tTimestamp: \"https://prismic.io/docs/fields/timestamp\",\n\tNumber: \"https://prismic.io/docs/fields/number\",\n\tText: \"https://prismic.io/docs/fields/text\",\n\tSelect: \"https://prismic.io/docs/fields/select\",\n\tStructuredText: \"https://prismic.io/docs/fields/rich-text\",\n\tImage: \"https://prismic.io/docs/fields/image\",\n\tLink: {\n\t\tcontentRelationship: \"https://prismic.io/docs/fields/content-relationship\",\n\t\tlink: \"https://prismic.io/docs/fields/link\",\n\t\tlinkToMedia: \"https://prismic.io/docs/fields/link-to-media\",\n\t},\n\tEmbed: \"https://prismic.io/docs/fields/embed\",\n\tGeoPoint: \"https://prismic.io/docs/fields/geopoint\",\n\tTable: \"https://prismic.io/docs/fields/table\",\n\tGroup: \"https://prismic.io/docs/fields/repeatable-group\",\n\tIntegrationFields: \"https://prismic.io/docs/fields/integration\",\n\tSlices: \"https://prismic.io/docs/slices\",\n\tChoice: \"https://prismic.io/docs/slices\",\n} satisfies Record<\n\tExclude<\n\t\t(typeof CustomTypeModelFieldType)[keyof typeof CustomTypeModelFieldType],\n\t\t\"Range\" | \"Separator\"\n\t>,\n\tstring | Record<string, string>\n>;\n"],"names":[],"mappings":";;AAEO,MAAM,iCACZ;AAEM,MAAM,kCAAkC;AAExC,MAAM,2BAA2B;AAAA,EACvC,KAAK;AAAA,EACL,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,MAAM;AAAA,IACL,qBAAqB;AAAA,IACrB,MAAM;AAAA,IACN,aAAa;AAAA,EACb;AAAA,EACD,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,QAAQ;;;;;"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
|
|
1
|
+
export declare const CUSTOM_TYPES_DOCUMENTATION_URL = "https://prismic.io/docs/content-modeling";
|
|
2
|
+
export declare const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/slices";
|
|
3
|
+
export declare const FIELD_DOCUMENTATION_URLS: {
|
|
4
|
+
UID: string;
|
|
5
|
+
Boolean: string;
|
|
6
|
+
Color: string;
|
|
7
|
+
Date: string;
|
|
8
|
+
Timestamp: string;
|
|
9
|
+
Number: string;
|
|
10
|
+
Text: string;
|
|
11
|
+
Select: string;
|
|
12
|
+
StructuredText: string;
|
|
13
|
+
Image: string;
|
|
14
|
+
Link: {
|
|
15
|
+
contentRelationship: string;
|
|
16
|
+
link: string;
|
|
17
|
+
linkToMedia: string;
|
|
18
|
+
};
|
|
19
|
+
Embed: string;
|
|
20
|
+
GeoPoint: string;
|
|
21
|
+
Table: string;
|
|
22
|
+
Group: string;
|
|
23
|
+
IntegrationFields: string;
|
|
24
|
+
Slices: string;
|
|
25
|
+
Choice: string;
|
|
26
|
+
};
|
package/dist/constants.js
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
const CUSTOM_TYPES_DOCUMENTATION_URL = "https://prismic.io/docs/
|
|
2
|
-
const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/
|
|
1
|
+
const CUSTOM_TYPES_DOCUMENTATION_URL = "https://prismic.io/docs/content-modeling";
|
|
2
|
+
const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/slices";
|
|
3
3
|
const FIELD_DOCUMENTATION_URLS = {
|
|
4
|
-
UID: "https://prismic.io/docs/
|
|
5
|
-
Boolean: "https://prismic.io/docs/
|
|
6
|
-
Color: "https://prismic.io/docs/
|
|
7
|
-
Date: "https://prismic.io/docs/
|
|
8
|
-
Timestamp: "https://prismic.io/docs/
|
|
9
|
-
Number: "https://prismic.io/docs/
|
|
10
|
-
Text: "https://prismic.io/docs/
|
|
11
|
-
Select: "https://prismic.io/docs/
|
|
12
|
-
StructuredText: "https://prismic.io/docs/
|
|
13
|
-
Image: "https://prismic.io/docs/
|
|
14
|
-
Link:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
4
|
+
UID: "https://prismic.io/docs/fields/uid",
|
|
5
|
+
Boolean: "https://prismic.io/docs/fields/boolean",
|
|
6
|
+
Color: "https://prismic.io/docs/fields/color",
|
|
7
|
+
Date: "https://prismic.io/docs/fields/date",
|
|
8
|
+
Timestamp: "https://prismic.io/docs/fields/timestamp",
|
|
9
|
+
Number: "https://prismic.io/docs/fields/number",
|
|
10
|
+
Text: "https://prismic.io/docs/fields/text",
|
|
11
|
+
Select: "https://prismic.io/docs/fields/select",
|
|
12
|
+
StructuredText: "https://prismic.io/docs/fields/rich-text",
|
|
13
|
+
Image: "https://prismic.io/docs/fields/image",
|
|
14
|
+
Link: {
|
|
15
|
+
contentRelationship: "https://prismic.io/docs/fields/content-relationship",
|
|
16
|
+
link: "https://prismic.io/docs/fields/link",
|
|
17
|
+
linkToMedia: "https://prismic.io/docs/fields/link-to-media"
|
|
18
|
+
},
|
|
19
|
+
Embed: "https://prismic.io/docs/fields/embed",
|
|
20
|
+
GeoPoint: "https://prismic.io/docs/fields/geopoint",
|
|
21
|
+
Table: "https://prismic.io/docs/fields/table",
|
|
22
|
+
Group: "https://prismic.io/docs/fields/repeatable-group",
|
|
23
|
+
IntegrationFields: "https://prismic.io/docs/fields/integration",
|
|
24
|
+
Slices: "https://prismic.io/docs/slices",
|
|
25
|
+
Choice: "https://prismic.io/docs/slices"
|
|
22
26
|
};
|
|
23
27
|
export {
|
|
24
28
|
CUSTOM_TYPES_DOCUMENTATION_URL,
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["import type { CustomTypeModelFieldType } from \"@prismicio/client\";\n\nexport const CUSTOM_TYPES_DOCUMENTATION_URL =\n\t\"https://prismic.io/docs/
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["import type { CustomTypeModelFieldType } from \"@prismicio/client\";\n\nexport const CUSTOM_TYPES_DOCUMENTATION_URL =\n\t\"https://prismic.io/docs/content-modeling\";\n\nexport const SHARED_SLICES_DOCUMENTATION_URL = \"https://prismic.io/docs/slices\";\n\nexport const FIELD_DOCUMENTATION_URLS = {\n\tUID: \"https://prismic.io/docs/fields/uid\",\n\tBoolean: \"https://prismic.io/docs/fields/boolean\",\n\tColor: \"https://prismic.io/docs/fields/color\",\n\tDate: \"https://prismic.io/docs/fields/date\",\n\tTimestamp: \"https://prismic.io/docs/fields/timestamp\",\n\tNumber: \"https://prismic.io/docs/fields/number\",\n\tText: \"https://prismic.io/docs/fields/text\",\n\tSelect: \"https://prismic.io/docs/fields/select\",\n\tStructuredText: \"https://prismic.io/docs/fields/rich-text\",\n\tImage: \"https://prismic.io/docs/fields/image\",\n\tLink: {\n\t\tcontentRelationship: \"https://prismic.io/docs/fields/content-relationship\",\n\t\tlink: \"https://prismic.io/docs/fields/link\",\n\t\tlinkToMedia: \"https://prismic.io/docs/fields/link-to-media\",\n\t},\n\tEmbed: \"https://prismic.io/docs/fields/embed\",\n\tGeoPoint: \"https://prismic.io/docs/fields/geopoint\",\n\tTable: \"https://prismic.io/docs/fields/table\",\n\tGroup: \"https://prismic.io/docs/fields/repeatable-group\",\n\tIntegrationFields: \"https://prismic.io/docs/fields/integration\",\n\tSlices: \"https://prismic.io/docs/slices\",\n\tChoice: \"https://prismic.io/docs/slices\",\n} satisfies Record<\n\tExclude<\n\t\t(typeof CustomTypeModelFieldType)[keyof typeof CustomTypeModelFieldType],\n\t\t\"Range\" | \"Separator\"\n\t>,\n\tstring | Record<string, string>\n>;\n"],"names":[],"mappings":"AAEO,MAAM,iCACZ;AAEM,MAAM,kCAAkC;AAExC,MAAM,2BAA2B;AAAA,EACvC,KAAK;AAAA,EACL,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,MAAM;AAAA,IACL,qBAAqB;AAAA,IACrB,MAAM;AAAA,IACN,aAAa;AAAA,EACb;AAAA,EACD,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,QAAQ;;"}
|
|
@@ -9,8 +9,7 @@ function getHumanReadableFieldType(args) {
|
|
|
9
9
|
var _a, _b;
|
|
10
10
|
switch (args.field.type) {
|
|
11
11
|
case "StructuredText": {
|
|
12
|
-
|
|
13
|
-
return isTitleField ? "Title" : "Rich Text";
|
|
12
|
+
return "Rich Text";
|
|
14
13
|
}
|
|
15
14
|
case "IntegrationFields": {
|
|
16
15
|
const catalog = (_a = args.field.config) == null ? void 0 : _a.catalog;
|
|
@@ -37,6 +36,31 @@ function getHumanReadableFieldType(args) {
|
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
38
|
}
|
|
39
|
+
function getDocumentationURL(args) {
|
|
40
|
+
var _a;
|
|
41
|
+
switch (args.field.type) {
|
|
42
|
+
case "Link": {
|
|
43
|
+
const urls = constants.FIELD_DOCUMENTATION_URLS.Link;
|
|
44
|
+
switch ((_a = args.field.config) == null ? void 0 : _a.select) {
|
|
45
|
+
case "document": {
|
|
46
|
+
return urls.contentRelationship;
|
|
47
|
+
}
|
|
48
|
+
case "media": {
|
|
49
|
+
return urls.linkToMedia;
|
|
50
|
+
}
|
|
51
|
+
default: {
|
|
52
|
+
return urls.link;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
default: {
|
|
57
|
+
const url = constants.FIELD_DOCUMENTATION_URLS[args.field.type];
|
|
58
|
+
if (typeof url === "string") {
|
|
59
|
+
return url;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
40
64
|
function buildFieldDocs(args) {
|
|
41
65
|
let result = "/**";
|
|
42
66
|
const humanReadableName = getHumanReadableModelName.getHumanReadableModelName({
|
|
@@ -64,7 +88,7 @@ function buildFieldDocs(args) {
|
|
|
64
88
|
if (args.tabName) {
|
|
65
89
|
result = addLine.addLine(` * - **Tab**: ${args.tabName}`, result);
|
|
66
90
|
}
|
|
67
|
-
const documentationURL =
|
|
91
|
+
const documentationURL = getDocumentationURL({ field: args.field });
|
|
68
92
|
if (documentationURL) {
|
|
69
93
|
result = addLine.addLine(` * - **Documentation**: ${documentationURL}`, result);
|
|
70
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFieldDocs.cjs","sources":["../../../src/lib/buildFieldDocs.ts"],"sourcesContent":["import type { CustomTypeModelField } from \"@prismicio/client\";\n\nimport { FieldPath } from \"../types\";\n\nimport { FIELD_DOCUMENTATION_URLS } from \"../constants\";\n\nimport { addLine } from \"./addLine\";\nimport { getAPIIDPath } from \"./getAPIIDPath\";\nimport { getHumanReadableModelName } from \"./getHumanReadableModelName\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype GetFieldHumanReadableTypeArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getHumanReadableFieldType(\n\targs: GetFieldHumanReadableTypeArgs,\n): string {\n\tswitch (args.field.type) {\n\t\tcase \"StructuredText\": {\n\t\t\
|
|
1
|
+
{"version":3,"file":"buildFieldDocs.cjs","sources":["../../../src/lib/buildFieldDocs.ts"],"sourcesContent":["import type { CustomTypeModelField } from \"@prismicio/client\";\n\nimport { FieldPath } from \"../types\";\n\nimport { FIELD_DOCUMENTATION_URLS } from \"../constants\";\n\nimport { addLine } from \"./addLine\";\nimport { getAPIIDPath } from \"./getAPIIDPath\";\nimport { getHumanReadableModelName } from \"./getHumanReadableModelName\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype GetFieldHumanReadableTypeArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getHumanReadableFieldType(\n\targs: GetFieldHumanReadableTypeArgs,\n): string {\n\tswitch (args.field.type) {\n\t\tcase \"StructuredText\": {\n\t\t\treturn \"Rich Text\";\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalog = args.field.config?.catalog;\n\n\t\t\treturn `Integration Fields (Catalog: ${\n\t\t\t\tcatalog ? `\\`${catalog}\\`` : \"*unknown*\"\n\t\t\t})`;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\treturn \"Content Relationship\";\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\treturn \"Link to Media\";\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\treturn \"Link\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\treturn \"Slice Zone\";\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn args.field.type;\n\t\t}\n\t}\n}\n\ntype getDocumentationURLArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getDocumentationURL(args: getDocumentationURLArgs) {\n\tswitch (args.field.type) {\n\t\tcase \"Link\": {\n\t\t\tconst urls = FIELD_DOCUMENTATION_URLS.Link;\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\treturn urls.contentRelationship;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\treturn urls.linkToMedia;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\treturn urls.link;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdefault: {\n\t\t\tconst url =\n\t\t\t\tFIELD_DOCUMENTATION_URLS[\n\t\t\t\t\targs.field.type as keyof typeof FIELD_DOCUMENTATION_URLS\n\t\t\t\t];\n\n\t\t\tif (typeof url === \"string\") {\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype BuildFieldDocsArgs = {\n\tname: string;\n\tfield: CustomTypeModelField;\n\tpath: FieldPath;\n\ttabName?: string;\n};\n\nexport function buildFieldDocs(args: BuildFieldDocsArgs): string {\n\tlet result = \"/**\";\n\n\tconst humanReadableName = getHumanReadableModelName({\n\t\tmodel: args.field,\n\t\tname: args.name,\n\t});\n\tconst humanReadablePath = getHumanReadablePath({ path: args.path });\n\tconst humanReadableFieldType = getHumanReadableFieldType({\n\t\tfield: args.field,\n\t});\n\n\tresult = addLine(\n\t\t` * ${humanReadableName} field in *${humanReadablePath}*`,\n\t\tresult,\n\t);\n\n\tresult = addLine(\" *\", result);\n\n\tresult = addLine(` * - **Field Type**: ${humanReadableFieldType}`, result);\n\n\tconst placeholder =\n\t\t(args.field.config &&\n\t\t\t\"placeholder\" in args.field.config &&\n\t\t\targs.field.config.placeholder) ||\n\t\t`*None*`;\n\tresult = addLine(` * - **Placeholder**: ${placeholder}`, result);\n\n\tconst defaultValue =\n\t\targs.field.config && \"default_value\" in args.field.config\n\t\t\t? args.field.config.default_value\n\t\t\t: undefined;\n\tif (defaultValue !== undefined) {\n\t\tconst stringifiedDefaultValue =\n\t\t\ttypeof defaultValue === \"boolean\" ? `${defaultValue}` : defaultValue;\n\n\t\tresult = addLine(\n\t\t\t` * - **Default Value**: ${stringifiedDefaultValue}`,\n\t\t\tresult,\n\t\t);\n\t}\n\n\tconst apiIDPath = getAPIIDPath({\n\t\tpath: [...args.path, { name: args.name, model: args.field }],\n\t});\n\tresult = addLine(` * - **API ID Path**: ${apiIDPath}`, result);\n\n\tif (args.tabName) {\n\t\tresult = addLine(` * - **Tab**: ${args.tabName}`, result);\n\t}\n\n\tconst documentationURL = getDocumentationURL({ field: args.field });\n\tif (documentationURL) {\n\t\tresult = addLine(` * - **Documentation**: ${documentationURL}`, result);\n\t}\n\n\tresult = addLine(\" */\", result);\n\n\treturn result;\n}\n"],"names":["FIELD_DOCUMENTATION_URLS","getHumanReadableModelName","getHumanReadablePath","addLine","getAPIIDPath"],"mappings":"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"}
|
|
@@ -7,8 +7,7 @@ function getHumanReadableFieldType(args) {
|
|
|
7
7
|
var _a, _b;
|
|
8
8
|
switch (args.field.type) {
|
|
9
9
|
case "StructuredText": {
|
|
10
|
-
|
|
11
|
-
return isTitleField ? "Title" : "Rich Text";
|
|
10
|
+
return "Rich Text";
|
|
12
11
|
}
|
|
13
12
|
case "IntegrationFields": {
|
|
14
13
|
const catalog = (_a = args.field.config) == null ? void 0 : _a.catalog;
|
|
@@ -35,6 +34,31 @@ function getHumanReadableFieldType(args) {
|
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
}
|
|
37
|
+
function getDocumentationURL(args) {
|
|
38
|
+
var _a;
|
|
39
|
+
switch (args.field.type) {
|
|
40
|
+
case "Link": {
|
|
41
|
+
const urls = FIELD_DOCUMENTATION_URLS.Link;
|
|
42
|
+
switch ((_a = args.field.config) == null ? void 0 : _a.select) {
|
|
43
|
+
case "document": {
|
|
44
|
+
return urls.contentRelationship;
|
|
45
|
+
}
|
|
46
|
+
case "media": {
|
|
47
|
+
return urls.linkToMedia;
|
|
48
|
+
}
|
|
49
|
+
default: {
|
|
50
|
+
return urls.link;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
default: {
|
|
55
|
+
const url = FIELD_DOCUMENTATION_URLS[args.field.type];
|
|
56
|
+
if (typeof url === "string") {
|
|
57
|
+
return url;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
38
62
|
function buildFieldDocs(args) {
|
|
39
63
|
let result = "/**";
|
|
40
64
|
const humanReadableName = getHumanReadableModelName({
|
|
@@ -62,7 +86,7 @@ function buildFieldDocs(args) {
|
|
|
62
86
|
if (args.tabName) {
|
|
63
87
|
result = addLine(` * - **Tab**: ${args.tabName}`, result);
|
|
64
88
|
}
|
|
65
|
-
const documentationURL =
|
|
89
|
+
const documentationURL = getDocumentationURL({ field: args.field });
|
|
66
90
|
if (documentationURL) {
|
|
67
91
|
result = addLine(` * - **Documentation**: ${documentationURL}`, result);
|
|
68
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFieldDocs.js","sources":["../../../src/lib/buildFieldDocs.ts"],"sourcesContent":["import type { CustomTypeModelField } from \"@prismicio/client\";\n\nimport { FieldPath } from \"../types\";\n\nimport { FIELD_DOCUMENTATION_URLS } from \"../constants\";\n\nimport { addLine } from \"./addLine\";\nimport { getAPIIDPath } from \"./getAPIIDPath\";\nimport { getHumanReadableModelName } from \"./getHumanReadableModelName\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype GetFieldHumanReadableTypeArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getHumanReadableFieldType(\n\targs: GetFieldHumanReadableTypeArgs,\n): string {\n\tswitch (args.field.type) {\n\t\tcase \"StructuredText\": {\n\t\t\
|
|
1
|
+
{"version":3,"file":"buildFieldDocs.js","sources":["../../../src/lib/buildFieldDocs.ts"],"sourcesContent":["import type { CustomTypeModelField } from \"@prismicio/client\";\n\nimport { FieldPath } from \"../types\";\n\nimport { FIELD_DOCUMENTATION_URLS } from \"../constants\";\n\nimport { addLine } from \"./addLine\";\nimport { getAPIIDPath } from \"./getAPIIDPath\";\nimport { getHumanReadableModelName } from \"./getHumanReadableModelName\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype GetFieldHumanReadableTypeArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getHumanReadableFieldType(\n\targs: GetFieldHumanReadableTypeArgs,\n): string {\n\tswitch (args.field.type) {\n\t\tcase \"StructuredText\": {\n\t\t\treturn \"Rich Text\";\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalog = args.field.config?.catalog;\n\n\t\t\treturn `Integration Fields (Catalog: ${\n\t\t\t\tcatalog ? `\\`${catalog}\\`` : \"*unknown*\"\n\t\t\t})`;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\treturn \"Content Relationship\";\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\treturn \"Link to Media\";\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\treturn \"Link\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\treturn \"Slice Zone\";\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn args.field.type;\n\t\t}\n\t}\n}\n\ntype getDocumentationURLArgs = {\n\tfield: CustomTypeModelField;\n};\n\nfunction getDocumentationURL(args: getDocumentationURLArgs) {\n\tswitch (args.field.type) {\n\t\tcase \"Link\": {\n\t\t\tconst urls = FIELD_DOCUMENTATION_URLS.Link;\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\treturn urls.contentRelationship;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\treturn urls.linkToMedia;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\treturn urls.link;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdefault: {\n\t\t\tconst url =\n\t\t\t\tFIELD_DOCUMENTATION_URLS[\n\t\t\t\t\targs.field.type as keyof typeof FIELD_DOCUMENTATION_URLS\n\t\t\t\t];\n\n\t\t\tif (typeof url === \"string\") {\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype BuildFieldDocsArgs = {\n\tname: string;\n\tfield: CustomTypeModelField;\n\tpath: FieldPath;\n\ttabName?: string;\n};\n\nexport function buildFieldDocs(args: BuildFieldDocsArgs): string {\n\tlet result = \"/**\";\n\n\tconst humanReadableName = getHumanReadableModelName({\n\t\tmodel: args.field,\n\t\tname: args.name,\n\t});\n\tconst humanReadablePath = getHumanReadablePath({ path: args.path });\n\tconst humanReadableFieldType = getHumanReadableFieldType({\n\t\tfield: args.field,\n\t});\n\n\tresult = addLine(\n\t\t` * ${humanReadableName} field in *${humanReadablePath}*`,\n\t\tresult,\n\t);\n\n\tresult = addLine(\" *\", result);\n\n\tresult = addLine(` * - **Field Type**: ${humanReadableFieldType}`, result);\n\n\tconst placeholder =\n\t\t(args.field.config &&\n\t\t\t\"placeholder\" in args.field.config &&\n\t\t\targs.field.config.placeholder) ||\n\t\t`*None*`;\n\tresult = addLine(` * - **Placeholder**: ${placeholder}`, result);\n\n\tconst defaultValue =\n\t\targs.field.config && \"default_value\" in args.field.config\n\t\t\t? args.field.config.default_value\n\t\t\t: undefined;\n\tif (defaultValue !== undefined) {\n\t\tconst stringifiedDefaultValue =\n\t\t\ttypeof defaultValue === \"boolean\" ? `${defaultValue}` : defaultValue;\n\n\t\tresult = addLine(\n\t\t\t` * - **Default Value**: ${stringifiedDefaultValue}`,\n\t\t\tresult,\n\t\t);\n\t}\n\n\tconst apiIDPath = getAPIIDPath({\n\t\tpath: [...args.path, { name: args.name, model: args.field }],\n\t});\n\tresult = addLine(` * - **API ID Path**: ${apiIDPath}`, result);\n\n\tif (args.tabName) {\n\t\tresult = addLine(` * - **Tab**: ${args.tabName}`, result);\n\t}\n\n\tconst documentationURL = getDocumentationURL({ field: args.field });\n\tif (documentationURL) {\n\t\tresult = addLine(` * - **Documentation**: ${documentationURL}`, result);\n\t}\n\n\tresult = addLine(\" */\", result);\n\n\treturn result;\n}\n"],"names":[],"mappings":";;;;;AAeA,SAAS,0BACR,MAAmC;;AAE3B,UAAA,KAAK,MAAM,MAAM;AAAA,IACxB,KAAK,kBAAkB;AACf,aAAA;AAAA,IACR;AAAA,IAEA,KAAK,qBAAqB;AACnB,YAAA,WAAU,UAAK,MAAM,WAAX,mBAAmB;AAEnC,aAAO,gCACN,UAAU,KAAK,OAAO,OAAO,WAC9B;AAAA,IACD;AAAA,IAEA,KAAK,QAAQ;AACJ,eAAA,UAAK,MAAM,WAAX,mBAAmB,QAAQ;AAAA,QAClC,KAAK,YAAY;AACT,iBAAA;AAAA,QACR;AAAA,QAEA,KAAK,SAAS;AACN,iBAAA;AAAA,QACR;AAAA,QAEA,SAAS;AACD,iBAAA;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAAA,IAEA,KAAK,UAAU;AACP,aAAA;AAAA,IACR;AAAA,IAEA,SAAS;AACR,aAAO,KAAK,MAAM;AAAA,IACnB;AAAA,EACD;AACD;AAMA,SAAS,oBAAoB,MAA6B;;AACjD,UAAA,KAAK,MAAM,MAAM;AAAA,IACxB,KAAK,QAAQ;AACZ,YAAM,OAAO,yBAAyB;AAE9B,eAAA,UAAK,MAAM,WAAX,mBAAmB,QAAQ;AAAA,QAClC,KAAK,YAAY;AAChB,iBAAO,KAAK;AAAA,QACb;AAAA,QAEA,KAAK,SAAS;AACb,iBAAO,KAAK;AAAA,QACb;AAAA,QAEA,SAAS;AACR,iBAAO,KAAK;AAAA,QACb;AAAA,MACD;AAAA,IACD;AAAA,IAEA,SAAS;AACR,YAAM,MACL,yBACC,KAAK,MAAM,IAA6C;AAGtD,UAAA,OAAO,QAAQ,UAAU;AACrB,eAAA;AAAA,MACR;AAAA,IACD;AAAA,EACD;AACD;AASM,SAAU,eAAe,MAAwB;AACtD,MAAI,SAAS;AAEb,QAAM,oBAAoB,0BAA0B;AAAA,IACnD,OAAO,KAAK;AAAA,IACZ,MAAM,KAAK;AAAA,EAAA,CACX;AACD,QAAM,oBAAoB,qBAAqB,EAAE,MAAM,KAAK,MAAM;AAClE,QAAM,yBAAyB,0BAA0B;AAAA,IACxD,OAAO,KAAK;AAAA,EAAA,CACZ;AAED,WAAS,QACR,MAAM,iBAAiB,cAAc,iBAAiB,KACtD,MAAM;AAGE,WAAA,QAAQ,MAAM,MAAM;AAE7B,WAAS,QAAQ,wBAAwB,sBAAsB,IAAI,MAAM;AAEnE,QAAA,cACJ,KAAK,MAAM,UACX,iBAAiB,KAAK,MAAM,UAC5B,KAAK,MAAM,OAAO,eACnB;AACD,WAAS,QAAQ,yBAAyB,WAAW,IAAI,MAAM;AAEzD,QAAA,eACL,KAAK,MAAM,UAAU,mBAAmB,KAAK,MAAM,SAChD,KAAK,MAAM,OAAO,gBAClB;AACJ,MAAI,iBAAiB,QAAW;AAC/B,UAAM,0BACL,OAAO,iBAAiB,YAAY,GAAG,YAAY,KAAK;AAEzD,aAAS,QACR,2BAA2B,uBAAuB,IAClD,MAAM;AAAA,EAER;AAEA,QAAM,YAAY,aAAa;AAAA,IAC9B,MAAM,CAAC,GAAG,KAAK,MAAM,EAAE,MAAM,KAAK,MAAM,OAAO,KAAK,MAAA,CAAO;AAAA,EAAA,CAC3D;AACD,WAAS,QAAQ,yBAAyB,SAAS,IAAI,MAAM;AAE7D,MAAI,KAAK,SAAS;AACjB,aAAS,QAAQ,iBAAiB,KAAK,OAAO,IAAI,MAAM;AAAA,EACzD;AAEA,QAAM,mBAAmB,oBAAoB,EAAE,OAAO,KAAK,OAAO;AAClE,MAAI,kBAAkB;AACrB,aAAS,QAAQ,2BAA2B,gBAAgB,IAAI,MAAM;AAAA,EACvE;AAES,WAAA,QAAQ,OAAO,MAAM;AAEvB,SAAA;AACR;"}
|
|
@@ -101,12 +101,7 @@ function buildFieldProperty(args) {
|
|
|
101
101
|
break;
|
|
102
102
|
}
|
|
103
103
|
case "StructuredText": {
|
|
104
|
-
|
|
105
|
-
if (isTitleField) {
|
|
106
|
-
code = addLine.addLine(`${name}: prismic.TitleField;`, code);
|
|
107
|
-
} else {
|
|
108
|
-
code = addLine.addLine(`${name}: prismic.RichTextField;`, code);
|
|
109
|
-
}
|
|
104
|
+
code = addLine.addLine(`${name}: prismic.RichTextField;`, code);
|
|
110
105
|
break;
|
|
111
106
|
}
|
|
112
107
|
case "Select": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFieldProperties.cjs","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map((type) => `\"${type}\"`),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tconst isTitleField =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"single\" in args.field.config &&\n\t\t\t\targs.field.config.single &&\n\t\t\t\targs.field.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((blockType) => /heading/.test(blockType));\n\n\t\t\tif (isTitleField) {\n\t\t\t\tcode = addLine(`${name}: prismic.TitleField;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":["buildFieldDocs","addLine","buildUnion","CustomTypeModelFieldType","buildTypeName","getHumanReadablePath","source","stripIndent","addSection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildFieldProperties.cjs","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map((type) => `\"${type}\"`),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":["buildFieldDocs","addLine","buildUnion","CustomTypeModelFieldType","buildTypeName","getHumanReadablePath","source","stripIndent","addSection"],"mappings":"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"}
|
|
@@ -99,12 +99,7 @@ function buildFieldProperty(args) {
|
|
|
99
99
|
break;
|
|
100
100
|
}
|
|
101
101
|
case "StructuredText": {
|
|
102
|
-
|
|
103
|
-
if (isTitleField) {
|
|
104
|
-
code = addLine(`${name}: prismic.TitleField;`, code);
|
|
105
|
-
} else {
|
|
106
|
-
code = addLine(`${name}: prismic.RichTextField;`, code);
|
|
107
|
-
}
|
|
102
|
+
code = addLine(`${name}: prismic.RichTextField;`, code);
|
|
108
103
|
break;
|
|
109
104
|
}
|
|
110
105
|
case "Select": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFieldProperties.js","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map((type) => `\"${type}\"`),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tconst isTitleField =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"single\" in args.field.config &&\n\t\t\t\targs.field.config.single &&\n\t\t\t\targs.field.config.single\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.every((blockType) => /heading/.test(blockType));\n\n\t\t\tif (isTitleField) {\n\t\t\t\tcode = addLine(`${name}: prismic.TitleField;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":[],"mappings":";;;;;;;;AA6BA,SAAS,mBACR,MAA4B;;AAE5B,MAAI,OAAO,eAAe;AAAA,IACzB,MAAM,KAAK;AAAA,IACX,OAAO,KAAK;AAAA,IACZ,MAAM,KAAK;AAAA,IACX,SAAS,KAAK;AAAA,EAAA,CACd;AAED,QAAM,iBAAkC,CAAA;AACxC,QAAM,mBAA6B,CAAA;AAE7B,QAAA,OACL,KAAK,KAAK,SAAS,GAAG,KACtB,KAAK,KAAK,SAAS,GAAG,KACtB,SAAS,KAAK,KAAK,IAAI,IACpB,IAAI,KAAK,IAAI,MACb,KAAK;AAED,UAAA,KAAK,MAAM,MAAM;AAAA,IACxB,KAAK,OAAO;AAEX;AAAA,IACD;AAAA,IAEA,KAAK,WAAW;AACf,aAAO,QAAQ,GAAG,IAAI,2BAA2B,IAAI;AAErD;AAAA,IACD;AAAA,IAEA,KAAK,SAAS;AACb,aAAO,QAAQ,GAAG,IAAI,yBAAyB,IAAI;AAEnD;AAAA,IACD;AAAA,IAEA,KAAK,QAAQ;AACZ,aAAO,QAAQ,GAAG,IAAI,wBAAwB,IAAI;AAElD;AAAA,IACD;AAAA,IAEA,KAAK,SAAS;AACb,YAAM,gBAA0B,CAAA;AAE5B,WAAA,UAAK,aAAa,UAAlB,mBAAyB,eAAe;AAC3C,mBAAW,iBAAgB,UAAK,aAAa,UAAlB,mBAAyB,eAAe;AAClE,gBAAM,0BACL,UAAK,aAAa,UAAlB,mBAAyB,cAAc;AAExC,wBAAc,KACb,sBAAsB,YAAY,SAAS,sBAAsB,GAAG;AAAA,QAEtE;AAAA,MACD;AAEM,YAAA,qBAAqB,WAAW,aAAa;AAEnD,aACC,cAAc,SAAS,IACpB,QACA,GAAG,IAAI,mEAAmE,kBAAkB,MAC5F,IAAI,IAEJ,QAAQ,GAAG,IAAI,wBAAwB,IAAI;AAE/C;AAAA,IACD;AAAA,IAEA,KAAK,YAAY;AAChB,aAAO,QAAQ,GAAG,IAAI,4BAA4B,IAAI;AAEtD;AAAA,IACD;AAAA,IAEA,KAAK,SAAS;AAEZ,YAAA,UAAK,MAAM,WAAX,mBAAmB,eACnB,KAAK,MAAM,OAAO,WAAW,SAAS,GACrC;AACD,cAAM,iBAAiB,WACtB,KAAK,MAAM,OAAO,WAAW,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,GAAG,CAAC;AAG/D,eAAO,QAAQ,GAAG,IAAI,wBAAwB,cAAc,MAAM,IAAI;AAAA,MAAA,OAChE;AACN,eAAO,QAAQ,GAAG,IAAI,gCAAgC,IAAI;AAAA,MAC3D;AAEA;AAAA,IACD;AAAA,IAEA,KAAK,qBAAqB;AACzB,YAAM,gBAAc,UAAK,MAAM,WAAX,mBAAmB,YACpC,gBAAK,aAAa,sBAAlB,mBAAqC,iBAArC,mBACA,KAAK,MAAM,OAAO,WAElB;AAEH,UAAI,aAAa;AAChB,eAAO,QACN,GAAG,IAAI,8BAA8B,WAAW,MAChD,IAAI;AAAA,MAAA,OAEC;AACN,eAAO,QAAQ,GAAG,IAAI,+BAA+B,IAAI;AAAA,MAC1D;AAEA;AAAA,IACD;AAAA,IAEA,KAAK,QAAQ;AACZ,YAAM,WACL,KAAK,MAAM,UACX,cAAc,KAAK,MAAM,UACzB,MAAM,QAAQ,KAAK,MAAM,OAAO,QAAQ,KACxC,KAAK,MAAM,OAAO,SAAS,SAAS,IACjC,KAAK,MAAM,OAAO,SACjB,IAAI,CAAC,YAAY,IAAI,QAAQ,QAAQ,OAAO,KAAK,CAAC,GAAG,EACrD,KAAK,KAAK,IACX;AAEI,eAAA,UAAK,MAAM,WAAX,mBAAmB,QAAQ;AAAA,QAClC,KAAK,YAAY;AAChB,cACC,iBAAiB,KAAK,MAAM,UAC5B,KAAK,MAAM,OAAO,eAClB,KAAK,MAAM,OAAO,YAAY,SAAS,GACtC;AACD,kBAAM,qBAAqB,WAC1B,KAAK,MAAM,OAAO,YAAY,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,CAAC;AAGzD,mBAAO,QACN,GAAG,IAAI,sCAAsC,kBAAkB,MAC/D,IAAI;AAAA,UAAA,OAEC;AACN,mBAAO,QAAQ,GAAG,IAAI,uCAAuC,IAAI;AAAA,UAClE;AAEA;AAAA,QACD;AAAA,QAEA,KAAK,SAAS;AACb,iBAAO,QACN,GAAG,IAAI,kDAAkD,QAAQ,MACjE,IAAI;AAEL;AAAA,QACD;AAAA,QAEA,SAAS;AACJ,cAAA,OAAO,kEAAkE,QAAQ;AAEjF,eAAA,UAAK,MAAM,WAAX,mBAAmB,QAAQ;AAC9B,mBAAO,sBAAsB,IAAI;AAAA,UAClC;AAEA,iBAAO,QAAQ,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI;AACxC;AAAA,QACD;AAAA,MACD;AAEA;AAAA,IACD;AAAA,IAEA,KAAK,UAAU;AACd,aAAO,QAAQ,GAAG,IAAI,0BAA0B,IAAI;AAEpD;AAAA,IACD;AAAA,IAEA,KAAK,kBAAkB;AAChB,YAAA,eACL,KAAK,MAAM,UACX,YAAY,KAAK,MAAM,UACvB,KAAK,MAAM,OAAO,UAClB,KAAK,MAAM,OAAO,OAChB,MAAM,GAAG,EACT,MAAM,CAAC,cAAc,UAAU,KAAK,SAAS,CAAC;AAEjD,UAAI,cAAc;AACjB,eAAO,QAAQ,GAAG,IAAI,yBAAyB,IAAI;AAAA,MAAA,OAC7C;AACN,eAAO,QAAQ,GAAG,IAAI,4BAA4B,IAAI;AAAA,MACvD;AAEA;AAAA,IACD;AAAA,IAEA,KAAK,UAAU;AACd,YAAM,YACL,gBAAK,MAAM,WAAX,mBAAmB,YAAnB,mBAA4B,IAAI,CAAC,WAAW,IAAI,MAAM,SAAQ,CAAA;AAC/D,YAAM,cAAc,QAAQ,SAAS,WAAW,OAAO,IAAI;AAE3D,YAAM,aAAa,SAAQ,UAAK,MAAM,WAAX,mBAAmB,aAAa;AAE3D,UAAI,YAAY;AACf,eAAO,QACN,GAAG,IAAI,yBAAyB,WAAW,gBAC3C,IAAI;AAAA,MAAA,OAEC;AACN,eAAO,QACN,GAAG,IAAI,wBACN,QAAQ,SAAS,IAAI,IAAI,WAAW,MAAM,EAC3C,KACA,IAAI;AAAA,MAEN;AAEA;AAAA,IACD;AAAA,IAEA,KAAK,SAAS;AACb,aAAO,QAAQ,GAAG,IAAI,yBAAyB,IAAI;AAEnD;AAAA,IACD;AAAA,IAEA,KAAK,QAAQ;AACZ,aAAO,QAAQ,GAAG,IAAI,2BAA2B,IAAI;AAErD;AAAA,IACD;AAAA,IAEA,KAAK,aAAa;AACjB,aAAO,QAAQ,GAAG,IAAI,6BAA6B,IAAI;AAEvD;AAAA,IACD;AAAA,IAEA,KAAK,SAAS;AACb,YAAM,iBAAiB,KAAK,KAAK,OAChC,CAAC,SACA,KAAK,UAAU,UACf,UAAU,KAAK,SACf,KAAK,MAAM,SAAS,yBAAyB,KAAK;AAE9C,YAAA,gBAAgB,eAAe,SAAS;AAE1C,UAAA;AACJ,UACC,KAAK,KAAK,CAAC,EAAE,SACb,UAAU,KAAK,KAAK,CAAC,EAAE,SACvB,KAAK,KAAK,CAAC,EAAE,MAAM,SAAS,eAC3B;AACD,cAAM,CAAC,eAAe,mBAAmB,YAAY,IAAI,KAAK;AAE9D,mBAAW,cACV,cAAc,MACd,SACA,kBAAkB,MAClB,aAAa,MACb,GAAG,eAAe,IAAI,CAAC,SAAS,KAAK,IAAI,GACzC,KAAK,MACL,MAAM;AAAA,MAAA,OAED;AACN,mBAAW,cACV,KAAK,KAAK,CAAC,EAAE,MACb,YACA,QACA,GAAG,eAAe,IAAI,CAAC,SAAS,KAAK,IAAI,GACzC,KAAK,MACL,MAAM;AAAA,MAER;AAEA,YAAM,OAAkB;AAAA,QACvB,GAAG,KAAK;AAAA,QACR;AAAA,UACC;AAAA,UACA,OAAO,KAAK;AAAA,QACZ;AAAA,MAAA;AAEF,YAAM,oBAAoB,qBAAqB,EAAE,KAAM,CAAA;AAEvD,YAAM,sBAAsB,qBAAqB;AAAA,QAChD,UAAQ,UAAK,MAAM,WAAX,mBAAmB,WAAU,CAAE;AAAA,QACvC,cAAc,KAAK;AAAA,QACnB;AAAA,MAAA,CACA;AACc,qBAAA,KAAK,GAAG,oBAAoB,cAAc;AACxC,uBAAA,KAAK,GAAG,oBAAoB,gBAAgB;AAE7D,qBAAe,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA;AAAA,mBAES,iBAAiB;AAAA;AAAA,wBAEZ,QAAQ;AAAA,QACxB,oBAAoB,IAAI;AAAA;AAAA;AAAA,MAAA,CAG5B;AACD,uBAAiB,KAAK,QAAQ;AAE9B,UAAI,eAAe;AAClB,eAAO,QACN,GAAG,IAAI,uCAAuC,QAAQ,OACtD,IAAI;AAAA,MAAA,OAEC;AACN,eAAO,QACN,GAAG,IAAI,iCAAiC,QAAQ,OAChD,IAAI;AAAA,MAEN;AAEA;AAAA,IACD;AAAA,IAEA,KAAK,UAAU;AACd,YAAM,cAAwB,CAAA;AAE1B,WAAA,UAAK,MAAM,WAAX,mBAAmB,SAAS;AAC/B,mBAAW,YAAY,KAAK,MAAM,OAAO,SAAS;AACjD,gBAAM,SAAS,KAAK,MAAM,OAAO,QAAQ,QAAQ;AAE7C,cAAA,OAAO,SAAS,eAAe;AAWlC,wBAAY,KAAK,cAAc,UAAU,OAAO,CAAC;AAAA,UAAA,WACvC,OAAO,SAAS,SAAS;AACnC,kBAAM,YAAY,cACjB,KAAK,KAAK,CAAC,EAAE,MACb,YACA,QACA,KAAK,MACL,UACA,OAAO;AAGJ,gBAAA;AAEH,gBAAA,OAAO,YAAY,KACnB,OAAO,KAAK,OAAO,YAAY,CAAC,EAAE,SAAS,GAC1C;AACsB,qCAAA,cAAc,WAAW,SAAS;AAEzD,oBAAM,OAAkB;AAAA,gBACvB,GAAG,KAAK;AAAA,gBACR;AAAA,kBACC,MAAM,KAAK;AAAA,kBACX,OAAO,KAAK;AAAA,gBACZ;AAAA,gBACD;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,gBACP;AAAA,gBACD;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,gBACP;AAAA,cAAA;AAEF,oBAAM,oBAAoB,qBAAqB,EAAE,KAAM,CAAA;AAEvD,oBAAM,yBAAyB,qBAAqB;AAAA,gBACnD,QAAQ,OAAO,YAAY;AAAA,gBAC3B,cAAc,KAAK;AAAA,gBACnB;AAAA,cAAA,CACA;AACc,6BAAA,KAAK,GAAG,uBAAuB,cAAc;AAC3C,+BAAA,KAAK,GAAG,uBAAuB,gBAAgB;AAEhE,kBAAI,cAAc;AAAA;AAAA,iCAEQ,iBAAiB;AAAA;AAAA;AAG7B,4BAAA,uBAAuB,OAClC,QACA;AAAA,8BACoB,oBAAoB;AAAA,cACpC,uBAAuB,IAAI;AAAA;AAAA,aAG/B,WAAW,IAEX,QACA,oBAAoB,oBAAoB,OACxC,WAAW;AAGd,6BAAe,KAAK;AAAA,gBACnB,MAAM;AAAA,gBACN,MAAM;AAAA,cAAA,CACN;AACD,+BAAiB,KAAK,oBAAoB;AAAA,YAC3C;AAEI,gBAAA;AACA,gBAAA,OAAO,UAAU,OAAO,KAAK,OAAO,MAAM,EAAE,SAAS,GAAG;AACvC,kCAAA,cAAc,WAAW,MAAM;AAEnD,oBAAM,OAAkB;AAAA,gBACvB,GAAG,KAAK;AAAA,gBACR;AAAA,kBACC,MAAM,KAAK;AAAA,kBACX,OAAO,KAAK;AAAA,gBACZ;AAAA,gBACD;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,gBACP;AAAA,gBACD;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,gBACP;AAAA,cAAA;AAEF,oBAAM,oBAAoB,qBAAqB,EAAE,KAAM,CAAA;AAEvD,oBAAM,sBAAsB,qBAAqB;AAAA,gBAChD,QAAQ,OAAO;AAAA,gBACf,cAAc,KAAK;AAAA,gBACnB;AAAA,cAAA,CACA;AACc,6BAAA,KAAK,GAAG,oBAAoB,cAAc;AACxC,+BAAA,KAAK,GAAG,oBAAoB,gBAAgB;AAE7D,kBAAI,WAAW;AAAA;AAAA,8BAEQ,iBAAiB;AAAA;AAAA;AAG7B,yBAAA,oBAAoB,OAC5B,QACA;AAAA,8BACoB,iBAAiB;AAAA,cACjC,oBAAoB,IAAI;AAAA;AAAA,aAG5B,QAAQ,IAER,QAAQ,oBAAoB,iBAAiB,OAAO,QAAQ;AAE/D,6BAAe,KAAK;AAAA,gBACnB,MAAM;AAAA,gBACN,MAAM;AAAA,cAAA,CACN;AACD,+BAAiB,KAAK,iBAAiB;AAAA,YACxC;AAEA,2BAAe,KAAK;AAAA,cACnB,MAAM;AAAA,cACN,MAAM;AAAA;AAAA,wBAEW,qBAAqB;AAAA,gBACnC,MAAM;AAAA,kBACL,GAAG,KAAK;AAAA,kBACR;AAAA,oBACC,MAAM,KAAK;AAAA,oBACX,OAAO,KAAK;AAAA,kBACZ;AAAA,gBACD;AAAA,cAAA,CACD,CAAC;AAAA;AAAA,sBAEW,SAAS,qBAAqB,QAAQ,MACpD,uBACG,YAAY,oBAAoB,MAChC,uBACJ,KACC,oBAAoB,YAAY,iBAAiB,MAAM,OACxD;AAAA;AAAA,YAAA,CAEA;AAED,wBAAY,KAAK,SAAS;AAAA,UAC3B;AAAA,QACD;AAAA,MACD;AAEM,YAAA,kBAAkB,cACvB,KAAK,KAAK,CAAC,EAAE,MACb,YACA,QACA,KAAK,MACL,OAAO;AAEF,YAAA,cAAc,WAAW,WAAW;AAC1C,qBAAe,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,MAAM,QAAQ,eAAe,MAAM,WAAW;AAAA,MAAA,CAC9C;AACD,uBAAiB,KAAK,eAAe;AAErC,aAAO,QAAQ,GAAG,IAAI,uBAAuB,eAAe,MAAM,IAAI;AAEtE;AAAA,IACD;AAAA,IAEA,SAAS;AACR,aAAO,QAAQ,GAAG,IAAI,cAAc,IAAI;AAAA,IACzC;AAAA,EACD;AAEO,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;AAeM,SAAU,qBACf,MAA8B;AAE9B,MAAI,OAAO;AAEX,QAAM,iBAAkC,CAAA;AACxC,QAAM,mBAA6B,CAAA;AAExB,aAAA,QAAQ,KAAK,QAAQ;AACzB,UAAA,QAAQ,KAAK,OAAO,IAAI;AAE9B,UAAM,gBAAgB,mBAAmB;AAAA,MACxC;AAAA,MACA;AAAA,MACA,MAAM,KAAK;AAAA,MACX,cAAc,KAAK;AAAA,MACnB,SAAS,KAAK;AAAA,IAAA,CACd;AAEM,WAAA,WAAW,cAAc,MAAM,IAAI;AAE3B,mBAAA,KAAK,GAAG,cAAc,cAAc;AAClC,qBAAA,KAAK,GAAG,cAAc,gBAAgB;AAAA,EACxD;AAEO,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;"}
|
|
1
|
+
{"version":3,"file":"buildFieldProperties.js","sources":["../../../src/lib/buildFieldProperties.ts"],"sourcesContent":["import {\n\ttype CustomTypeModelField,\n\tCustomTypeModelFieldType,\n} from \"@prismicio/client\";\nimport { source, stripIndent } from \"common-tags\";\n\nimport { AuxiliaryType, FieldConfigs, FieldPath } from \"../types\";\n\nimport { addLine } from \"./addLine\";\nimport { addSection } from \"./addSection\";\nimport { buildFieldDocs } from \"./buildFieldDocs\";\nimport { buildTypeName } from \"./buildTypeName\";\nimport { buildUnion } from \"./buildUnion\";\nimport { getHumanReadablePath } from \"./getHumanReadablePath\";\n\ntype BuildFieldPropertyArgs = Pick<\n\tBuildFieldPropertiesArgs,\n\t\"path\" | \"fieldConfigs\" | \"tabName\"\n> & {\n\tname: string;\n\tfield: CustomTypeModelField;\n};\n\ntype BuildFieldPropertyReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nfunction buildFieldProperty(\n\targs: BuildFieldPropertyArgs,\n): BuildFieldPropertyReturnType {\n\tlet code = buildFieldDocs({\n\t\tname: args.name,\n\t\tfield: args.field,\n\t\tpath: args.path,\n\t\ttabName: args.tabName,\n\t});\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tconst name =\n\t\targs.name.includes(\"-\") ||\n\t\targs.name.includes(\":\") ||\n\t\t/^[0-9]/.test(args.name)\n\t\t\t? `\"${args.name}\"`\n\t\t\t: args.name;\n\n\tswitch (args.field.type) {\n\t\tcase \"UID\": {\n\t\t\t// UID fields are not included in Data.\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Boolean\": {\n\t\t\tcode = addLine(`${name}: prismic.BooleanField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Color\": {\n\t\t\tcode = addLine(`${name}: prismic.ColorField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Date\": {\n\t\t\tcode = addLine(`${name}: prismic.DateField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst providerTypes: string[] = [];\n\n\t\t\tif (args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\tfor (const providerType in args.fieldConfigs.embed?.providerTypes) {\n\t\t\t\t\tconst configuredProviderType =\n\t\t\t\t\t\targs.fieldConfigs.embed?.providerTypes[providerType];\n\n\t\t\t\t\tproviderTypes.push(\n\t\t\t\t\t\t`({ provider_name: \"${providerType}\" } & ${configuredProviderType})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst providerTypesUnion = buildUnion(providerTypes);\n\n\t\t\tcode =\n\t\t\t\tproviderTypes.length > 0\n\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t`${name}: prismic.EmbedField<prismic.AnyOEmbed & prismic.OEmbedExtra & (${providerTypesUnion})>`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t )\n\t\t\t\t\t: addLine(`${name}: prismic.EmbedField`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tcode = addLine(`${name}: prismic.GeoPointField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\tif (\n\t\t\t\targs.field.config?.thumbnails &&\n\t\t\t\targs.field.config.thumbnails.length > 0\n\t\t\t) {\n\t\t\t\tconst thumbnailNames = buildUnion(\n\t\t\t\t\targs.field.config.thumbnails.map((thumb) => `\"${thumb.name}\"`),\n\t\t\t\t);\n\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<${thumbnailNames}>;`, code);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.ImageField<never>;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"IntegrationFields\": {\n\t\t\tconst catalogType = args.field.config?.catalog\n\t\t\t\t? args.fieldConfigs.integrationFields?.catalogTypes?.[\n\t\t\t\t\t\targs.field.config.catalog\n\t\t\t\t ]\n\t\t\t\t: undefined;\n\n\t\t\tif (catalogType) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.IntegrationField<${catalogType}>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(`${name}: prismic.IntegrationField;`, code);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\tconst variants =\n\t\t\t\targs.field.config &&\n\t\t\t\t\"variants\" in args.field.config &&\n\t\t\t\tArray.isArray(args.field.config.variants) &&\n\t\t\t\targs.field.config.variants.length > 0\n\t\t\t\t\t? args.field.config.variants\n\t\t\t\t\t\t\t.map((variant) => `\"${variant.replace(/\\\"/g, '\\\\\"')}\"`)\n\t\t\t\t\t\t\t.join(\" | \")\n\t\t\t\t\t: \"never\";\n\n\t\t\tswitch (args.field.config?.select) {\n\t\t\t\tcase \"document\": {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\"customtypes\" in args.field.config &&\n\t\t\t\t\t\targs.field.config.customtypes &&\n\t\t\t\t\t\targs.field.config.customtypes.length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst customTypeIDsUnion = buildUnion(\n\t\t\t\t\t\t\targs.field.config.customtypes.map((type) => `\"${type}\"`),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t\t`${name}: prismic.ContentRelationshipField<${customTypeIDsUnion}>;`,\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode = addLine(`${name}: prismic.ContentRelationshipField;`, code);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"media\": {\n\t\t\t\t\tcode = addLine(\n\t\t\t\t\t\t`${name}: prismic.LinkToMediaField<prismic.FieldState, ${variants}>;`,\n\t\t\t\t\t\tcode,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tlet type = `prismic.LinkField<string, string, unknown, prismic.FieldState, ${variants}>`;\n\n\t\t\t\t\tif (args.field.config?.repeat) {\n\t\t\t\t\t\ttype = `prismic.Repeatable<${type}>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tcode = addLine(`${name}: ${type};`, code);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Number\": {\n\t\t\tcode = addLine(`${name}: prismic.NumberField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"StructuredText\": {\n\t\t\tcode = addLine(`${name}: prismic.RichTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Select\": {\n\t\t\tconst options: string[] =\n\t\t\t\targs.field.config?.options?.map((option) => `\"${option}\"`) || [];\n\t\t\tconst optionsType = options.length ? buildUnion(options) : \"string\";\n\n\t\t\tconst hasDefault = Boolean(args.field.config?.default_value);\n\n\t\t\tif (hasDefault) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField<${optionsType}, \"filled\">;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.SelectField${\n\t\t\t\t\t\toptions.length > 0 ? `<${optionsType}>` : \"\"\n\t\t\t\t\t};`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Table\": {\n\t\t\tcode = addLine(`${name}: prismic.TableField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Text\": {\n\t\t\tcode = addLine(`${name}: prismic.KeyTextField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Timestamp\": {\n\t\t\tcode = addLine(`${name}: prismic.TimestampField;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst groupPathParts = args.path.filter(\n\t\t\t\t(part) =>\n\t\t\t\t\tpart.model !== undefined &&\n\t\t\t\t\t\"type\" in part.model &&\n\t\t\t\t\tpart.model.type === CustomTypeModelFieldType.Group,\n\t\t\t);\n\t\t\tconst isNestedGroup = groupPathParts.length > 0;\n\n\t\t\tlet itemName;\n\t\t\tif (\n\t\t\t\targs.path[0].model &&\n\t\t\t\t\"type\" in args.path[0].model &&\n\t\t\t\targs.path[0].model.type === \"SharedSlice\"\n\t\t\t) {\n\t\t\t\tconst [slicePathPart, variationPathPart, zonePathPart] = args.path;\n\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\tslicePathPart.name,\n\t\t\t\t\t\"Slice\",\n\t\t\t\t\tvariationPathPart.name,\n\t\t\t\t\tzonePathPart.name,\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemName = buildTypeName(\n\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\"Document\",\n\t\t\t\t\t\"Data\",\n\t\t\t\t\t...groupPathParts.map((part) => part.name),\n\t\t\t\t\targs.name,\n\t\t\t\t\t\"Item\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst path: FieldPath = [\n\t\t\t\t...args.path,\n\t\t\t\t{\n\t\t\t\t\tname: name,\n\t\t\t\t\tmodel: args.field,\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\tfields: args.field.config?.fields || {},\n\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: itemName,\n\t\t\t\tcode: source`\n\t\t\t\t\t/**\n\t\t\t\t\t * Item in *${humanReadablePath}*\n\t\t\t\t\t */\n\t\t\t\t\texport interface ${itemName} {\n\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(itemName);\n\n\t\t\tif (isNestedGroup) {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.NestedGroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcode = addLine(\n\t\t\t\t\t`${name}: prismic.GroupField<Simplify<${itemName}>>;`,\n\t\t\t\t\tcode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst choiceNames: string[] = [];\n\n\t\t\tif (args.field.config?.choices) {\n\t\t\t\tfor (const choiceID in args.field.config.choices) {\n\t\t\t\t\tconst choice = args.field.config.choices[choiceID];\n\n\t\t\t\t\tif (choice.type === \"SharedSlice\") {\n\t\t\t\t\t\t// TODO: Verify that the Shared Slice\n\t\t\t\t\t\t// is provided to the global\n\t\t\t\t\t\t// `sharedSlices` array. If it is not,\n\t\t\t\t\t\t// the type won't exist, so we can't\n\t\t\t\t\t\t// add it to the union. We should\n\t\t\t\t\t\t// probably throw an error if we reach\n\t\t\t\t\t\t// that state, or maybe the input can\n\t\t\t\t\t\t// be validated early so we don't\n\t\t\t\t\t\t// generate any code using invalid\n\t\t\t\t\t\t// models.\n\t\t\t\t\t\tchoiceNames.push(buildTypeName(choiceID, \"Slice\"));\n\t\t\t\t\t} else if (choice.type === \"Slice\") {\n\t\t\t\t\t\tconst sliceName = buildTypeName(\n\t\t\t\t\t\t\targs.path[0].name,\n\t\t\t\t\t\t\t\"Document\",\n\t\t\t\t\t\t\t\"Data\",\n\t\t\t\t\t\t\targs.name,\n\t\t\t\t\t\t\tchoiceID,\n\t\t\t\t\t\t\t\"Slice\",\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tlet primaryInterfaceName: string | undefined;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tchoice[\"non-repeat\"] &&\n\t\t\t\t\t\t\tObject.keys(choice[\"non-repeat\"]).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tprimaryInterfaceName = buildTypeName(sliceName, \"Primary\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"primary\",\n\t\t\t\t\t\t\t\t\tlabel: \"Primary\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst primaryFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice[\"non-repeat\"],\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...primaryFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...primaryFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet primaryCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Primary content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\tprimaryCode = primaryFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${primaryInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${primaryFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(\n\t\t\t\t\t\t\t\t\t\t`export interface ${primaryInterfaceName} {}`,\n\t\t\t\t\t\t\t\t\t\tprimaryCode,\n\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: primaryInterfaceName,\n\t\t\t\t\t\t\t\tcode: primaryCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(primaryInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet itemInterfaceName: string | undefined;\n\t\t\t\t\t\tif (choice.repeat && Object.keys(choice.repeat).length > 0) {\n\t\t\t\t\t\t\titemInterfaceName = buildTypeName(sliceName, \"Item\");\n\n\t\t\t\t\t\t\tconst path: FieldPath = [\n\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: choiceID,\n\t\t\t\t\t\t\t\t\tmodel: choice,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"items\",\n\t\t\t\t\t\t\t\t\tlabel: \"Items\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tconst humanReadablePath = getHumanReadablePath({ path });\n\n\t\t\t\t\t\t\tconst itemFieldProperties = buildFieldProperties({\n\t\t\t\t\t\t\t\tfields: choice.repeat,\n\t\t\t\t\t\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tauxiliaryTypes.push(...itemFieldProperties.auxiliaryTypes);\n\t\t\t\t\t\t\tcontentTypeNames.push(...itemFieldProperties.contentTypeNames);\n\n\t\t\t\t\t\t\tlet itemCode = stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Item content in *${humanReadablePath}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\titemCode = itemFieldProperties.code\n\t\t\t\t\t\t\t\t? addLine(\n\t\t\t\t\t\t\t\t\t\tsource`\n\t\t\t\t\t\t\t\t\t\t\texport interface ${itemInterfaceName} {\n\t\t\t\t\t\t\t\t\t\t\t\t${itemFieldProperties.code}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\titemCode,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: addLine(`export interface ${itemInterfaceName} {}`, itemCode);\n\n\t\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\t\tname: itemInterfaceName,\n\t\t\t\t\t\t\t\tcode: itemCode,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontentTypeNames.push(itemInterfaceName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tauxiliaryTypes.push({\n\t\t\t\t\t\t\tname: sliceName,\n\t\t\t\t\t\t\tcode: stripIndent`\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Slice for *${getHumanReadablePath({\n\t\t\t\t\t\t\t\t\t\tpath: [\n\t\t\t\t\t\t\t\t\t\t\t...args.path,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: args.name,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel: args.field,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t})}*\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\texport type ${sliceName} = prismic.Slice<\"${choiceID}\", ${\n\t\t\t\t\t\t\t\tprimaryInterfaceName\n\t\t\t\t\t\t\t\t\t? `Simplify<${primaryInterfaceName}>`\n\t\t\t\t\t\t\t\t\t: `Record<string, never>`\n\t\t\t\t\t\t\t}, ${\n\t\t\t\t\t\t\t\titemInterfaceName ? `Simplify<${itemInterfaceName}>` : `never`\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tchoiceNames.push(sliceName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst choiceUnionName = buildTypeName(\n\t\t\t\targs.path[0].name,\n\t\t\t\t\"Document\",\n\t\t\t\t\"Data\",\n\t\t\t\targs.name,\n\t\t\t\t\"Slice\",\n\t\t\t);\n\t\t\tconst choiceUnion = buildUnion(choiceNames);\n\t\t\tauxiliaryTypes.push({\n\t\t\t\tname: choiceUnionName,\n\t\t\t\tcode: `type ${choiceUnionName} = ${choiceUnion}`,\n\t\t\t});\n\t\t\tcontentTypeNames.push(choiceUnionName);\n\n\t\t\tcode = addLine(`${name}: prismic.SliceZone<${choiceUnionName}>;`, code);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tcode = addLine(`${name}: unknown;`, code);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n\ntype BuildFieldPropertiesArgs = {\n\tfields: Record<string, CustomTypeModelField>;\n\tpath: FieldPath;\n\tfieldConfigs: FieldConfigs;\n\ttabName?: string;\n};\n\ntype BuildFieldPropertiesReturnType = {\n\tcode: string;\n\tauxiliaryTypes: AuxiliaryType[];\n\tcontentTypeNames: string[];\n};\n\nexport function buildFieldProperties(\n\targs: BuildFieldPropertiesArgs,\n): BuildFieldPropertiesReturnType {\n\tlet code = \"\";\n\n\tconst auxiliaryTypes: AuxiliaryType[] = [];\n\tconst contentTypeNames: string[] = [];\n\n\tfor (const name in args.fields) {\n\t\tconst field = args.fields[name];\n\n\t\tconst fieldProperty = buildFieldProperty({\n\t\t\tname,\n\t\t\tfield,\n\t\t\tpath: args.path,\n\t\t\tfieldConfigs: args.fieldConfigs,\n\t\t\ttabName: args.tabName,\n\t\t});\n\n\t\tcode = addSection(fieldProperty.code, code);\n\n\t\tauxiliaryTypes.push(...fieldProperty.auxiliaryTypes);\n\t\tcontentTypeNames.push(...fieldProperty.contentTypeNames);\n\t}\n\n\treturn {\n\t\tcode,\n\t\tauxiliaryTypes,\n\t\tcontentTypeNames,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prismic-ts-codegen",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "An experimental Prismic model-to-TypeScript-type generator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"quick-lru": "^6.1.2"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@prismicio/client": "7.16.
|
|
64
|
-
"@prismicio/mock": "0.7.
|
|
63
|
+
"@prismicio/client": "7.16.1",
|
|
64
|
+
"@prismicio/mock": "0.7.1",
|
|
65
65
|
"@size-limit/preset-small-lib": "^8.2.6",
|
|
66
66
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
67
67
|
"@types/common-tags": "^1.8.1",
|
|
@@ -82,9 +82,6 @@
|
|
|
82
82
|
"vite-plugin-sdk": "^0.1.1",
|
|
83
83
|
"vitest": "^0.33.0"
|
|
84
84
|
},
|
|
85
|
-
"overrides": {
|
|
86
|
-
"@prismicio/client": "7.16.0-alpha.1"
|
|
87
|
-
},
|
|
88
85
|
"peerDependencies": {
|
|
89
86
|
"@prismicio/client": "^6.6 || ^7",
|
|
90
87
|
"@prismicio/types": "^0.2.8"
|
package/src/cli/types.ts
CHANGED
|
@@ -51,8 +51,8 @@ export type Config = {
|
|
|
51
51
|
* repositories, set `includeCreateClientInterface` to `true` for the
|
|
52
52
|
* primary repository and `false` or any other repository. The generated
|
|
53
53
|
* `AllDocumentTypes` type for non-primary repositories can be provided to
|
|
54
|
-
* `@prismicio/client`'s `
|
|
55
|
-
* to type the client.
|
|
54
|
+
* `@prismicio/client`'s `createClient()` function as its only type
|
|
55
|
+
* parameter to type the client.
|
|
56
56
|
*
|
|
57
57
|
* @defaultValue `true`
|
|
58
58
|
*/
|
package/src/constants.ts
CHANGED
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
import type { CustomTypeModelFieldType } from "@prismicio/client";
|
|
2
2
|
|
|
3
3
|
export const CUSTOM_TYPES_DOCUMENTATION_URL =
|
|
4
|
-
"https://prismic.io/docs/
|
|
4
|
+
"https://prismic.io/docs/content-modeling";
|
|
5
5
|
|
|
6
|
-
export const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/
|
|
6
|
+
export const SHARED_SLICES_DOCUMENTATION_URL = "https://prismic.io/docs/slices";
|
|
7
7
|
|
|
8
|
-
export const FIELD_DOCUMENTATION_URLS
|
|
8
|
+
export const FIELD_DOCUMENTATION_URLS = {
|
|
9
|
+
UID: "https://prismic.io/docs/fields/uid",
|
|
10
|
+
Boolean: "https://prismic.io/docs/fields/boolean",
|
|
11
|
+
Color: "https://prismic.io/docs/fields/color",
|
|
12
|
+
Date: "https://prismic.io/docs/fields/date",
|
|
13
|
+
Timestamp: "https://prismic.io/docs/fields/timestamp",
|
|
14
|
+
Number: "https://prismic.io/docs/fields/number",
|
|
15
|
+
Text: "https://prismic.io/docs/fields/text",
|
|
16
|
+
Select: "https://prismic.io/docs/fields/select",
|
|
17
|
+
StructuredText: "https://prismic.io/docs/fields/rich-text",
|
|
18
|
+
Image: "https://prismic.io/docs/fields/image",
|
|
19
|
+
Link: {
|
|
20
|
+
contentRelationship: "https://prismic.io/docs/fields/content-relationship",
|
|
21
|
+
link: "https://prismic.io/docs/fields/link",
|
|
22
|
+
linkToMedia: "https://prismic.io/docs/fields/link-to-media",
|
|
23
|
+
},
|
|
24
|
+
Embed: "https://prismic.io/docs/fields/embed",
|
|
25
|
+
GeoPoint: "https://prismic.io/docs/fields/geopoint",
|
|
26
|
+
Table: "https://prismic.io/docs/fields/table",
|
|
27
|
+
Group: "https://prismic.io/docs/fields/repeatable-group",
|
|
28
|
+
IntegrationFields: "https://prismic.io/docs/fields/integration",
|
|
29
|
+
Slices: "https://prismic.io/docs/slices",
|
|
30
|
+
Choice: "https://prismic.io/docs/slices",
|
|
31
|
+
} satisfies Record<
|
|
9
32
|
Exclude<
|
|
10
33
|
(typeof CustomTypeModelFieldType)[keyof typeof CustomTypeModelFieldType],
|
|
11
34
|
"Range" | "Separator"
|
|
12
35
|
>,
|
|
13
|
-
string
|
|
14
|
-
|
|
15
|
-
UID: "https://prismic.io/docs/field#uid",
|
|
16
|
-
Boolean: "https://prismic.io/docs/field#boolean",
|
|
17
|
-
Color: "https://prismic.io/docs/field#color",
|
|
18
|
-
Date: "https://prismic.io/docs/field#date",
|
|
19
|
-
Timestamp: "https://prismic.io/docs/field#timestamp",
|
|
20
|
-
Number: "https://prismic.io/docs/field#number",
|
|
21
|
-
Text: "https://prismic.io/docs/field#key-text",
|
|
22
|
-
Select: "https://prismic.io/docs/field#select",
|
|
23
|
-
StructuredText: "https://prismic.io/docs/field#rich-text-title",
|
|
24
|
-
Image: "https://prismic.io/docs/field#image",
|
|
25
|
-
Link: "https://prismic.io/docs/field#link-content-relationship",
|
|
26
|
-
Embed: "https://prismic.io/docs/field#embed",
|
|
27
|
-
GeoPoint: "https://prismic.io/docs/field#geopoint",
|
|
28
|
-
Table: "https://prismic.io/docs/field#table",
|
|
29
|
-
Group: "https://prismic.io/docs/field#group",
|
|
30
|
-
IntegrationFields: "https://prismic.io/docs/field#integration",
|
|
31
|
-
Slices: "https://prismic.io/docs/field#slices",
|
|
32
|
-
Choice: "https://prismic.io/docs/field#slices",
|
|
33
|
-
};
|
|
36
|
+
string | Record<string, string>
|
|
37
|
+
>;
|
|
@@ -18,15 +18,7 @@ function getHumanReadableFieldType(
|
|
|
18
18
|
): string {
|
|
19
19
|
switch (args.field.type) {
|
|
20
20
|
case "StructuredText": {
|
|
21
|
-
|
|
22
|
-
args.field.config &&
|
|
23
|
-
"single" in args.field.config &&
|
|
24
|
-
args.field.config.single &&
|
|
25
|
-
args.field.config.single
|
|
26
|
-
.split(",")
|
|
27
|
-
.every((blockType) => /heading/.test(blockType));
|
|
28
|
-
|
|
29
|
-
return isTitleField ? "Title" : "Rich Text";
|
|
21
|
+
return "Rich Text";
|
|
30
22
|
}
|
|
31
23
|
|
|
32
24
|
case "IntegrationFields": {
|
|
@@ -63,6 +55,43 @@ function getHumanReadableFieldType(
|
|
|
63
55
|
}
|
|
64
56
|
}
|
|
65
57
|
|
|
58
|
+
type getDocumentationURLArgs = {
|
|
59
|
+
field: CustomTypeModelField;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
function getDocumentationURL(args: getDocumentationURLArgs) {
|
|
63
|
+
switch (args.field.type) {
|
|
64
|
+
case "Link": {
|
|
65
|
+
const urls = FIELD_DOCUMENTATION_URLS.Link;
|
|
66
|
+
|
|
67
|
+
switch (args.field.config?.select) {
|
|
68
|
+
case "document": {
|
|
69
|
+
return urls.contentRelationship;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
case "media": {
|
|
73
|
+
return urls.linkToMedia;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
default: {
|
|
77
|
+
return urls.link;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
default: {
|
|
83
|
+
const url =
|
|
84
|
+
FIELD_DOCUMENTATION_URLS[
|
|
85
|
+
args.field.type as keyof typeof FIELD_DOCUMENTATION_URLS
|
|
86
|
+
];
|
|
87
|
+
|
|
88
|
+
if (typeof url === "string") {
|
|
89
|
+
return url;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
66
95
|
type BuildFieldDocsArgs = {
|
|
67
96
|
name: string;
|
|
68
97
|
field: CustomTypeModelField;
|
|
@@ -121,10 +150,7 @@ export function buildFieldDocs(args: BuildFieldDocsArgs): string {
|
|
|
121
150
|
result = addLine(` * - **Tab**: ${args.tabName}`, result);
|
|
122
151
|
}
|
|
123
152
|
|
|
124
|
-
const documentationURL =
|
|
125
|
-
FIELD_DOCUMENTATION_URLS[
|
|
126
|
-
args.field.type as keyof typeof FIELD_DOCUMENTATION_URLS
|
|
127
|
-
];
|
|
153
|
+
const documentationURL = getDocumentationURL({ field: args.field });
|
|
128
154
|
if (documentationURL) {
|
|
129
155
|
result = addLine(` * - **Documentation**: ${documentationURL}`, result);
|
|
130
156
|
}
|
|
@@ -203,19 +203,7 @@ function buildFieldProperty(
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
case "StructuredText": {
|
|
206
|
-
|
|
207
|
-
args.field.config &&
|
|
208
|
-
"single" in args.field.config &&
|
|
209
|
-
args.field.config.single &&
|
|
210
|
-
args.field.config.single
|
|
211
|
-
.split(",")
|
|
212
|
-
.every((blockType) => /heading/.test(blockType));
|
|
213
|
-
|
|
214
|
-
if (isTitleField) {
|
|
215
|
-
code = addLine(`${name}: prismic.TitleField;`, code);
|
|
216
|
-
} else {
|
|
217
|
-
code = addLine(`${name}: prismic.RichTextField;`, code);
|
|
218
|
-
}
|
|
206
|
+
code = addLine(`${name}: prismic.RichTextField;`, code);
|
|
219
207
|
|
|
220
208
|
break;
|
|
221
209
|
}
|