@datocms/cma-client 5.1.10 → 5.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +575 -0
- package/dist/cjs/fieldTypes/boolean.js +2 -2
- package/dist/cjs/fieldTypes/boolean.js.map +1 -1
- package/dist/cjs/fieldTypes/color.js +2 -2
- package/dist/cjs/fieldTypes/color.js.map +1 -1
- package/dist/cjs/fieldTypes/date.js +2 -3
- package/dist/cjs/fieldTypes/date.js.map +1 -1
- package/dist/cjs/fieldTypes/date_time.js +2 -2
- package/dist/cjs/fieldTypes/date_time.js.map +1 -1
- package/dist/cjs/fieldTypes/file.js +33 -5
- package/dist/cjs/fieldTypes/file.js.map +1 -1
- package/dist/cjs/fieldTypes/float.js +2 -2
- package/dist/cjs/fieldTypes/float.js.map +1 -1
- package/dist/cjs/fieldTypes/gallery.js +20 -5
- package/dist/cjs/fieldTypes/gallery.js.map +1 -1
- package/dist/cjs/fieldTypes/index.js +2 -2
- package/dist/cjs/fieldTypes/index.js.map +1 -1
- package/dist/cjs/fieldTypes/integer.js +2 -2
- package/dist/cjs/fieldTypes/integer.js.map +1 -1
- package/dist/cjs/fieldTypes/json.js +2 -3
- package/dist/cjs/fieldTypes/json.js.map +1 -1
- package/dist/cjs/fieldTypes/lat_lon.js +2 -2
- package/dist/cjs/fieldTypes/lat_lon.js.map +1 -1
- package/dist/cjs/fieldTypes/link.js +4 -4
- package/dist/cjs/fieldTypes/link.js.map +1 -1
- package/dist/cjs/fieldTypes/links.js +5 -3
- package/dist/cjs/fieldTypes/links.js.map +1 -1
- package/dist/cjs/fieldTypes/rich_text.js +4 -6
- package/dist/cjs/fieldTypes/rich_text.js.map +1 -1
- package/dist/cjs/fieldTypes/seo.js +2 -3
- package/dist/cjs/fieldTypes/seo.js.map +1 -1
- package/dist/cjs/fieldTypes/single_block.js +7 -7
- package/dist/cjs/fieldTypes/single_block.js.map +1 -1
- package/dist/cjs/fieldTypes/slug.js +2 -3
- package/dist/cjs/fieldTypes/slug.js.map +1 -1
- package/dist/cjs/fieldTypes/string.js +2 -2
- package/dist/cjs/fieldTypes/string.js.map +1 -1
- package/dist/cjs/fieldTypes/structured_text.js +4 -6
- package/dist/cjs/fieldTypes/structured_text.js.map +1 -1
- package/dist/cjs/fieldTypes/text.js +2 -3
- package/dist/cjs/fieldTypes/text.js.map +1 -1
- package/dist/cjs/fieldTypes/video.js +2 -2
- package/dist/cjs/fieldTypes/video.js.map +1 -1
- package/dist/cjs/generated/Client.js +1 -1
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utilities/buildBlockRecord.js +8 -7
- package/dist/cjs/utilities/buildBlockRecord.js.map +1 -1
- package/dist/cjs/utilities/inspectItem.js +397 -0
- package/dist/cjs/utilities/inspectItem.js.map +1 -0
- package/dist/cjs/utilities/{blocks.js → nonRecursiveBlocks.js} +106 -111
- package/dist/cjs/utilities/nonRecursiveBlocks.js.map +1 -0
- package/dist/cjs/utilities/{fieldValue.js → normalizedFieldValues.js} +53 -41
- package/dist/cjs/utilities/normalizedFieldValues.js.map +1 -0
- package/dist/cjs/utilities/recursiveBlocks.js +121 -80
- package/dist/cjs/utilities/recursiveBlocks.js.map +1 -1
- package/dist/cjs/utilities/schemaRepository.js +2 -2
- package/dist/esm/fieldTypes/boolean.d.ts +1 -1
- package/dist/esm/fieldTypes/boolean.js +2 -2
- package/dist/esm/fieldTypes/boolean.js.map +1 -1
- package/dist/esm/fieldTypes/color.d.ts +1 -1
- package/dist/esm/fieldTypes/color.js +2 -2
- package/dist/esm/fieldTypes/color.js.map +1 -1
- package/dist/esm/fieldTypes/date.d.ts +1 -1
- package/dist/esm/fieldTypes/date.js +2 -3
- package/dist/esm/fieldTypes/date.js.map +1 -1
- package/dist/esm/fieldTypes/date_time.d.ts +1 -1
- package/dist/esm/fieldTypes/date_time.js +2 -2
- package/dist/esm/fieldTypes/date_time.js.map +1 -1
- package/dist/esm/fieldTypes/file.d.ts +68 -1
- package/dist/esm/fieldTypes/file.js +29 -3
- package/dist/esm/fieldTypes/file.js.map +1 -1
- package/dist/esm/fieldTypes/float.d.ts +1 -1
- package/dist/esm/fieldTypes/float.js +2 -2
- package/dist/esm/fieldTypes/float.js.map +1 -1
- package/dist/esm/fieldTypes/gallery.d.ts +27 -11
- package/dist/esm/fieldTypes/gallery.js +17 -4
- package/dist/esm/fieldTypes/gallery.js.map +1 -1
- package/dist/esm/fieldTypes/index.d.ts +2 -2
- package/dist/esm/fieldTypes/index.js +2 -2
- package/dist/esm/fieldTypes/index.js.map +1 -1
- package/dist/esm/fieldTypes/integer.d.ts +1 -1
- package/dist/esm/fieldTypes/integer.js +2 -2
- package/dist/esm/fieldTypes/integer.js.map +1 -1
- package/dist/esm/fieldTypes/json.d.ts +1 -1
- package/dist/esm/fieldTypes/json.js +2 -3
- package/dist/esm/fieldTypes/json.js.map +1 -1
- package/dist/esm/fieldTypes/lat_lon.d.ts +1 -1
- package/dist/esm/fieldTypes/lat_lon.js +2 -2
- package/dist/esm/fieldTypes/lat_lon.js.map +1 -1
- package/dist/esm/fieldTypes/link.d.ts +1 -1
- package/dist/esm/fieldTypes/link.js +4 -4
- package/dist/esm/fieldTypes/link.js.map +1 -1
- package/dist/esm/fieldTypes/links.d.ts +1 -1
- package/dist/esm/fieldTypes/links.js +5 -3
- package/dist/esm/fieldTypes/links.js.map +1 -1
- package/dist/esm/fieldTypes/rich_text.d.ts +1 -1
- package/dist/esm/fieldTypes/rich_text.js +4 -6
- package/dist/esm/fieldTypes/rich_text.js.map +1 -1
- package/dist/esm/fieldTypes/seo.d.ts +1 -1
- package/dist/esm/fieldTypes/seo.js +2 -3
- package/dist/esm/fieldTypes/seo.js.map +1 -1
- package/dist/esm/fieldTypes/single_block.d.ts +1 -1
- package/dist/esm/fieldTypes/single_block.js +7 -7
- package/dist/esm/fieldTypes/single_block.js.map +1 -1
- package/dist/esm/fieldTypes/slug.d.ts +1 -1
- package/dist/esm/fieldTypes/slug.js +2 -3
- package/dist/esm/fieldTypes/slug.js.map +1 -1
- package/dist/esm/fieldTypes/string.d.ts +1 -1
- package/dist/esm/fieldTypes/string.js +2 -2
- package/dist/esm/fieldTypes/string.js.map +1 -1
- package/dist/esm/fieldTypes/structured_text.d.ts +1 -1
- package/dist/esm/fieldTypes/structured_text.js +4 -6
- package/dist/esm/fieldTypes/structured_text.js.map +1 -1
- package/dist/esm/fieldTypes/text.d.ts +1 -1
- package/dist/esm/fieldTypes/text.js +2 -3
- package/dist/esm/fieldTypes/text.js.map +1 -1
- package/dist/esm/fieldTypes/video.d.ts +1 -1
- package/dist/esm/fieldTypes/video.js +2 -2
- package/dist/esm/fieldTypes/video.js.map +1 -1
- package/dist/esm/generated/Client.js +1 -1
- package/dist/esm/index.d.ts +4 -4
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utilities/buildBlockRecord.js +9 -8
- package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
- package/dist/esm/utilities/inspectItem.d.ts +8 -0
- package/dist/esm/utilities/inspectItem.js +393 -0
- package/dist/esm/utilities/inspectItem.js.map +1 -0
- package/dist/esm/utilities/itemDefinition.d.ts +28 -4
- package/dist/esm/utilities/nonRecursiveBlocks.d.ts +179 -0
- package/dist/esm/utilities/{blocks.js → nonRecursiveBlocks.js} +91 -96
- package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -0
- package/dist/{types/utilities/fieldValue.d.ts → esm/utilities/normalizedFieldValues.d.ts} +15 -14
- package/dist/esm/utilities/{fieldValue.js → normalizedFieldValues.js} +39 -28
- package/dist/esm/utilities/normalizedFieldValues.js.map +1 -0
- package/dist/esm/utilities/recursiveBlocks.d.ts +92 -9
- package/dist/esm/utilities/recursiveBlocks.js +113 -72
- package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
- package/dist/esm/utilities/schemaRepository.d.ts +2 -2
- package/dist/esm/utilities/schemaRepository.js +2 -2
- package/dist/types/fieldTypes/boolean.d.ts +1 -1
- package/dist/types/fieldTypes/color.d.ts +1 -1
- package/dist/types/fieldTypes/date.d.ts +1 -1
- package/dist/types/fieldTypes/date_time.d.ts +1 -1
- package/dist/types/fieldTypes/file.d.ts +68 -1
- package/dist/types/fieldTypes/float.d.ts +1 -1
- package/dist/types/fieldTypes/gallery.d.ts +27 -11
- package/dist/types/fieldTypes/index.d.ts +2 -2
- package/dist/types/fieldTypes/integer.d.ts +1 -1
- package/dist/types/fieldTypes/json.d.ts +1 -1
- package/dist/types/fieldTypes/lat_lon.d.ts +1 -1
- package/dist/types/fieldTypes/link.d.ts +1 -1
- package/dist/types/fieldTypes/links.d.ts +1 -1
- package/dist/types/fieldTypes/rich_text.d.ts +1 -1
- package/dist/types/fieldTypes/seo.d.ts +1 -1
- package/dist/types/fieldTypes/single_block.d.ts +1 -1
- package/dist/types/fieldTypes/slug.d.ts +1 -1
- package/dist/types/fieldTypes/string.d.ts +1 -1
- package/dist/types/fieldTypes/structured_text.d.ts +1 -1
- package/dist/types/fieldTypes/text.d.ts +1 -1
- package/dist/types/fieldTypes/video.d.ts +1 -1
- package/dist/types/index.d.ts +4 -4
- package/dist/types/utilities/inspectItem.d.ts +8 -0
- package/dist/types/utilities/itemDefinition.d.ts +28 -4
- package/dist/types/utilities/nonRecursiveBlocks.d.ts +179 -0
- package/dist/{esm/utilities/fieldValue.d.ts → types/utilities/normalizedFieldValues.d.ts} +15 -14
- package/dist/types/utilities/recursiveBlocks.d.ts +92 -9
- package/dist/types/utilities/schemaRepository.d.ts +2 -2
- package/package.json +3 -3
- package/src/fieldTypes/boolean.ts +5 -3
- package/src/fieldTypes/color.ts +5 -3
- package/src/fieldTypes/date.ts +5 -4
- package/src/fieldTypes/date_time.ts +5 -3
- package/src/fieldTypes/file.ts +98 -4
- package/src/fieldTypes/float.ts +5 -3
- package/src/fieldTypes/gallery.ts +53 -20
- package/src/fieldTypes/index.ts +2 -3
- package/src/fieldTypes/integer.ts +5 -3
- package/src/fieldTypes/json.ts +5 -4
- package/src/fieldTypes/lat_lon.ts +5 -3
- package/src/fieldTypes/link.ts +7 -5
- package/src/fieldTypes/links.ts +8 -4
- package/src/fieldTypes/rich_text.ts +7 -7
- package/src/fieldTypes/seo.ts +5 -4
- package/src/fieldTypes/single_block.ts +10 -8
- package/src/fieldTypes/slug.ts +5 -4
- package/src/fieldTypes/string.ts +5 -3
- package/src/fieldTypes/structured_text.ts +7 -7
- package/src/fieldTypes/text.ts +5 -4
- package/src/fieldTypes/video.ts +5 -3
- package/src/generated/Client.ts +1 -1
- package/src/index.ts +4 -4
- package/src/utilities/buildBlockRecord.ts +16 -15
- package/src/utilities/inspectItem.ts +590 -0
- package/src/utilities/itemDefinition.ts +30 -3
- package/src/utilities/{blocks.ts → nonRecursiveBlocks.ts} +170 -136
- package/src/utilities/{fieldValue.ts → normalizedFieldValues.ts} +70 -30
- package/src/utilities/recursiveBlocks.ts +186 -171
- package/src/utilities/schemaRepository.ts +2 -2
- package/dist/cjs/utilities/blocks.js.map +0 -1
- package/dist/cjs/utilities/fieldValue.js.map +0 -1
- package/dist/esm/utilities/blocks.d.ts +0 -180
- package/dist/esm/utilities/blocks.js.map +0 -1
- package/dist/esm/utilities/fieldValue.js.map +0 -1
- package/dist/types/utilities/blocks.d.ts +0 -180
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import { formatAsTree, inspectionTreeNodes, } from 'datocms-structured-text-utils';
|
|
13
|
+
import { isBooleanFieldValue, isColorFieldValue, isDateFieldValue, isDateTimeFieldValue, isFileFieldValue, isFileFieldValueAsRequest, isFloatFieldValue, isGalleryFieldValue, isGalleryFieldValueAsRequest, isIntegerFieldValue, isJsonFieldValue, isLatLonFieldValue, isLinkFieldValue, isLinksFieldValue, isRichTextFieldValue, isRichTextFieldValueAsRequest, isRichTextFieldValueWithNestedBlocks, isSeoFieldValue, isSingleBlockFieldValue, isSingleBlockFieldValueAsRequest, isSingleBlockFieldValueWithNestedBlocks, isSlugFieldValue, isStringFieldValue, isStructuredTextFieldValue, isStructuredTextFieldValueAsRequest, isStructuredTextFieldValueWithNestedBlocks, isTextFieldValue, isVideoFieldValue, } from '../fieldTypes';
|
|
14
|
+
import { buildBlockRecord } from '../index';
|
|
15
|
+
import { isLocalizedFieldValue } from './normalizedFieldValues';
|
|
16
|
+
const fieldTypeHandlers = [
|
|
17
|
+
{ guard: isBooleanFieldValue, inspect: booleanInspectionTreeNodes },
|
|
18
|
+
{ guard: isFloatFieldValue, inspect: floatInspectionTreeNodes },
|
|
19
|
+
{ guard: isIntegerFieldValue, inspect: integerInspectionTreeNodes },
|
|
20
|
+
{ guard: isColorFieldValue, inspect: colorInspectionTreeNodes },
|
|
21
|
+
{ guard: isDateFieldValue, inspect: dateInspectionTreeNodes },
|
|
22
|
+
{ guard: isDateTimeFieldValue, inspect: dateTimeInspectionTreeNodes },
|
|
23
|
+
{ guard: isGalleryFieldValue, inspect: galleryInspectionTreeNodes },
|
|
24
|
+
{ guard: isGalleryFieldValueAsRequest, inspect: galleryInspectionTreeNodes },
|
|
25
|
+
{ guard: isFileFieldValue, inspect: fileInspectionTreeNodes },
|
|
26
|
+
{ guard: isFileFieldValueAsRequest, inspect: fileInspectionTreeNodes },
|
|
27
|
+
{ guard: isJsonFieldValue, inspect: jsonInspectionTreeNodes },
|
|
28
|
+
{ guard: isSlugFieldValue, inspect: slugInspectionTreeNodes },
|
|
29
|
+
{ guard: isStringFieldValue, inspect: stringInspectionTreeNodes },
|
|
30
|
+
{ guard: isTextFieldValue, inspect: textInspectionTreeNodes },
|
|
31
|
+
{ guard: isLatLonFieldValue, inspect: latLonInspectionTreeNodes },
|
|
32
|
+
{ guard: isLinkFieldValue, inspect: linkInspectionTreeNodes },
|
|
33
|
+
{ guard: isLinksFieldValue, inspect: linksInspectionTreeNodes },
|
|
34
|
+
{ guard: isSeoFieldValue, inspect: seoFieldInspectionTreeNodes },
|
|
35
|
+
{ guard: isVideoFieldValue, inspect: videoFieldInspectionTreeNodes },
|
|
36
|
+
{
|
|
37
|
+
guard: isStructuredTextFieldValue,
|
|
38
|
+
inspect: structuredTextInspectionTreeNodes,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
guard: isStructuredTextFieldValueAsRequest,
|
|
42
|
+
inspect: structuredTextInspectionTreeNodes,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
guard: isStructuredTextFieldValueWithNestedBlocks,
|
|
46
|
+
inspect: structuredTextInspectionTreeNodes,
|
|
47
|
+
},
|
|
48
|
+
{ guard: isSingleBlockFieldValue, inspect: singleBlockInspectionTreeNodes },
|
|
49
|
+
{
|
|
50
|
+
guard: isSingleBlockFieldValueAsRequest,
|
|
51
|
+
inspect: singleBlockInspectionTreeNodes,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
guard: isSingleBlockFieldValueWithNestedBlocks,
|
|
55
|
+
inspect: singleBlockInspectionTreeNodes,
|
|
56
|
+
},
|
|
57
|
+
{ guard: isRichTextFieldValue, inspect: richTextInspectionTreeNodes },
|
|
58
|
+
{
|
|
59
|
+
guard: isRichTextFieldValueAsRequest,
|
|
60
|
+
inspect: richTextInspectionTreeNodes,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
guard: isRichTextFieldValueWithNestedBlocks,
|
|
64
|
+
inspect: richTextInspectionTreeNodes,
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
function createChildNode(attributeName, inspectResult) {
|
|
68
|
+
if (typeof inspectResult === 'string') {
|
|
69
|
+
return { label: `${attributeName}: ${inspectResult}` };
|
|
70
|
+
}
|
|
71
|
+
if (Array.isArray(inspectResult)) {
|
|
72
|
+
return {
|
|
73
|
+
label: attributeName,
|
|
74
|
+
nodes: inspectResult,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// Single TreeNode
|
|
78
|
+
return {
|
|
79
|
+
label: attributeName,
|
|
80
|
+
nodes: [inspectResult],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function inspectFieldValue(value, options) {
|
|
84
|
+
if (isLocalizedFieldValue(value)) {
|
|
85
|
+
for (const handler of fieldTypeHandlers) {
|
|
86
|
+
if (Object.values(value).every((localeValue) => handler.guard(localeValue))) {
|
|
87
|
+
const localeEntries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
|
|
88
|
+
return localeEntries.map(([locale, localeValue]) => {
|
|
89
|
+
const inspectResult = handler.inspect(localeValue, options);
|
|
90
|
+
if (typeof inspectResult === 'string') {
|
|
91
|
+
return { label: `${locale}: ${inspectResult}` };
|
|
92
|
+
}
|
|
93
|
+
if (Array.isArray(inspectResult)) {
|
|
94
|
+
return {
|
|
95
|
+
label: locale,
|
|
96
|
+
nodes: inspectResult,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// Single TreeNode
|
|
100
|
+
return {
|
|
101
|
+
label: locale,
|
|
102
|
+
nodes: [inspectResult],
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
for (const handler of fieldTypeHandlers) {
|
|
109
|
+
if (handler.guard(value)) {
|
|
110
|
+
return handler.inspect(value, options);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Fallback for unknown field types
|
|
114
|
+
return `UNKNOWN: ${JSON.stringify(value)}`;
|
|
115
|
+
}
|
|
116
|
+
function extractAttributes(item) {
|
|
117
|
+
if ('attributes' in item) {
|
|
118
|
+
return item.attributes;
|
|
119
|
+
}
|
|
120
|
+
const serializedItem = buildBlockRecord(item);
|
|
121
|
+
const _a = serializedItem.attributes, { __itemTypeId } = _a, rest = __rest(_a, ["__itemTypeId"]);
|
|
122
|
+
return rest;
|
|
123
|
+
}
|
|
124
|
+
export function inspectItem(item, options) {
|
|
125
|
+
return formatAsTree(itemInspectionTreeNodes(item, options));
|
|
126
|
+
}
|
|
127
|
+
function itemInspectionTreeNodes(item, options) {
|
|
128
|
+
var _a, _b;
|
|
129
|
+
let itemTypeId;
|
|
130
|
+
if ('relationships' in item && item.relationships) {
|
|
131
|
+
const relationships = item.relationships;
|
|
132
|
+
if ((_b = (_a = relationships.item_type) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id) {
|
|
133
|
+
itemTypeId = relationships.item_type.data.id;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const rootLabel = [
|
|
137
|
+
'Item',
|
|
138
|
+
'id' in item ? JSON.stringify(item.id) : null,
|
|
139
|
+
itemTypeId ? `(item_type: ${JSON.stringify(itemTypeId)})` : null,
|
|
140
|
+
]
|
|
141
|
+
.filter(Boolean)
|
|
142
|
+
.join(' ');
|
|
143
|
+
const nodes = [];
|
|
144
|
+
for (const [attributeName, attributeValue] of Object.entries(extractAttributes(item))) {
|
|
145
|
+
const inspectResult = inspectFieldValue(attributeValue, options);
|
|
146
|
+
nodes.push(createChildNode(attributeName, inspectResult));
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
label: rootLabel,
|
|
150
|
+
nodes: nodes.length > 0 ? nodes : undefined,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function structuredTextInspectionTreeNodes(value, options) {
|
|
154
|
+
if (value === null)
|
|
155
|
+
return 'null';
|
|
156
|
+
return inspectionTreeNodes(value, {
|
|
157
|
+
maxWidth: (options === null || options === void 0 ? void 0 : options.maxWidth) || 80,
|
|
158
|
+
blockFormatter: (block, maxWidth) => {
|
|
159
|
+
if (typeof block === 'string') {
|
|
160
|
+
return JSON.stringify(block);
|
|
161
|
+
}
|
|
162
|
+
return itemInspectionTreeNodes(block, options);
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
function singleBlockInspectionTreeNodes(value, options) {
|
|
167
|
+
if (value === null)
|
|
168
|
+
return 'null';
|
|
169
|
+
if (typeof value === 'string')
|
|
170
|
+
return JSON.stringify(value);
|
|
171
|
+
return itemInspectionTreeNodes(value, options);
|
|
172
|
+
}
|
|
173
|
+
function richTextInspectionTreeNodes(value, options) {
|
|
174
|
+
if (value === null)
|
|
175
|
+
return 'null';
|
|
176
|
+
return value.map((item, index) => {
|
|
177
|
+
const result = singleBlockInspectionTreeNodes(item, options);
|
|
178
|
+
if (typeof result === 'string') {
|
|
179
|
+
return { label: `[${index}] ${result}` };
|
|
180
|
+
}
|
|
181
|
+
result.label = `[${index}] ${result.label}`;
|
|
182
|
+
return result;
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
function booleanInspectionTreeNodes(value) {
|
|
186
|
+
return JSON.stringify(value);
|
|
187
|
+
}
|
|
188
|
+
function colorInspectionTreeNodes(value) {
|
|
189
|
+
if (value === null)
|
|
190
|
+
return 'null';
|
|
191
|
+
const { red, green, blue, alpha } = value;
|
|
192
|
+
const hex = `#${red.toString(16).padStart(2, '0').toUpperCase()}${green.toString(16).padStart(2, '0').toUpperCase()}${blue.toString(16).padStart(2, '0').toUpperCase()}`;
|
|
193
|
+
if (alpha === 255) {
|
|
194
|
+
return hex;
|
|
195
|
+
}
|
|
196
|
+
const alphaPercent = Math.round((alpha / 255) * 100);
|
|
197
|
+
return `${hex} ${alphaPercent}%`;
|
|
198
|
+
}
|
|
199
|
+
function dateInspectionTreeNodes(value) {
|
|
200
|
+
if (value === null)
|
|
201
|
+
return 'null';
|
|
202
|
+
return value;
|
|
203
|
+
}
|
|
204
|
+
function dateTimeInspectionTreeNodes(value) {
|
|
205
|
+
if (value === null)
|
|
206
|
+
return 'null';
|
|
207
|
+
return value;
|
|
208
|
+
}
|
|
209
|
+
function fileInspectionTreeNodes(value, options) {
|
|
210
|
+
if (value === null)
|
|
211
|
+
return 'null';
|
|
212
|
+
const nodes = [];
|
|
213
|
+
nodes.push({ label: `upload_id: ${JSON.stringify(value.upload_id)}` });
|
|
214
|
+
if (value.alt) {
|
|
215
|
+
nodes.push({
|
|
216
|
+
label: `alt: ${JSON.stringify(truncate(value.alt, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
if (value.title) {
|
|
220
|
+
nodes.push({
|
|
221
|
+
label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
if (value.custom_data && Object.keys(value.custom_data).length > 0) {
|
|
225
|
+
nodes.push({
|
|
226
|
+
label: `custom_data: ${truncate(JSON.stringify(value.custom_data), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80)}`,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
if (value.focal_point) {
|
|
230
|
+
const x = value.focal_point.x * 100;
|
|
231
|
+
const y = value.focal_point.y * 100;
|
|
232
|
+
nodes.push({ label: `focal_point: x=${x}% y=${y}%` });
|
|
233
|
+
}
|
|
234
|
+
return nodes;
|
|
235
|
+
}
|
|
236
|
+
function floatInspectionTreeNodes(value) {
|
|
237
|
+
if (value === null)
|
|
238
|
+
return 'null';
|
|
239
|
+
return value.toString();
|
|
240
|
+
}
|
|
241
|
+
function galleryInspectionTreeNodes(value, options) {
|
|
242
|
+
if (!value || value.length === 0)
|
|
243
|
+
return '[]';
|
|
244
|
+
const itemNodes = value.map((item, index) => {
|
|
245
|
+
const nodes = [];
|
|
246
|
+
nodes.push({
|
|
247
|
+
label: `upload_id: ${JSON.stringify(item.upload_id)}`,
|
|
248
|
+
});
|
|
249
|
+
if (item.alt) {
|
|
250
|
+
nodes.push({
|
|
251
|
+
label: `alt: ${JSON.stringify(truncate(item.alt, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
if (item.title) {
|
|
255
|
+
nodes.push({
|
|
256
|
+
label: `title: ${JSON.stringify(truncate(item.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
if (item.custom_data && Object.keys(item.custom_data).length > 0) {
|
|
260
|
+
nodes.push({
|
|
261
|
+
label: `custom_data: ${truncate(JSON.stringify(item.custom_data), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80)}`,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
if (item.focal_point) {
|
|
265
|
+
const x = item.focal_point.x * 100;
|
|
266
|
+
const y = item.focal_point.y * 100;
|
|
267
|
+
nodes.push({ label: `focal_point: x=${x}% y=${y}%` });
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
label: `[${index}]`,
|
|
271
|
+
nodes: nodes,
|
|
272
|
+
};
|
|
273
|
+
});
|
|
274
|
+
return itemNodes;
|
|
275
|
+
}
|
|
276
|
+
function integerInspectionTreeNodes(value) {
|
|
277
|
+
if (value === null)
|
|
278
|
+
return 'null';
|
|
279
|
+
return value.toString();
|
|
280
|
+
}
|
|
281
|
+
function jsonInspectionTreeNodes(value, options) {
|
|
282
|
+
if (value === null)
|
|
283
|
+
return 'null';
|
|
284
|
+
return truncate(JSON.stringify(JSON.parse(value)), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80);
|
|
285
|
+
}
|
|
286
|
+
function latLonInspectionTreeNodes(value) {
|
|
287
|
+
if (value === null)
|
|
288
|
+
return 'null';
|
|
289
|
+
return [
|
|
290
|
+
{ label: `latitude: ${value.latitude}` },
|
|
291
|
+
{ label: `longitude: ${value.longitude}` },
|
|
292
|
+
];
|
|
293
|
+
}
|
|
294
|
+
function linkInspectionTreeNodes(value) {
|
|
295
|
+
if (value === null)
|
|
296
|
+
return 'null';
|
|
297
|
+
return JSON.stringify(value);
|
|
298
|
+
}
|
|
299
|
+
function linksInspectionTreeNodes(value) {
|
|
300
|
+
if (value === null)
|
|
301
|
+
return 'null';
|
|
302
|
+
return value.map((itemId, index) => ({
|
|
303
|
+
label: `[${index}]: ${JSON.stringify(itemId)}`,
|
|
304
|
+
}));
|
|
305
|
+
}
|
|
306
|
+
function seoFieldInspectionTreeNodes(value, options) {
|
|
307
|
+
if (value === null)
|
|
308
|
+
return 'null';
|
|
309
|
+
const nodes = [];
|
|
310
|
+
if (value.title) {
|
|
311
|
+
nodes.push({
|
|
312
|
+
label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
if (value.description) {
|
|
316
|
+
nodes.push({
|
|
317
|
+
label: `description: ${JSON.stringify(truncate(value.description, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
if (value.image) {
|
|
321
|
+
nodes.push({
|
|
322
|
+
label: `image: ${value.image}`,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
if (value.twitter_card) {
|
|
326
|
+
nodes.push({
|
|
327
|
+
label: `twitter_card: ${value.twitter_card}`,
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
if (value.no_index !== undefined) {
|
|
331
|
+
nodes.push({
|
|
332
|
+
label: `no_index: ${value.no_index}`,
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
return nodes;
|
|
336
|
+
}
|
|
337
|
+
function slugInspectionTreeNodes(value, options) {
|
|
338
|
+
if (value === null)
|
|
339
|
+
return 'null';
|
|
340
|
+
return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
|
|
341
|
+
}
|
|
342
|
+
function stringInspectionTreeNodes(value, options) {
|
|
343
|
+
if (value === null)
|
|
344
|
+
return 'null';
|
|
345
|
+
return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
|
|
346
|
+
}
|
|
347
|
+
function textInspectionTreeNodes(value, options) {
|
|
348
|
+
if (value === null)
|
|
349
|
+
return 'null';
|
|
350
|
+
return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
|
|
351
|
+
}
|
|
352
|
+
function videoFieldInspectionTreeNodes(value, options) {
|
|
353
|
+
if (value === null)
|
|
354
|
+
return 'null';
|
|
355
|
+
const nodes = [];
|
|
356
|
+
nodes.push({ label: `provider: ${value.provider}` });
|
|
357
|
+
nodes.push({ label: `provider_uid: ${value.provider_uid}` });
|
|
358
|
+
nodes.push({ label: `url: ${value.url}` });
|
|
359
|
+
nodes.push({ label: `size: ${value.width}⨯${value.height}px` });
|
|
360
|
+
nodes.push({ label: `thumbnail_url: ${value.thumbnail_url}` });
|
|
361
|
+
if (value.title) {
|
|
362
|
+
nodes.push({
|
|
363
|
+
label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
return nodes;
|
|
367
|
+
}
|
|
368
|
+
function localizedFieldValueInspectionTreeNodes(value, options) {
|
|
369
|
+
const localeEntries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
|
|
370
|
+
return localeEntries.map(([locale, localeValue]) => {
|
|
371
|
+
const inspectResult = inspectFieldValue(localeValue, options);
|
|
372
|
+
if (typeof inspectResult === 'string') {
|
|
373
|
+
return { label: `${locale}: ${inspectResult}` };
|
|
374
|
+
}
|
|
375
|
+
if (Array.isArray(inspectResult)) {
|
|
376
|
+
return {
|
|
377
|
+
label: locale,
|
|
378
|
+
nodes: inspectResult,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
// Single TreeNode
|
|
382
|
+
return {
|
|
383
|
+
label: locale,
|
|
384
|
+
nodes: [inspectResult],
|
|
385
|
+
};
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
function truncate(text, maxWidth) {
|
|
389
|
+
if (text.length <= maxWidth)
|
|
390
|
+
return text;
|
|
391
|
+
return `${text.slice(0, maxWidth - 3)}...`;
|
|
392
|
+
}
|
|
393
|
+
//# sourceMappingURL=inspectItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspectItem.js","sourceRoot":"","sources":["../../../src/utilities/inspectItem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { BooleanFieldValue, ColorFieldValue, DateFieldValue, DateTimeFieldValue, FileFieldValue, FloatFieldValue, GalleryFieldValue, IntegerFieldValue, JsonFieldValue, LatLonFieldValue, LinkFieldValue, LinksFieldValue, RichTextFieldValue, RichTextFieldValueAsRequest, RichTextFieldValueWithNestedBlocks, SeoFieldValue, SingleBlockFieldValue, SingleBlockFieldValueAsRequest, SingleBlockFieldValueWithNestedBlocks, SlugFieldValue, StringFieldValue, StructuredTextFieldValue, StructuredTextFieldValueAsRequest, StructuredTextFieldValueWithNestedBlocks, TextFieldValue, VideoFieldValue } from '../fieldTypes';
|
|
2
|
-
import type { LocalizedFieldValue } from './
|
|
1
|
+
import type { BooleanFieldValue, ColorFieldValue, DateFieldValue, DateTimeFieldValue, FileFieldValue, FileFieldValueAsRequest, FloatFieldValue, GalleryFieldValue, GalleryFieldValueAsRequest, IntegerFieldValue, JsonFieldValue, LatLonFieldValue, LinkFieldValue, LinksFieldValue, RichTextFieldValue, RichTextFieldValueAsRequest, RichTextFieldValueWithNestedBlocks, SeoFieldValue, SingleBlockFieldValue, SingleBlockFieldValueAsRequest, SingleBlockFieldValueWithNestedBlocks, SlugFieldValue, StringFieldValue, StructuredTextFieldValue, StructuredTextFieldValueAsRequest, StructuredTextFieldValueWithNestedBlocks, TextFieldValue, VideoFieldValue } from '../fieldTypes';
|
|
2
|
+
import type { LocalizedFieldValue } from './normalizedFieldValues';
|
|
3
3
|
/** Base field definition */
|
|
4
4
|
type BaseFieldDefinition<Type extends string> = {
|
|
5
5
|
type: Type;
|
|
@@ -32,7 +32,7 @@ export type ItemDefinition<ItemTypeId extends string = string, FieldValues exten
|
|
|
32
32
|
itemTypeId: ItemTypeId;
|
|
33
33
|
fields: FieldValues;
|
|
34
34
|
};
|
|
35
|
-
/** Standard field values */
|
|
35
|
+
/** Standard field values (response format) */
|
|
36
36
|
type FieldTypeToValue = {
|
|
37
37
|
boolean: BooleanFieldValue;
|
|
38
38
|
color: ColorFieldValue;
|
|
@@ -56,6 +56,30 @@ type FieldTypeToValue = {
|
|
|
56
56
|
video: VideoFieldValue;
|
|
57
57
|
unknown: unknown;
|
|
58
58
|
};
|
|
59
|
+
/** Request field values (request format with optional metadata) */
|
|
60
|
+
type FieldTypeToValueAsRequest = {
|
|
61
|
+
boolean: BooleanFieldValue;
|
|
62
|
+
color: ColorFieldValue;
|
|
63
|
+
date: DateFieldValue;
|
|
64
|
+
date_time: DateTimeFieldValue;
|
|
65
|
+
file: FileFieldValueAsRequest;
|
|
66
|
+
float: FloatFieldValue;
|
|
67
|
+
gallery: GalleryFieldValueAsRequest;
|
|
68
|
+
integer: IntegerFieldValue;
|
|
69
|
+
json: JsonFieldValue;
|
|
70
|
+
lat_lon: LatLonFieldValue;
|
|
71
|
+
link: LinkFieldValue;
|
|
72
|
+
links: LinksFieldValue;
|
|
73
|
+
rich_text: RichTextFieldValueAsRequest;
|
|
74
|
+
seo: SeoFieldValue;
|
|
75
|
+
single_block: SingleBlockFieldValueAsRequest;
|
|
76
|
+
slug: SlugFieldValue;
|
|
77
|
+
string: StringFieldValue;
|
|
78
|
+
structured_text: StructuredTextFieldValueAsRequest;
|
|
79
|
+
text: TextFieldValue;
|
|
80
|
+
video: VideoFieldValue;
|
|
81
|
+
unknown: unknown;
|
|
82
|
+
};
|
|
59
83
|
/** Localized wrapper */
|
|
60
84
|
type LocalizeIfNeeded<T extends FieldDefinition, Value, Locales extends string> = T extends {
|
|
61
85
|
localized: true;
|
|
@@ -67,7 +91,7 @@ type FieldDefinitionToFieldValueAsRequest<T extends FieldDefinition, Locales ext
|
|
|
67
91
|
blocks: any;
|
|
68
92
|
} ? ToItemDefinitionAsRequest<B> : never, T extends {
|
|
69
93
|
inline_blocks: any;
|
|
70
|
-
} ? ToItemDefinitionAsRequest<I> : never>, Locales> : LocalizeIfNeeded<T,
|
|
94
|
+
} ? ToItemDefinitionAsRequest<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValueAsRequest[T['type']], Locales>;
|
|
71
95
|
type FieldDefinitionToFieldValueWithNestedBlocks<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueWithNestedBlocks<T extends {
|
|
72
96
|
blocks: any;
|
|
73
97
|
} ? ToItemDefinitionWithNestedBlocks<B> : never, T extends {
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DatoCMS Block Field Value Processing Utilities
|
|
3
|
+
*
|
|
4
|
+
* This utility provides a unified interface for working with blocks embedded within DatoCMS field values.
|
|
5
|
+
* DatoCMS supports three field types that can contain blocks:
|
|
6
|
+
* - Modular Content fields: arrays of blocks
|
|
7
|
+
* - Single Block fields: a single block
|
|
8
|
+
* - Structured Text fields: complex document structures with embedded blocks
|
|
9
|
+
*
|
|
10
|
+
* The challenge this solves: Each field type stores blocks differently and requires different
|
|
11
|
+
* traversal logic, making it complex to perform operations like transformations, filtering,
|
|
12
|
+
* or searching across blocks regardless of their containing field type.
|
|
13
|
+
*
|
|
14
|
+
* This utility abstracts away these differences, providing a consistent API to:
|
|
15
|
+
* - Visit/iterate through all blocks in any field type
|
|
16
|
+
* - Transform blocks while preserving field structure
|
|
17
|
+
* - Filter blocks based on conditions
|
|
18
|
+
* - Search for specific blocks
|
|
19
|
+
* - Perform functional operations (map, reduce, some, every)
|
|
20
|
+
*
|
|
21
|
+
* All functions come in both sync and async variants to support different use cases,
|
|
22
|
+
* particularly useful when block transformations require async operations like API calls.
|
|
23
|
+
*/
|
|
24
|
+
import { type TreePath } from 'datocms-structured-text-utils';
|
|
25
|
+
import type { BlockItemInARequest } from '../fieldTypes';
|
|
26
|
+
import type * as ApiTypes from '../generated/ApiTypes';
|
|
27
|
+
/**
|
|
28
|
+
* Visit every block in a field value, calling the visitor function for each block found.
|
|
29
|
+
* Supports rich text, single block, and structured text field types.
|
|
30
|
+
*
|
|
31
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
32
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to visit
|
|
33
|
+
* @param visitor - Synchronous function called for each block. Receives the block item and its path
|
|
34
|
+
*/
|
|
35
|
+
export declare function nonRecursiveVisitBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => void): void;
|
|
36
|
+
/**
|
|
37
|
+
* Visit every block in a field value, calling the visitor function for each block found.
|
|
38
|
+
* Supports rich text, single block, and structured text field types.
|
|
39
|
+
*
|
|
40
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
41
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to visit
|
|
42
|
+
* @param visitor - Asynchronous function called for each block. Receives the block item and its path
|
|
43
|
+
* @returns Promise that resolves when all blocks have been visited
|
|
44
|
+
*/
|
|
45
|
+
export declare function nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => Promise<void>): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Transform blocks in a field value by applying a mapping function to each block.
|
|
48
|
+
* Creates a new field value structure with transformed blocks while preserving the original structure.
|
|
49
|
+
* Supports rich text, single block, and structured text field types.
|
|
50
|
+
*
|
|
51
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
52
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to transform
|
|
53
|
+
* @param mapper - Synchronous function that transforms each block. Receives block item and path, returns new block
|
|
54
|
+
* @returns The new field value with transformed blocks
|
|
55
|
+
*/
|
|
56
|
+
export declare function nonRecursiveMapBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => BlockItemInARequest): unknown;
|
|
57
|
+
/**
|
|
58
|
+
* Transform blocks in a field value by applying a mapping function to each block.
|
|
59
|
+
* Creates a new field value structure with transformed blocks while preserving the original structure.
|
|
60
|
+
* Supports rich text, single block, and structured text field types.
|
|
61
|
+
*
|
|
62
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
63
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to transform
|
|
64
|
+
* @param mapper - Asynchronous function that transforms each block. Receives block item and path, returns new block
|
|
65
|
+
* @returns Promise that resolves to the new field value with transformed blocks
|
|
66
|
+
*/
|
|
67
|
+
export declare function nonRecursiveMapBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => Promise<BlockItemInARequest>): Promise<unknown>;
|
|
68
|
+
/**
|
|
69
|
+
* Find all blocks that match the predicate function.
|
|
70
|
+
* Searches through all blocks in the non-localized field value and returns all matches.
|
|
71
|
+
*
|
|
72
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
73
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to search
|
|
74
|
+
* @param predicate - Synchronous function that tests each block. Should return true for matching blocks
|
|
75
|
+
* @returns Array of objects, each containing a matching block and its path
|
|
76
|
+
*/
|
|
77
|
+
export declare function nonRecursiveFindAllBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): Array<{
|
|
78
|
+
item: BlockItemInARequest;
|
|
79
|
+
path: TreePath;
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* Find all blocks that match the predicate function.
|
|
83
|
+
* Searches through all blocks in the non-localized field value and returns all matches.
|
|
84
|
+
*
|
|
85
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
86
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to search
|
|
87
|
+
* @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
|
|
88
|
+
* @returns Promise that resolves to an array of objects, each containing a matching block and its path
|
|
89
|
+
*/
|
|
90
|
+
export declare function nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<Array<{
|
|
91
|
+
item: BlockItemInARequest;
|
|
92
|
+
path: TreePath;
|
|
93
|
+
}>>;
|
|
94
|
+
/**
|
|
95
|
+
* Filter blocks in a field value, removing those that don't match the predicate.
|
|
96
|
+
* Creates a new field value containing only blocks that pass the predicate test.
|
|
97
|
+
* Preserves the original field value structure and hierarchy.
|
|
98
|
+
*
|
|
99
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
100
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to filter
|
|
101
|
+
* @param predicate - Synchronous function that tests each block. Blocks returning false are removed
|
|
102
|
+
* @returns The new field value with filtered blocks
|
|
103
|
+
*/
|
|
104
|
+
export declare function nonRecursiveFilterBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): unknown;
|
|
105
|
+
/**
|
|
106
|
+
* Filter blocks in a field value, removing those that don't match the predicate.
|
|
107
|
+
* Creates a new field value containing only blocks that pass the predicate test.
|
|
108
|
+
* Preserves the original field value structure and hierarchy.
|
|
109
|
+
*
|
|
110
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
111
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to filter
|
|
112
|
+
* @param predicate - Asynchronous function that tests each block. Blocks returning false are removed
|
|
113
|
+
* @returns Promise that resolves to the new field value with filtered blocks
|
|
114
|
+
*/
|
|
115
|
+
export declare function nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<unknown>;
|
|
116
|
+
/**
|
|
117
|
+
* Reduce all blocks in a field value to a single value by applying a reducer function.
|
|
118
|
+
* Processes each block in the non-localized field value and accumulates the results into a single value.
|
|
119
|
+
*
|
|
120
|
+
* @template R - The type of the accumulated result
|
|
121
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
122
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to reduce
|
|
123
|
+
* @param reducer - Synchronous function that processes each block and updates the accumulator
|
|
124
|
+
* @param initialValue - The initial value for the accumulator
|
|
125
|
+
* @returns The final accumulated value
|
|
126
|
+
*/
|
|
127
|
+
export declare function nonRecursiveReduceBlocksInNonLocalizedFieldValue<R>(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => R, initialValue: R): R;
|
|
128
|
+
/**
|
|
129
|
+
* Reduce all blocks in a field value to a single value by applying a reducer function.
|
|
130
|
+
* Processes each block in the non-localized field value and accumulates the results into a single value.
|
|
131
|
+
*
|
|
132
|
+
* @template R - The type of the accumulated result
|
|
133
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
134
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to reduce
|
|
135
|
+
* @param reducer - Asynchronous function that processes each block and updates the accumulator
|
|
136
|
+
* @param initialValue - The initial value for the accumulator
|
|
137
|
+
* @returns Promise that resolves to the final accumulated value
|
|
138
|
+
*/
|
|
139
|
+
export declare function nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync<R>(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => Promise<R>, initialValue: R): Promise<R>;
|
|
140
|
+
/**
|
|
141
|
+
* Check if any block in the non-localized field value matches the predicate function.
|
|
142
|
+
* Returns true as soon as the first matching block is found (short-circuit evaluation).
|
|
143
|
+
*
|
|
144
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
145
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
|
|
146
|
+
* @param predicate - Synchronous function that tests each block. Should return true for matching blocks
|
|
147
|
+
* @returns True if any block matches, false otherwise
|
|
148
|
+
*/
|
|
149
|
+
export declare function nonRecursiveSomeBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Check if any block in the non-localized field value matches the predicate function.
|
|
152
|
+
* Returns true as soon as the first matching block is found (short-circuit evaluation).
|
|
153
|
+
*
|
|
154
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
155
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
|
|
156
|
+
* @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
|
|
157
|
+
* @returns Promise that resolves to true if any block matches, false otherwise
|
|
158
|
+
*/
|
|
159
|
+
export declare function nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;
|
|
160
|
+
/**
|
|
161
|
+
* Check if every block in the non-localized field value matches the predicate function.
|
|
162
|
+
* Returns false as soon as the first non-matching block is found (short-circuit evaluation).
|
|
163
|
+
*
|
|
164
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
165
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
|
|
166
|
+
* @param predicate - Synchronous function that tests each block. Should return true for valid blocks
|
|
167
|
+
* @returns True if all blocks match, false otherwise
|
|
168
|
+
*/
|
|
169
|
+
export declare function nonRecursiveEveryBlockInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Check if every block in the non-localized field value matches the predicate function.
|
|
172
|
+
* Returns false as soon as the first non-matching block is found (short-circuit evaluation).
|
|
173
|
+
*
|
|
174
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
175
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
|
|
176
|
+
* @param predicate - Asynchronous function that tests each block. Should return true for valid blocks
|
|
177
|
+
* @returns Promise that resolves to true if all blocks match, false otherwise
|
|
178
|
+
*/
|
|
179
|
+
export declare function nonRecursiveEveryBlockInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;
|