@datocms/cma-client 5.8.1 → 6.1.0
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/cjs/generated/Client.js +1 -1
- package/dist/cjs/resources/Upload.js +139 -0
- package/dist/cjs/resources/Upload.js.map +1 -1
- package/dist/cjs/utilities/defaultFieldMetadata.js +130 -0
- package/dist/cjs/utilities/defaultFieldMetadata.js.map +1 -0
- package/dist/cjs/utilities/environmentSettings.js +65 -0
- package/dist/cjs/utilities/environmentSettings.js.map +1 -0
- package/dist/esm/generated/Client.js +25 -23
- package/dist/esm/generated/Client.js.map +1 -1
- package/dist/esm/generated/resources/BuildEvent.js +5 -44
- package/dist/esm/generated/resources/BuildEvent.js.map +1 -1
- package/dist/esm/generated/resources/Item.js +5 -44
- package/dist/esm/generated/resources/Item.js.map +1 -1
- package/dist/esm/generated/resources/ItemVersion.js +5 -44
- package/dist/esm/generated/resources/ItemVersion.js.map +1 -1
- package/dist/esm/generated/resources/SearchIndexEvent.js +5 -44
- package/dist/esm/generated/resources/SearchIndexEvent.js.map +1 -1
- package/dist/esm/generated/resources/SearchResult.js +5 -44
- package/dist/esm/generated/resources/SearchResult.js.map +1 -1
- package/dist/esm/generated/resources/Upload.js +5 -44
- package/dist/esm/generated/resources/Upload.js.map +1 -1
- package/dist/esm/generated/resources/UploadSmartTag.js +5 -44
- package/dist/esm/generated/resources/UploadSmartTag.js.map +1 -1
- package/dist/esm/generated/resources/UploadTag.js +5 -44
- package/dist/esm/generated/resources/UploadTag.js.map +1 -1
- package/dist/esm/generated/resources/WebhookCall.js +5 -44
- package/dist/esm/generated/resources/WebhookCall.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/resources/Role.js +23 -25
- package/dist/esm/resources/Role.js.map +1 -1
- package/dist/esm/resources/Upload.d.ts +53 -40
- package/dist/esm/resources/Upload.js +68 -0
- package/dist/esm/resources/Upload.js.map +1 -1
- package/dist/esm/utilities/buildBlockRecord.js +4 -1
- package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
- package/dist/esm/utilities/defaultFieldMetadata.d.ts +84 -0
- package/dist/esm/utilities/defaultFieldMetadata.js +113 -0
- package/dist/esm/utilities/defaultFieldMetadata.js.map +1 -0
- package/dist/esm/utilities/duplicateBlockRecord.js +25 -47
- package/dist/esm/utilities/duplicateBlockRecord.js.map +1 -1
- package/dist/esm/utilities/environmentSettings.d.ts +35 -0
- package/dist/esm/utilities/environmentSettings.js +49 -0
- package/dist/esm/utilities/environmentSettings.js.map +1 -0
- package/dist/esm/utilities/inspectItem.js +1 -12
- package/dist/esm/utilities/inspectItem.js.map +1 -1
- package/dist/esm/utilities/nonRecursiveBlocks.js +109 -260
- package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -1
- package/dist/esm/utilities/normalizedFieldValues.js +30 -53
- package/dist/esm/utilities/normalizedFieldValues.js.map +1 -1
- package/dist/esm/utilities/recursiveBlocks.js +108 -131
- package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
- package/dist/esm/utilities/schemaRepository.js +266 -333
- package/dist/esm/utilities/schemaRepository.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/resources/Upload.d.ts +53 -40
- package/dist/types/utilities/defaultFieldMetadata.d.ts +84 -0
- package/dist/types/utilities/environmentSettings.d.ts +35 -0
- package/package.json +3 -3
- package/src/generated/Client.ts +1 -1
- package/src/index.ts +1 -1
- package/src/resources/Upload.ts +87 -31
- package/src/utilities/defaultFieldMetadata.ts +193 -0
- package/src/utilities/environmentSettings.ts +80 -0
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
/**
|
|
11
2
|
* Determines whether a DatoCMS field is localized or not.
|
|
12
3
|
*
|
|
@@ -100,17 +91,13 @@ export function mapNormalizedFieldValues(localizedOrNonLocalizedFieldValue, fiel
|
|
|
100
91
|
* @param mapFn - The function to apply to each locale value or the direct value
|
|
101
92
|
* @returns The mapped value with the same structure as the input
|
|
102
93
|
*/
|
|
103
|
-
export function mapNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, mapFn) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
});
|
|
111
|
-
})));
|
|
112
|
-
return fromNormalizedFieldValueEntries(mappedEntries, field);
|
|
113
|
-
});
|
|
94
|
+
export async function mapNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, mapFn) {
|
|
95
|
+
const entries = toNormalizedFieldValueEntries(localizedOrNonLocalizedFieldValue, field);
|
|
96
|
+
const mappedEntries = await Promise.all(entries.map(async ({ locale, value }) => ({
|
|
97
|
+
locale,
|
|
98
|
+
value: await mapFn(locale, value),
|
|
99
|
+
})));
|
|
100
|
+
return fromNormalizedFieldValueEntries(mappedEntries, field);
|
|
114
101
|
}
|
|
115
102
|
/**
|
|
116
103
|
* Filters field values using a provided filter function.
|
|
@@ -141,25 +128,21 @@ export function filterNormalizedFieldValues(localizedOrNonLocalizedFieldValue, f
|
|
|
141
128
|
* @param filterFn - The function to test each locale value or the direct value
|
|
142
129
|
* @returns The filtered value with the same structure as the input
|
|
143
130
|
*/
|
|
144
|
-
export function filterNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, filterFn) {
|
|
131
|
+
export async function filterNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, filterFn) {
|
|
145
132
|
var _a;
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
})));
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
return fromNormalizedFieldValueEntries(filteredEntries, field);
|
|
160
|
-
}
|
|
161
|
-
return filteredEntries.length > 0 ? (_a = filteredEntries[0]) === null || _a === void 0 ? void 0 : _a.value : undefined;
|
|
162
|
-
});
|
|
133
|
+
const entries = toNormalizedFieldValueEntries(localizedOrNonLocalizedFieldValue, field);
|
|
134
|
+
const results = await Promise.all(entries.map(async ({ locale, value }) => ({
|
|
135
|
+
locale,
|
|
136
|
+
value,
|
|
137
|
+
passed: await filterFn(locale, value),
|
|
138
|
+
})));
|
|
139
|
+
const filteredEntries = results
|
|
140
|
+
.filter(({ passed }) => passed)
|
|
141
|
+
.map(({ locale, value }) => ({ locale, value }));
|
|
142
|
+
if (isLocalized(field)) {
|
|
143
|
+
return fromNormalizedFieldValueEntries(filteredEntries, field);
|
|
144
|
+
}
|
|
145
|
+
return filteredEntries.length > 0 ? (_a = filteredEntries[0]) === null || _a === void 0 ? void 0 : _a.value : undefined;
|
|
163
146
|
}
|
|
164
147
|
/**
|
|
165
148
|
* Tests whether at least one field value passes the test implemented by the provided function.
|
|
@@ -185,12 +168,10 @@ export function someNormalizedFieldValues(localizedOrNonLocalizedFieldValue, fie
|
|
|
185
168
|
* @param testFn - The function to test each locale value or the direct value
|
|
186
169
|
* @returns true if at least one value passes the test, false otherwise
|
|
187
170
|
*/
|
|
188
|
-
export function someNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, testFn) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
return results.some((result) => result);
|
|
193
|
-
});
|
|
171
|
+
export async function someNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, testFn) {
|
|
172
|
+
const entries = toNormalizedFieldValueEntries(localizedOrNonLocalizedFieldValue, field);
|
|
173
|
+
const results = await Promise.all(entries.map(({ locale, value }) => testFn(locale, value)));
|
|
174
|
+
return results.some((result) => result);
|
|
194
175
|
}
|
|
195
176
|
/**
|
|
196
177
|
* Tests whether all field values pass the test implemented by the provided function.
|
|
@@ -215,10 +196,8 @@ export function everyNormalizedFieldValue(localizedOrNonLocalizedFieldValue, fie
|
|
|
215
196
|
* @param testFn - The function to test each locale value or the direct value
|
|
216
197
|
* @returns true if all values pass the test, false otherwise
|
|
217
198
|
*/
|
|
218
|
-
export function everyNormalizedFieldValueAsync(localizedOrNonLocalizedFieldValue, field, testFn) {
|
|
219
|
-
return
|
|
220
|
-
return !(yield someNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, (locale, localeValue) => __awaiter(this, void 0, void 0, function* () { return !(yield testFn(locale, localeValue)); })));
|
|
221
|
-
});
|
|
199
|
+
export async function everyNormalizedFieldValueAsync(localizedOrNonLocalizedFieldValue, field, testFn) {
|
|
200
|
+
return !(await someNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, async (locale, localeValue) => !(await testFn(locale, localeValue))));
|
|
222
201
|
}
|
|
223
202
|
/**
|
|
224
203
|
* Visits each field value with the provided function.
|
|
@@ -244,10 +223,8 @@ export function visitNormalizedFieldValues(value, field, visitFn) {
|
|
|
244
223
|
* @param field - The DatoCMS field definition
|
|
245
224
|
* @param visitFn - The function to call for each locale value or the direct value
|
|
246
225
|
*/
|
|
247
|
-
export function visitNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, visitFn) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
yield Promise.all(entries.map(({ locale, value }) => visitFn(locale, value)));
|
|
251
|
-
});
|
|
226
|
+
export async function visitNormalizedFieldValuesAsync(localizedOrNonLocalizedFieldValue, field, visitFn) {
|
|
227
|
+
const entries = toNormalizedFieldValueEntries(localizedOrNonLocalizedFieldValue, field);
|
|
228
|
+
await Promise.all(entries.map(({ locale, value }) => visitFn(locale, value)));
|
|
252
229
|
}
|
|
253
230
|
//# sourceMappingURL=normalizedFieldValues.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizedFieldValues.js","sourceRoot":"","sources":["../../../src/utilities/normalizedFieldValues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalizedFieldValues.js","sourceRoot":"","sources":["../../../src/utilities/normalizedFieldValues.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,157 +1,134 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { isItemWithOptionalIdAndMeta, } from '../fieldTypes/index.js';
|
|
11
2
|
import { nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync, nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync, nonRecursiveMapBlocksInNonLocalizedFieldValueAsync, nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync, nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync, nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync, } from './nonRecursiveBlocks.js';
|
|
12
|
-
export function visitBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, visitor, path = []) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
}));
|
|
3
|
+
export async function visitBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, visitor, path = []) {
|
|
4
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
5
|
+
await visitor(block, [...path, ...innerPath]);
|
|
6
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
10
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
11
|
+
for (const field of fields) {
|
|
12
|
+
await visitBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, visitor, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
13
|
+
}
|
|
25
14
|
});
|
|
26
15
|
}
|
|
27
|
-
export function findAllBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
}));
|
|
46
|
-
return results;
|
|
16
|
+
export async function findAllBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
17
|
+
const results = [];
|
|
18
|
+
const directMatches = await nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => await predicate(block, [...path, ...innerPath]));
|
|
19
|
+
results.push(...directMatches.map(({ item, path: innerPath }) => ({
|
|
20
|
+
item,
|
|
21
|
+
path: [...path, ...innerPath],
|
|
22
|
+
})));
|
|
23
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
24
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
28
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
29
|
+
for (const field of fields) {
|
|
30
|
+
const nestedResults = await findAllBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
31
|
+
results.push(...nestedResults);
|
|
32
|
+
}
|
|
47
33
|
});
|
|
34
|
+
return results;
|
|
48
35
|
}
|
|
49
|
-
export function filterBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, options = {}, path = []) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const blockCopy = Object.assign(Object.assign({}, block), { attributes: Object.assign({}, block.attributes) });
|
|
61
|
-
for (const field of fields) {
|
|
62
|
-
blockCopy.attributes[field.attributes.api_key] =
|
|
63
|
-
yield filterBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
64
|
-
}
|
|
65
|
-
return blockCopy;
|
|
66
|
-
}
|
|
67
|
-
const blockCopy = Object.assign(Object.assign({}, block), { attributes: Object.assign({}, block.attributes) });
|
|
36
|
+
export async function filterBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, options = {}, path = []) {
|
|
37
|
+
const { traversalDirection = 'top-down' } = options;
|
|
38
|
+
const mapperFunc = async (block, innerPath) => {
|
|
39
|
+
const blockPath = [...path, ...innerPath];
|
|
40
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
41
|
+
return block;
|
|
42
|
+
}
|
|
43
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
44
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
45
|
+
if (traversalDirection === 'top-down') {
|
|
46
|
+
const blockCopy = { ...block, attributes: { ...block.attributes } };
|
|
68
47
|
for (const field of fields) {
|
|
69
48
|
blockCopy.attributes[field.attributes.api_key] =
|
|
70
|
-
|
|
49
|
+
await filterBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
71
50
|
}
|
|
72
51
|
return blockCopy;
|
|
73
|
-
}
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
52
|
+
}
|
|
53
|
+
const blockCopy = { ...block, attributes: { ...block.attributes } };
|
|
54
|
+
for (const field of fields) {
|
|
55
|
+
blockCopy.attributes[field.attributes.api_key] =
|
|
56
|
+
await filterBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
57
|
+
}
|
|
58
|
+
return blockCopy;
|
|
59
|
+
};
|
|
60
|
+
const mappedValue = await nonRecursiveMapBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, mapperFunc);
|
|
61
|
+
return nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync(fieldType, mappedValue, async (block, innerPath) => {
|
|
62
|
+
const blockPath = [...path, ...innerPath];
|
|
63
|
+
return await predicate(block, blockPath);
|
|
79
64
|
});
|
|
80
65
|
}
|
|
81
|
-
export function reduceBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, reducer, initialValue, path = []) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
}));
|
|
94
|
-
return accumulator;
|
|
66
|
+
export async function reduceBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, reducer, initialValue, path = []) {
|
|
67
|
+
let accumulator = await nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (acc, block, innerPath) => await reducer(acc, block, [...path, ...innerPath]), initialValue);
|
|
68
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
69
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
73
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
74
|
+
for (const field of fields) {
|
|
75
|
+
accumulator = await reduceBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, reducer, accumulator, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
76
|
+
}
|
|
95
77
|
});
|
|
78
|
+
return accumulator;
|
|
96
79
|
}
|
|
97
|
-
export function someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
80
|
+
export async function someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
81
|
+
const directMatch = await nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => await predicate(block, [...path, ...innerPath]));
|
|
82
|
+
if (directMatch) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
let found = false;
|
|
86
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
87
|
+
if (found || !isItemWithOptionalIdAndMeta(block)) {
|
|
88
|
+
return;
|
|
102
89
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (found)
|
|
112
|
-
break;
|
|
113
|
-
const nestedMatch = yield someBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
114
|
-
if (nestedMatch) {
|
|
115
|
-
found = true;
|
|
116
|
-
}
|
|
90
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
91
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
92
|
+
for (const field of fields) {
|
|
93
|
+
if (found)
|
|
94
|
+
break;
|
|
95
|
+
const nestedMatch = await someBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
96
|
+
if (nestedMatch) {
|
|
97
|
+
found = true;
|
|
117
98
|
}
|
|
118
|
-
}
|
|
119
|
-
return found;
|
|
99
|
+
}
|
|
120
100
|
});
|
|
101
|
+
return found;
|
|
121
102
|
}
|
|
122
|
-
export function everyBlockInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
123
|
-
return
|
|
124
|
-
return !(yield someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, (item, path) => __awaiter(this, void 0, void 0, function* () { return !(yield predicate(item, path)); }), path));
|
|
125
|
-
});
|
|
103
|
+
export async function everyBlockInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
104
|
+
return !(await someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, async (item, path) => !(await predicate(item, path)), path));
|
|
126
105
|
}
|
|
127
|
-
export function mapBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, mapper, options = {}, path = []) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (!isItemWithOptionalIdAndMeta(newBlock)) {
|
|
140
|
-
return newBlock;
|
|
141
|
-
}
|
|
142
|
-
for (const field of fields) {
|
|
143
|
-
newBlock.attributes[field.attributes.api_key] =
|
|
144
|
-
yield mapBlocksInNonLocalizedFieldValue(newBlock.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, mapper, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
145
|
-
}
|
|
106
|
+
export async function mapBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, mapper, options = {}, path = []) {
|
|
107
|
+
const { traversalDirection = 'top-down' } = options;
|
|
108
|
+
return nonRecursiveMapBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
109
|
+
const blockPath = [...path, ...innerPath];
|
|
110
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
111
|
+
return await mapper(block, blockPath);
|
|
112
|
+
}
|
|
113
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
114
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
115
|
+
if (traversalDirection === 'top-down') {
|
|
116
|
+
const newBlock = await mapper(block, blockPath);
|
|
117
|
+
if (!isItemWithOptionalIdAndMeta(newBlock)) {
|
|
146
118
|
return newBlock;
|
|
147
119
|
}
|
|
148
|
-
const blockCopy = Object.assign({}, block);
|
|
149
120
|
for (const field of fields) {
|
|
150
|
-
|
|
151
|
-
|
|
121
|
+
newBlock.attributes[field.attributes.api_key] =
|
|
122
|
+
await mapBlocksInNonLocalizedFieldValue(newBlock.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, mapper, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
152
123
|
}
|
|
153
|
-
return
|
|
154
|
-
}
|
|
124
|
+
return newBlock;
|
|
125
|
+
}
|
|
126
|
+
const blockCopy = { ...block };
|
|
127
|
+
for (const field of fields) {
|
|
128
|
+
blockCopy.attributes[field.attributes.api_key] =
|
|
129
|
+
await mapBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, mapper, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
130
|
+
}
|
|
131
|
+
return await mapper(blockCopy, blockPath);
|
|
155
132
|
});
|
|
156
133
|
}
|
|
157
134
|
//# sourceMappingURL=recursiveBlocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recursiveBlocks.js","sourceRoot":"","sources":["../../../src/utilities/recursiveBlocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recursiveBlocks.js","sourceRoot":"","sources":["../../../src/utilities/recursiveBlocks.ts"],"names":[],"mappings":"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"}
|