@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
|
@@ -3,33 +3,43 @@ import {
|
|
|
3
3
|
isItemWithOptionalIdAndMeta,
|
|
4
4
|
} from '../fieldTypes';
|
|
5
5
|
import type * as ApiTypes from '../generated/ApiTypes';
|
|
6
|
-
import type * as RawApiTypes from '../generated/RawApiTypes';
|
|
7
6
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} from './
|
|
15
|
-
import { mapFieldValueAsync, visitFieldValueAsync } from './fieldValue';
|
|
7
|
+
nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync,
|
|
8
|
+
nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync,
|
|
9
|
+
nonRecursiveMapBlocksInNonLocalizedFieldValueAsync,
|
|
10
|
+
nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync,
|
|
11
|
+
nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync,
|
|
12
|
+
nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync,
|
|
13
|
+
} from './nonRecursiveBlocks';
|
|
16
14
|
import type { SchemaRepository } from './schemaRepository';
|
|
17
15
|
|
|
18
16
|
/**
|
|
19
|
-
* Path through a field value (ie. ['content', 0, 'attributes', 'title'])
|
|
17
|
+
* Path through a non-localized field value (ie. ['content', 0, 'attributes', 'title'])
|
|
20
18
|
*/
|
|
21
19
|
export type TreePath = readonly (string | number)[];
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Recursively visit every block in a non-localized field value and all nested blocks within those blocks.
|
|
23
|
+
* This function traverses not only the direct blocks in the non-localized field value but also recursively
|
|
24
|
+
* visits blocks contained within the attributes of each block, creating a complete traversal
|
|
25
|
+
* of the entire block hierarchy.
|
|
26
|
+
*
|
|
27
|
+
* @param schemaRepository - Repository for accessing DatoCMS schema information to resolve block structures
|
|
28
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
29
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to visit
|
|
30
|
+
* @param visitor - Asynchronous function called for each block found, including nested blocks
|
|
31
|
+
* @returns Promise that resolves when all blocks and nested blocks have been visited
|
|
32
|
+
*/
|
|
33
|
+
export async function visitBlocksInNonLocalizedFieldValue(
|
|
24
34
|
schemaRepository: SchemaRepository,
|
|
25
|
-
|
|
26
|
-
|
|
35
|
+
fieldType: ApiTypes.Field['field_type'],
|
|
36
|
+
nonLocalizedFieldValue: unknown,
|
|
27
37
|
visitor: (item: BlockItemInARequest, path: TreePath) => void | Promise<void>,
|
|
28
38
|
path: TreePath = [],
|
|
29
39
|
): Promise<void> {
|
|
30
|
-
await
|
|
31
|
-
|
|
32
|
-
|
|
40
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(
|
|
41
|
+
fieldType,
|
|
42
|
+
nonLocalizedFieldValue,
|
|
33
43
|
async (block, innerPath) => {
|
|
34
44
|
await visitor(block, [...path, ...innerPath]);
|
|
35
45
|
|
|
@@ -44,33 +54,33 @@ export async function visitBlocksInFieldValues(
|
|
|
44
54
|
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
45
55
|
|
|
46
56
|
for (const field of fields) {
|
|
47
|
-
await
|
|
48
|
-
|
|
57
|
+
await visitBlocksInNonLocalizedFieldValue(
|
|
58
|
+
schemaRepository,
|
|
59
|
+
fieldType,
|
|
49
60
|
block.attributes[field.attributes.api_key],
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
schemaRepository,
|
|
53
|
-
field,
|
|
54
|
-
valueForLocale,
|
|
55
|
-
visitor,
|
|
56
|
-
[
|
|
57
|
-
...path,
|
|
58
|
-
...innerPath,
|
|
59
|
-
'attributes',
|
|
60
|
-
field.attributes.api_key,
|
|
61
|
-
...(locale ? [locale] : []),
|
|
62
|
-
],
|
|
63
|
-
),
|
|
61
|
+
visitor,
|
|
62
|
+
[...path, ...innerPath, 'attributes', field.attributes.api_key],
|
|
64
63
|
);
|
|
65
64
|
}
|
|
66
65
|
},
|
|
67
66
|
);
|
|
68
67
|
}
|
|
69
68
|
|
|
70
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Recursively find all blocks that match the predicate function in a non-localized field value.
|
|
71
|
+
* Searches through all direct blocks and recursively through nested blocks within
|
|
72
|
+
* the attributes of each block, returning all matches found throughout the hierarchy.
|
|
73
|
+
*
|
|
74
|
+
* @param schemaRepository - Repository for accessing DatoCMS schema information to resolve block structures
|
|
75
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
76
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to search
|
|
77
|
+
* @param predicate - Asynchronous function that tests each block, including nested ones
|
|
78
|
+
* @returns Promise that resolves to an array of objects, each containing a matching block and its full path
|
|
79
|
+
*/
|
|
80
|
+
export async function findAllBlocksInNonLocalizedFieldValue(
|
|
71
81
|
schemaRepository: SchemaRepository,
|
|
72
|
-
|
|
73
|
-
|
|
82
|
+
fieldType: ApiTypes.Field['field_type'],
|
|
83
|
+
nonLocalizedFieldValue: unknown,
|
|
74
84
|
predicate: (
|
|
75
85
|
item: BlockItemInARequest,
|
|
76
86
|
path: TreePath,
|
|
@@ -79,11 +89,13 @@ export async function findAllBlocksInFieldValues(
|
|
|
79
89
|
): Promise<Array<{ item: BlockItemInARequest; path: TreePath }>> {
|
|
80
90
|
const results: Array<{ item: BlockItemInARequest; path: TreePath }> = [];
|
|
81
91
|
|
|
82
|
-
const directMatches =
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
const directMatches =
|
|
93
|
+
await nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync(
|
|
94
|
+
fieldType,
|
|
95
|
+
nonLocalizedFieldValue,
|
|
96
|
+
async (block, innerPath) =>
|
|
97
|
+
await predicate(block, [...path, ...innerPath]),
|
|
98
|
+
);
|
|
87
99
|
|
|
88
100
|
results.push(
|
|
89
101
|
...directMatches.map(({ item, path: innerPath }) => ({
|
|
@@ -92,9 +104,9 @@ export async function findAllBlocksInFieldValues(
|
|
|
92
104
|
})),
|
|
93
105
|
);
|
|
94
106
|
|
|
95
|
-
await
|
|
96
|
-
|
|
97
|
-
|
|
107
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(
|
|
108
|
+
fieldType,
|
|
109
|
+
nonLocalizedFieldValue,
|
|
98
110
|
async (block, innerPath) => {
|
|
99
111
|
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
100
112
|
return;
|
|
@@ -107,26 +119,14 @@ export async function findAllBlocksInFieldValues(
|
|
|
107
119
|
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
108
120
|
|
|
109
121
|
for (const field of fields) {
|
|
110
|
-
await
|
|
111
|
-
|
|
122
|
+
const nestedResults = await findAllBlocksInNonLocalizedFieldValue(
|
|
123
|
+
schemaRepository,
|
|
124
|
+
fieldType,
|
|
112
125
|
block.attributes[field.attributes.api_key],
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
schemaRepository,
|
|
116
|
-
field,
|
|
117
|
-
valueForLocale,
|
|
118
|
-
predicate,
|
|
119
|
-
[
|
|
120
|
-
...path,
|
|
121
|
-
...innerPath,
|
|
122
|
-
'attributes',
|
|
123
|
-
field.attributes.api_key,
|
|
124
|
-
...(locale ? [locale] : []),
|
|
125
|
-
],
|
|
126
|
-
);
|
|
127
|
-
results.push(...nestedResults);
|
|
128
|
-
},
|
|
126
|
+
predicate,
|
|
127
|
+
[...path, ...innerPath, 'attributes', field.attributes.api_key],
|
|
129
128
|
);
|
|
129
|
+
results.push(...nestedResults);
|
|
130
130
|
}
|
|
131
131
|
},
|
|
132
132
|
);
|
|
@@ -134,19 +134,31 @@ export async function findAllBlocksInFieldValues(
|
|
|
134
134
|
return results;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Recursively filter blocks in a non-localized field value, removing those that don't match the predicate.
|
|
139
|
+
* Creates a new non-localized field value structure containing only blocks that pass the predicate test,
|
|
140
|
+
* including recursive filtering of nested blocks within block attributes. The filtering
|
|
141
|
+
* preserves the original non-localized field value structure and hierarchy.
|
|
142
|
+
*
|
|
143
|
+
* @param schemaRepository - Repository for accessing DatoCMS schema information to resolve block structures
|
|
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 filter
|
|
146
|
+
* @param predicate - Asynchronous function that tests each block, including nested ones
|
|
147
|
+
* @returns Promise that resolves to the new non-localized field value with recursively filtered blocks
|
|
148
|
+
*/
|
|
149
|
+
export async function filterBlocksInNonLocalizedFieldValue(
|
|
138
150
|
schemaRepository: SchemaRepository,
|
|
139
|
-
|
|
140
|
-
|
|
151
|
+
fieldType: ApiTypes.Field['field_type'],
|
|
152
|
+
nonLocalizedFieldValue: unknown,
|
|
141
153
|
predicate: (
|
|
142
154
|
item: BlockItemInARequest,
|
|
143
155
|
path: TreePath,
|
|
144
156
|
) => boolean | Promise<boolean>,
|
|
145
157
|
path: TreePath = [],
|
|
146
158
|
): Promise<unknown> {
|
|
147
|
-
return
|
|
148
|
-
|
|
149
|
-
|
|
159
|
+
return nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync(
|
|
160
|
+
fieldType,
|
|
161
|
+
nonLocalizedFieldValue,
|
|
150
162
|
async (block, innerPath) => {
|
|
151
163
|
const blockPath = [...path, ...innerPath];
|
|
152
164
|
const passes = await predicate(block, blockPath);
|
|
@@ -166,23 +178,14 @@ export async function filterBlocksInFieldValues(
|
|
|
166
178
|
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
167
179
|
|
|
168
180
|
for (const field of fields) {
|
|
169
|
-
block.attributes[field.attributes.api_key] =
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
predicate,
|
|
178
|
-
[
|
|
179
|
-
...blockPath,
|
|
180
|
-
'attributes',
|
|
181
|
-
field.attributes.api_key,
|
|
182
|
-
...(locale ? [locale] : []),
|
|
183
|
-
],
|
|
184
|
-
),
|
|
185
|
-
);
|
|
181
|
+
block.attributes[field.attributes.api_key] =
|
|
182
|
+
await filterBlocksInNonLocalizedFieldValue(
|
|
183
|
+
schemaRepository,
|
|
184
|
+
fieldType,
|
|
185
|
+
block.attributes[field.attributes.api_key],
|
|
186
|
+
predicate,
|
|
187
|
+
[...blockPath, 'attributes', field.attributes.api_key],
|
|
188
|
+
);
|
|
186
189
|
}
|
|
187
190
|
|
|
188
191
|
return true;
|
|
@@ -190,10 +193,23 @@ export async function filterBlocksInFieldValues(
|
|
|
190
193
|
);
|
|
191
194
|
}
|
|
192
195
|
|
|
193
|
-
|
|
196
|
+
/**
|
|
197
|
+
* Recursively reduce all blocks in a non-localized field value to a single value by applying a reducer function.
|
|
198
|
+
* Processes each direct block and recursively processes nested blocks within block attributes,
|
|
199
|
+
* accumulating results from the entire block hierarchy into a single value.
|
|
200
|
+
*
|
|
201
|
+
* @template R - The type of the accumulated result
|
|
202
|
+
* @param schemaRepository - Repository for accessing DatoCMS schema information to resolve block structures
|
|
203
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
204
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to reduce
|
|
205
|
+
* @param reducer - Asynchronous function that processes each block and updates the accumulator
|
|
206
|
+
* @param initialNonLocalizedFieldValue - The initial value for the accumulator
|
|
207
|
+
* @returns Promise that resolves to the final accumulated value from all blocks in the hierarchy
|
|
208
|
+
*/
|
|
209
|
+
export async function reduceBlocksInNonLocalizedFieldValue<R>(
|
|
194
210
|
schemaRepository: SchemaRepository,
|
|
195
|
-
|
|
196
|
-
|
|
211
|
+
fieldType: ApiTypes.Field['field_type'],
|
|
212
|
+
nonLocalizedFieldValue: unknown,
|
|
197
213
|
reducer: (
|
|
198
214
|
accumulator: R,
|
|
199
215
|
item: BlockItemInARequest,
|
|
@@ -202,17 +218,17 @@ export async function reduceBlocksInFieldValues<R>(
|
|
|
202
218
|
initialValue: R,
|
|
203
219
|
path: TreePath = [],
|
|
204
220
|
): Promise<R> {
|
|
205
|
-
let accumulator = await
|
|
206
|
-
|
|
207
|
-
|
|
221
|
+
let accumulator = await nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync(
|
|
222
|
+
fieldType,
|
|
223
|
+
nonLocalizedFieldValue,
|
|
208
224
|
async (acc, block, innerPath) =>
|
|
209
225
|
await reducer(acc, block, [...path, ...innerPath]),
|
|
210
226
|
initialValue,
|
|
211
227
|
);
|
|
212
228
|
|
|
213
|
-
await
|
|
214
|
-
|
|
215
|
-
|
|
229
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(
|
|
230
|
+
fieldType,
|
|
231
|
+
nonLocalizedFieldValue,
|
|
216
232
|
async (block, innerPath) => {
|
|
217
233
|
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
218
234
|
return;
|
|
@@ -225,25 +241,13 @@ export async function reduceBlocksInFieldValues<R>(
|
|
|
225
241
|
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
226
242
|
|
|
227
243
|
for (const field of fields) {
|
|
228
|
-
await
|
|
229
|
-
|
|
244
|
+
accumulator = await reduceBlocksInNonLocalizedFieldValue(
|
|
245
|
+
schemaRepository,
|
|
246
|
+
fieldType,
|
|
230
247
|
block.attributes[field.attributes.api_key],
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
field,
|
|
235
|
-
valueForLocale,
|
|
236
|
-
reducer,
|
|
237
|
-
accumulator,
|
|
238
|
-
[
|
|
239
|
-
...path,
|
|
240
|
-
...innerPath,
|
|
241
|
-
'attributes',
|
|
242
|
-
field.attributes.api_key,
|
|
243
|
-
...(locale ? [locale] : []),
|
|
244
|
-
],
|
|
245
|
-
);
|
|
246
|
-
},
|
|
248
|
+
reducer,
|
|
249
|
+
accumulator,
|
|
250
|
+
[...path, ...innerPath, 'attributes', field.attributes.api_key],
|
|
247
251
|
);
|
|
248
252
|
}
|
|
249
253
|
},
|
|
@@ -252,19 +256,31 @@ export async function reduceBlocksInFieldValues<R>(
|
|
|
252
256
|
return accumulator;
|
|
253
257
|
}
|
|
254
258
|
|
|
255
|
-
|
|
259
|
+
/**
|
|
260
|
+
* Recursively check if any block in the non-localized field value matches the predicate function.
|
|
261
|
+
* Tests both direct blocks and recursively tests nested blocks within block attributes.
|
|
262
|
+
* Returns true as soon as the first matching block is found anywhere in the hierarchy
|
|
263
|
+
* (short-circuit evaluation).
|
|
264
|
+
*
|
|
265
|
+
* @param schemaRepository - Repository for accessing DatoCMS schema information to resolve block structures
|
|
266
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
267
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
|
|
268
|
+
* @param predicate - Asynchronous function that tests each block, including nested ones
|
|
269
|
+
* @returns Promise that resolves to true if any block in the hierarchy matches, false otherwise
|
|
270
|
+
*/
|
|
271
|
+
export async function someBlocksInNonLocalizedFieldValue(
|
|
256
272
|
schemaRepository: SchemaRepository,
|
|
257
|
-
|
|
258
|
-
|
|
273
|
+
fieldType: ApiTypes.Field['field_type'],
|
|
274
|
+
nonLocalizedFieldValue: unknown,
|
|
259
275
|
predicate: (
|
|
260
276
|
item: BlockItemInARequest,
|
|
261
277
|
path: TreePath,
|
|
262
278
|
) => boolean | Promise<boolean>,
|
|
263
279
|
path: TreePath = [],
|
|
264
280
|
): Promise<boolean> {
|
|
265
|
-
const directMatch = await
|
|
266
|
-
|
|
267
|
-
|
|
281
|
+
const directMatch = await nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync(
|
|
282
|
+
fieldType,
|
|
283
|
+
nonLocalizedFieldValue,
|
|
268
284
|
async (block, innerPath) => await predicate(block, [...path, ...innerPath]),
|
|
269
285
|
);
|
|
270
286
|
|
|
@@ -273,9 +289,9 @@ export async function someBlocksInFieldValues(
|
|
|
273
289
|
}
|
|
274
290
|
|
|
275
291
|
let found = false;
|
|
276
|
-
await
|
|
277
|
-
|
|
278
|
-
|
|
292
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(
|
|
293
|
+
fieldType,
|
|
294
|
+
nonLocalizedFieldValue,
|
|
279
295
|
async (block, innerPath) => {
|
|
280
296
|
if (found || !isItemWithOptionalIdAndMeta(block)) {
|
|
281
297
|
return;
|
|
@@ -290,31 +306,17 @@ export async function someBlocksInFieldValues(
|
|
|
290
306
|
for (const field of fields) {
|
|
291
307
|
if (found) break;
|
|
292
308
|
|
|
293
|
-
await
|
|
294
|
-
|
|
309
|
+
const nestedMatch = await someBlocksInNonLocalizedFieldValue(
|
|
310
|
+
schemaRepository,
|
|
311
|
+
fieldType,
|
|
295
312
|
block.attributes[field.attributes.api_key],
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
const nestedMatch = await someBlocksInFieldValues(
|
|
300
|
-
schemaRepository,
|
|
301
|
-
field,
|
|
302
|
-
valueForLocale,
|
|
303
|
-
predicate,
|
|
304
|
-
[
|
|
305
|
-
...path,
|
|
306
|
-
...innerPath,
|
|
307
|
-
'attributes',
|
|
308
|
-
field.attributes.api_key,
|
|
309
|
-
...(locale ? [locale] : []),
|
|
310
|
-
],
|
|
311
|
-
);
|
|
312
|
-
|
|
313
|
-
if (nestedMatch) {
|
|
314
|
-
found = true;
|
|
315
|
-
}
|
|
316
|
-
},
|
|
313
|
+
predicate,
|
|
314
|
+
[...path, ...innerPath, 'attributes', field.attributes.api_key],
|
|
317
315
|
);
|
|
316
|
+
|
|
317
|
+
if (nestedMatch) {
|
|
318
|
+
found = true;
|
|
319
|
+
}
|
|
318
320
|
}
|
|
319
321
|
},
|
|
320
322
|
);
|
|
@@ -322,38 +324,62 @@ export async function someBlocksInFieldValues(
|
|
|
322
324
|
return found;
|
|
323
325
|
}
|
|
324
326
|
|
|
325
|
-
|
|
327
|
+
/**
|
|
328
|
+
* Recursively check if every block in the non-localized field value matches the predicate function.
|
|
329
|
+
* Tests both direct blocks and recursively tests nested blocks within block attributes.
|
|
330
|
+
* Returns false as soon as the first non-matching block is found anywhere in the hierarchy
|
|
331
|
+
* (short-circuit evaluation).
|
|
332
|
+
*
|
|
333
|
+
* @param schemaRepository - Repository for accessing DatoCMS schema information to resolve block structures
|
|
334
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
335
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
|
|
336
|
+
* @param predicate - Asynchronous function that tests each block, including nested ones
|
|
337
|
+
* @returns Promise that resolves to true if all blocks in the hierarchy match, false otherwise
|
|
338
|
+
*/
|
|
339
|
+
export async function everyBlockInNonLocalizedFieldValue(
|
|
326
340
|
schemaRepository: SchemaRepository,
|
|
327
|
-
|
|
328
|
-
|
|
341
|
+
fieldType: ApiTypes.Field['field_type'],
|
|
342
|
+
nonLocalizedFieldValue: unknown,
|
|
329
343
|
predicate: (
|
|
330
344
|
item: BlockItemInARequest,
|
|
331
345
|
path: TreePath,
|
|
332
346
|
) => boolean | Promise<boolean>,
|
|
333
347
|
path: TreePath = [],
|
|
334
348
|
): Promise<boolean> {
|
|
335
|
-
return !(await
|
|
349
|
+
return !(await someBlocksInNonLocalizedFieldValue(
|
|
336
350
|
schemaRepository,
|
|
337
|
-
|
|
338
|
-
|
|
351
|
+
fieldType,
|
|
352
|
+
nonLocalizedFieldValue,
|
|
339
353
|
async (item, path) => !(await predicate(item, path)),
|
|
340
354
|
path,
|
|
341
355
|
));
|
|
342
356
|
}
|
|
343
357
|
|
|
344
|
-
|
|
358
|
+
/**
|
|
359
|
+
* Recursively transform blocks in a non-localized field value by applying a mapping function to each block.
|
|
360
|
+
* Creates a new non-localized field value structure with transformed blocks while preserving the original
|
|
361
|
+
* structure. Applies the mapping function to both direct blocks and recursively to nested
|
|
362
|
+
* blocks within block attributes throughout the entire hierarchy.
|
|
363
|
+
*
|
|
364
|
+
* @param schemaRepository - Repository for accessing DatoCMS schema information to resolve block structures
|
|
365
|
+
* @param fieldType - The type of DatoCMS field definition that determines how the value is processed
|
|
366
|
+
* @param nonLocalizedFieldValue - The non-localized field value containing blocks to transform
|
|
367
|
+
* @param mapper - Asynchronous function that transforms each block, including nested ones
|
|
368
|
+
* @returns Promise that resolves to the new non-localized field value with recursively transformed blocks
|
|
369
|
+
*/
|
|
370
|
+
export async function mapBlocksInNonLocalizedFieldValue(
|
|
345
371
|
schemaRepository: SchemaRepository,
|
|
346
|
-
|
|
347
|
-
|
|
372
|
+
fieldType: ApiTypes.Field['field_type'],
|
|
373
|
+
nonLocalizedFieldValue: unknown,
|
|
348
374
|
mapper: (
|
|
349
375
|
item: BlockItemInARequest,
|
|
350
376
|
path: TreePath,
|
|
351
377
|
) => BlockItemInARequest | Promise<BlockItemInARequest>,
|
|
352
378
|
path: TreePath = [],
|
|
353
379
|
) {
|
|
354
|
-
return
|
|
355
|
-
|
|
356
|
-
|
|
380
|
+
return nonRecursiveMapBlocksInNonLocalizedFieldValueAsync(
|
|
381
|
+
fieldType,
|
|
382
|
+
nonLocalizedFieldValue,
|
|
357
383
|
async (block, innerPath) => {
|
|
358
384
|
const newBlock = await mapper(block, [...path, ...innerPath]);
|
|
359
385
|
|
|
@@ -369,23 +395,12 @@ export async function mapBlocksInFieldValues(
|
|
|
369
395
|
|
|
370
396
|
for (const field of fields) {
|
|
371
397
|
newBlock.attributes[field.attributes.api_key] =
|
|
372
|
-
await
|
|
373
|
-
|
|
398
|
+
await mapBlocksInNonLocalizedFieldValue(
|
|
399
|
+
schemaRepository,
|
|
400
|
+
fieldType,
|
|
374
401
|
newBlock.attributes[field.attributes.api_key],
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
schemaRepository,
|
|
378
|
-
field,
|
|
379
|
-
valueForLocale,
|
|
380
|
-
mapper,
|
|
381
|
-
[
|
|
382
|
-
...path,
|
|
383
|
-
...innerPath,
|
|
384
|
-
'attributes',
|
|
385
|
-
field.attributes.api_key,
|
|
386
|
-
...(locale ? [locale] : []),
|
|
387
|
-
],
|
|
388
|
-
),
|
|
402
|
+
mapper,
|
|
403
|
+
[...path, ...innerPath, 'attributes', field.attributes.api_key],
|
|
389
404
|
);
|
|
390
405
|
}
|
|
391
406
|
|
|
@@ -34,7 +34,7 @@ interface GenericClient {
|
|
|
34
34
|
* - **Caching schema entities**: Automatically caches item types, fields, fieldsets,
|
|
35
35
|
* and plugins after the first API request, returning cached results on subsequent calls
|
|
36
36
|
* - **Complex traversal operations**: Essential when using utilities like
|
|
37
|
-
* `
|
|
37
|
+
* `mapBlocksInNonLocalizedFieldValue()` that need to repeatedly lookup block models and fields
|
|
38
38
|
* while traversing nested content structures
|
|
39
39
|
* - **Bulk operations**: Ideal for scripts that process multiple records of different
|
|
40
40
|
* types and need efficient access to schema information
|
|
@@ -66,7 +66,7 @@ interface GenericClient {
|
|
|
66
66
|
* const sameBlogPost = await schemaRepository.getItemTypeByApiKey('blog_post');
|
|
67
67
|
*
|
|
68
68
|
* // Pass the repository to utilities that need schema information
|
|
69
|
-
* await
|
|
69
|
+
* await mapBlocksInNonLocalizedFieldValue(schemaRepository, record, (block) => {
|
|
70
70
|
* // The utility will use the cached schema data internally
|
|
71
71
|
* });
|
|
72
72
|
* ```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/utilities/blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fieldValue.js","sourceRoot":"","sources":["../../../src/utilities/fieldValue.ts"],"names":[],"mappings":"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"}
|