@datocms/cma-client 5.1.5 → 5.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/fieldTypes/gallery.js +0 -2
- package/dist/cjs/fieldTypes/gallery.js.map +1 -1
- package/dist/cjs/fieldTypes/links.js +0 -2
- package/dist/cjs/fieldTypes/links.js.map +1 -1
- package/dist/cjs/fieldTypes/rich_text.js +0 -4
- package/dist/cjs/fieldTypes/rich_text.js.map +1 -1
- package/dist/cjs/generated/Client.js +1 -1
- package/dist/cjs/generated/resources/Item.js +2 -2
- package/dist/cjs/generated/resources/Item.js.map +1 -1
- package/dist/cjs/utilities/fieldValue.js +14 -9
- package/dist/cjs/utilities/fieldValue.js.map +1 -1
- package/dist/cjs/utilities/schemaRepository.js +64 -0
- package/dist/cjs/utilities/schemaRepository.js.map +1 -1
- package/dist/esm/fieldTypes/gallery.js +0 -2
- package/dist/esm/fieldTypes/gallery.js.map +1 -1
- package/dist/esm/fieldTypes/links.d.ts +1 -1
- package/dist/esm/fieldTypes/links.js +0 -2
- package/dist/esm/fieldTypes/links.js.map +1 -1
- package/dist/esm/fieldTypes/rich_text.js +0 -4
- package/dist/esm/fieldTypes/rich_text.js.map +1 -1
- package/dist/esm/generated/ApiTypes.d.ts +743 -5
- package/dist/esm/generated/Client.js +1 -1
- package/dist/esm/generated/RawApiTypes.d.ts +743 -5
- package/dist/esm/generated/resources/Item.js +2 -2
- package/dist/esm/generated/resources/Item.js.map +1 -1
- package/dist/esm/utilities/fieldValue.d.ts +18 -19
- package/dist/esm/utilities/fieldValue.js +14 -9
- package/dist/esm/utilities/fieldValue.js.map +1 -1
- package/dist/esm/utilities/itemDefinition.d.ts +27 -14
- package/dist/esm/utilities/schemaRepository.d.ts +64 -0
- package/dist/esm/utilities/schemaRepository.js +64 -0
- package/dist/esm/utilities/schemaRepository.js.map +1 -1
- package/dist/types/fieldTypes/links.d.ts +1 -1
- package/dist/types/generated/ApiTypes.d.ts +743 -5
- package/dist/types/generated/RawApiTypes.d.ts +743 -5
- package/dist/types/utilities/fieldValue.d.ts +18 -19
- package/dist/types/utilities/itemDefinition.d.ts +27 -14
- package/dist/types/utilities/schemaRepository.d.ts +64 -0
- package/package.json +4 -4
- package/src/fieldTypes/gallery.ts +0 -1
- package/src/fieldTypes/links.ts +1 -2
- package/src/fieldTypes/rich_text.ts +0 -4
- package/src/generated/ApiTypes.ts +743 -5
- package/src/generated/Client.ts +1 -1
- package/src/generated/RawApiTypes.ts +743 -5
- package/src/generated/resources/Item.ts +2 -2
- package/src/utilities/fieldValue.ts +96 -79
- package/src/utilities/itemDefinition.ts +99 -72
- package/src/utilities/schemaRepository.ts +64 -0
|
@@ -399,7 +399,7 @@ export default class Item extends BaseResource {
|
|
|
399
399
|
.request({
|
|
400
400
|
method: 'PUT',
|
|
401
401
|
url: `/items/${itemId}/publish`,
|
|
402
|
-
body: Utils.serializeRawRequestBodyWithItems(body),
|
|
402
|
+
body: body ? Utils.serializeRawRequestBodyWithItems(body) : undefined,
|
|
403
403
|
queryParams,
|
|
404
404
|
})
|
|
405
405
|
.then(Utils.deserializeRawResponseBodyWithItems);
|
|
@@ -434,7 +434,7 @@ export default class Item extends BaseResource {
|
|
|
434
434
|
.request({
|
|
435
435
|
method: 'PUT',
|
|
436
436
|
url: `/items/${itemId}/unpublish`,
|
|
437
|
-
body: Utils.serializeRawRequestBodyWithItems(body),
|
|
437
|
+
body: body ? Utils.serializeRawRequestBodyWithItems(body) : undefined,
|
|
438
438
|
queryParams,
|
|
439
439
|
})
|
|
440
440
|
.then(Utils.deserializeRawResponseBodyWithItems);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/generated/resources/Item.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/generated/resources/Item.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import type * as RawApiTypes from '../generated/RawApiTypes';
|
|
|
7
7
|
* for various locales structured as an object, such as
|
|
8
8
|
* `{ "en": "Hello", "it": "Ciao" }`
|
|
9
9
|
*/
|
|
10
|
-
export type LocalizedFieldValue<T = unknown> = Record<
|
|
10
|
+
export type LocalizedFieldValue<T = unknown, L extends string = string> = Partial<Record<L, T>>;
|
|
11
11
|
/**
|
|
12
12
|
* Determines whether a DatoCMS field is localized or not.
|
|
13
13
|
*
|
|
@@ -26,11 +26,10 @@ export declare function isLocalized(field: RawApiTypes.Field | ApiTypes.Field):
|
|
|
26
26
|
*
|
|
27
27
|
* This uniform structure allows the same processing logic to work with both field types.
|
|
28
28
|
*/
|
|
29
|
-
export type FieldValueEntry = {
|
|
30
|
-
locale:
|
|
31
|
-
value:
|
|
29
|
+
export type FieldValueEntry<T = unknown, L extends string = string> = {
|
|
30
|
+
locale: L | undefined;
|
|
31
|
+
value: T;
|
|
32
32
|
};
|
|
33
|
-
export type PossiblyLocalizedEntry = FieldValueEntry;
|
|
34
33
|
/**
|
|
35
34
|
* Converts a field value (localized or non-localized) into a uniform array of entries.
|
|
36
35
|
*
|
|
@@ -41,19 +40,19 @@ export type PossiblyLocalizedEntry = FieldValueEntry;
|
|
|
41
40
|
* @param value - The field value to convert (either a localized object or direct value)
|
|
42
41
|
* @returns Array of entries where each entry contains a locale (string for localized, undefined for non-localized) and the corresponding value
|
|
43
42
|
*/
|
|
44
|
-
export declare function fieldValueToEntries(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
43
|
+
export declare function fieldValueToEntries<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>): FieldValueEntry<T, L>[];
|
|
45
44
|
/**
|
|
46
45
|
* Converts an array of possibly localized entries back into the appropriate field value format.
|
|
47
46
|
*
|
|
48
|
-
* This function is the inverse of `
|
|
47
|
+
* This function is the inverse of `fieldValueToEntries`. It takes a uniform
|
|
49
48
|
* array of entries and converts them back to either a localized object or a direct value,
|
|
50
49
|
* depending on the field's localization setting.
|
|
51
50
|
*
|
|
52
51
|
* @param field - The DatoCMS field definition that determines the output format
|
|
53
|
-
* @param
|
|
52
|
+
* @param entries - Array of entries to convert back to field value format
|
|
54
53
|
* @returns Either a localized object (for localized fields) or the direct value (for non-localized fields)
|
|
55
54
|
*/
|
|
56
|
-
export declare function entriesToFieldValue(field: RawApiTypes.Field | ApiTypes.Field,
|
|
55
|
+
export declare function entriesToFieldValue<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, entries: FieldValueEntry<T, L>[]): T | LocalizedFieldValue<T, L>;
|
|
57
56
|
/**
|
|
58
57
|
* Maps field values using a provided mapping function.
|
|
59
58
|
* For localized fields, applies the mapping function to each locale value.
|
|
@@ -65,7 +64,7 @@ export declare function entriesToFieldValue(field: RawApiTypes.Field | ApiTypes.
|
|
|
65
64
|
* @param mapFn - The function to apply to each locale value or the direct value
|
|
66
65
|
* @returns The mapped value with the same structure as the input
|
|
67
66
|
*/
|
|
68
|
-
export declare function mapFieldValue<
|
|
67
|
+
export declare function mapFieldValue<TInput = unknown, TOutput = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: TInput | LocalizedFieldValue<TInput, L>, mapFn: (locale: L | undefined, localeValue: TInput) => TOutput): TOutput | LocalizedFieldValue<TOutput, L>;
|
|
69
68
|
/**
|
|
70
69
|
* Maps field values using a provided mapping function (async version).
|
|
71
70
|
* For localized fields, applies the mapping function to each locale value.
|
|
@@ -77,7 +76,7 @@ export declare function mapFieldValue<T>(field: RawApiTypes.Field | ApiTypes.Fie
|
|
|
77
76
|
* @param mapFn - The function to apply to each locale value or the direct value
|
|
78
77
|
* @returns The mapped value with the same structure as the input
|
|
79
78
|
*/
|
|
80
|
-
export declare function mapFieldValueAsync<
|
|
79
|
+
export declare function mapFieldValueAsync<TInput = unknown, TOutput = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: TInput | LocalizedFieldValue<TInput, L>, mapFn: (locale: L | undefined, localeValue: TInput) => Promise<TOutput>): Promise<TOutput | LocalizedFieldValue<TOutput, L>>;
|
|
81
80
|
/**
|
|
82
81
|
* Filters field values using a provided filter function.
|
|
83
82
|
* For localized fields, filters each locale value.
|
|
@@ -88,7 +87,7 @@ export declare function mapFieldValueAsync<T>(field: RawApiTypes.Field | ApiType
|
|
|
88
87
|
* @param filterFn - The function to test each locale value or the direct value
|
|
89
88
|
* @returns The filtered value with the same structure as the input
|
|
90
89
|
*/
|
|
91
|
-
export declare function filterFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
90
|
+
export declare function filterFieldValue<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, filterFn: (locale: L | undefined, localeValue: T) => boolean): T | LocalizedFieldValue<T, L> | undefined;
|
|
92
91
|
/**
|
|
93
92
|
* Filters field values using a provided filter function (async version).
|
|
94
93
|
* For localized fields, filters each locale value.
|
|
@@ -99,7 +98,7 @@ export declare function filterFieldValue(field: RawApiTypes.Field | ApiTypes.Fie
|
|
|
99
98
|
* @param filterFn - The function to test each locale value or the direct value
|
|
100
99
|
* @returns The filtered value with the same structure as the input
|
|
101
100
|
*/
|
|
102
|
-
export declare function filterFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
101
|
+
export declare function filterFieldValueAsync<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, filterFn: (locale: L | undefined, localeValue: T) => Promise<boolean>): Promise<T | LocalizedFieldValue<T, L> | undefined>;
|
|
103
102
|
/**
|
|
104
103
|
* Tests whether at least one field value passes the test implemented by the provided function.
|
|
105
104
|
* For localized fields, tests each locale value.
|
|
@@ -110,7 +109,7 @@ export declare function filterFieldValueAsync(field: RawApiTypes.Field | ApiType
|
|
|
110
109
|
* @param testFn - The function to test each locale value or the direct value
|
|
111
110
|
* @returns true if at least one value passes the test, false otherwise
|
|
112
111
|
*/
|
|
113
|
-
export declare function someFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
112
|
+
export declare function someFieldValue<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, testFn: (locale: L | undefined, localeValue: T) => boolean): boolean;
|
|
114
113
|
/**
|
|
115
114
|
* Tests whether at least one field value passes the test implemented by the provided function (async version).
|
|
116
115
|
* For localized fields, tests each locale value.
|
|
@@ -121,7 +120,7 @@ export declare function someFieldValue(field: RawApiTypes.Field | ApiTypes.Field
|
|
|
121
120
|
* @param testFn - The function to test each locale value or the direct value
|
|
122
121
|
* @returns true if at least one value passes the test, false otherwise
|
|
123
122
|
*/
|
|
124
|
-
export declare function someFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
123
|
+
export declare function someFieldValueAsync<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, testFn: (locale: L | undefined, localeValue: T) => Promise<boolean>): Promise<boolean>;
|
|
125
124
|
/**
|
|
126
125
|
* Tests whether all field values pass the test implemented by the provided function.
|
|
127
126
|
* For localized fields, tests each locale value.
|
|
@@ -132,7 +131,7 @@ export declare function someFieldValueAsync(field: RawApiTypes.Field | ApiTypes.
|
|
|
132
131
|
* @param testFn - The function to test each locale value or the direct value
|
|
133
132
|
* @returns true if all values pass the test, false otherwise
|
|
134
133
|
*/
|
|
135
|
-
export declare function everyFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
134
|
+
export declare function everyFieldValue<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, testFn: (locale: L | undefined, localeValue: T) => boolean): boolean;
|
|
136
135
|
/**
|
|
137
136
|
* Tests whether all field values pass the test implemented by the provided function (async version).
|
|
138
137
|
* For localized fields, tests each locale value.
|
|
@@ -143,7 +142,7 @@ export declare function everyFieldValue(field: RawApiTypes.Field | ApiTypes.Fiel
|
|
|
143
142
|
* @param testFn - The function to test each locale value or the direct value
|
|
144
143
|
* @returns true if all values pass the test, false otherwise
|
|
145
144
|
*/
|
|
146
|
-
export declare function everyFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
145
|
+
export declare function everyFieldValueAsync<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, testFn: (locale: L | undefined, localeValue: T) => Promise<boolean>): Promise<boolean>;
|
|
147
146
|
/**
|
|
148
147
|
* Visits each field value with the provided function.
|
|
149
148
|
* For localized fields, visits each locale value.
|
|
@@ -153,7 +152,7 @@ export declare function everyFieldValueAsync(field: RawApiTypes.Field | ApiTypes
|
|
|
153
152
|
* @param value - The field value (either localized object or direct value)
|
|
154
153
|
* @param visitFn - The function to call for each locale value or the direct value
|
|
155
154
|
*/
|
|
156
|
-
export declare function visitFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
155
|
+
export declare function visitFieldValue<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, visitFn: (locale: L | undefined, localeValue: T) => void): void;
|
|
157
156
|
/**
|
|
158
157
|
* Visits each field value with the provided function (async version).
|
|
159
158
|
* For localized fields, visits each locale value.
|
|
@@ -163,4 +162,4 @@ export declare function visitFieldValue(field: RawApiTypes.Field | ApiTypes.Fiel
|
|
|
163
162
|
* @param value - The field value (either localized object or direct value)
|
|
164
163
|
* @param visitFn - The function to call for each locale value or the direct value
|
|
165
164
|
*/
|
|
166
|
-
export declare function visitFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value:
|
|
165
|
+
export declare function visitFieldValueAsync<T = unknown, L extends string = string>(field: RawApiTypes.Field | ApiTypes.Field, value: T | LocalizedFieldValue<T, L>, visitFn: (locale: L | undefined, localeValue: T) => Promise<void>): Promise<void>;
|
|
@@ -32,27 +32,32 @@ export function isLocalized(field) {
|
|
|
32
32
|
export function fieldValueToEntries(field, value) {
|
|
33
33
|
if (isLocalized(field)) {
|
|
34
34
|
const localizedValue = value;
|
|
35
|
-
return Object.entries(localizedValue).map(([locale, value]) => ({
|
|
35
|
+
return Object.entries(localizedValue).map(([locale, value]) => ({
|
|
36
|
+
locale: locale,
|
|
37
|
+
value: value,
|
|
38
|
+
}));
|
|
36
39
|
}
|
|
37
|
-
return [{ locale: undefined, value }];
|
|
40
|
+
return [{ locale: undefined, value: value }];
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* Converts an array of possibly localized entries back into the appropriate field value format.
|
|
41
44
|
*
|
|
42
|
-
* This function is the inverse of `
|
|
45
|
+
* This function is the inverse of `fieldValueToEntries`. It takes a uniform
|
|
43
46
|
* array of entries and converts them back to either a localized object or a direct value,
|
|
44
47
|
* depending on the field's localization setting.
|
|
45
48
|
*
|
|
46
49
|
* @param field - The DatoCMS field definition that determines the output format
|
|
47
|
-
* @param
|
|
50
|
+
* @param entries - Array of entries to convert back to field value format
|
|
48
51
|
* @returns Either a localized object (for localized fields) or the direct value (for non-localized fields)
|
|
49
52
|
*/
|
|
50
|
-
export function entriesToFieldValue(field,
|
|
51
|
-
var _a;
|
|
53
|
+
export function entriesToFieldValue(field, entries) {
|
|
52
54
|
if (isLocalized(field)) {
|
|
53
|
-
return Object.fromEntries(
|
|
55
|
+
return Object.fromEntries(entries.map(({ locale, value }) => [locale, value]));
|
|
56
|
+
}
|
|
57
|
+
if (entries.length === 0) {
|
|
58
|
+
throw new Error('There must be at least one entry!');
|
|
54
59
|
}
|
|
55
|
-
return
|
|
60
|
+
return entries[0].value;
|
|
56
61
|
}
|
|
57
62
|
/**
|
|
58
63
|
* Maps field values using a provided mapping function.
|
|
@@ -109,7 +114,7 @@ export function mapFieldValueAsync(field, value, mapFn) {
|
|
|
109
114
|
export function filterFieldValue(field, value, filterFn) {
|
|
110
115
|
var _a;
|
|
111
116
|
const entries = fieldValueToEntries(field, value);
|
|
112
|
-
const filteredEntries = entries.filter((
|
|
117
|
+
const filteredEntries = entries.filter((entry) => filterFn(entry.locale, entry.value));
|
|
113
118
|
if (isLocalized(field)) {
|
|
114
119
|
return entriesToFieldValue(field, filteredEntries);
|
|
115
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldValue.js","sourceRoot":"","sources":["../../../src/utilities/fieldValue.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"fieldValue.js","sourceRoot":"","sources":["../../../src/utilities/fieldValue.ts"],"names":[],"mappings":";;;;;;;;;AAkCA;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,KAAyC;IAEzC,OAAO,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AAC9E,CAAC;AAeD;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAyC,EACzC,KAAoC;IAEpC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,MAAM,cAAc,GAAG,KAAkC,CAAC;QAE1D,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,EAAE,MAAW;YACnB,KAAK,EAAE,KAAU;SAClB,CAAC,CAAC,CAAC;KACL;IAED,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAyC,EACzC,OAAgC;IAEhC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CACvB,CAAC;KAChC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;IAED,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAK3B,KAAyC,EACzC,KAA8C,EAC9C,KAA8D;IAE9D,MAAM,OAAO,GAAG,mBAAmB,CAAY,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;KAC5B,CAAC,CAAC,CAAC;IACJ,OAAO,mBAAmB,CAAa,KAAK,EAAE,aAAa,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAgB,kBAAkB,CAKtC,KAAyC,EACzC,KAA8C,EAC9C,KAAuE;;QAEvE,MAAM,OAAO,GAAG,mBAAmB,CAAY,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,OAAO,CAAC,GAAG,CAAC,CAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAAC,OAAA,CAAC;gBACxC,MAAM;gBACN,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;aAClC,CAAC,CAAA;UAAA,CAAC,CACJ,CAAC;QACF,OAAO,mBAAmB,CAAa,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAyC,EACzC,KAAoC,EACpC,QAA4D;;IAE5D,MAAM,OAAO,GAAG,mBAAmB,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CACpC,CAAC;IAEF,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,mBAAmB,CAAO,KAAK,EAAE,eAAe,CAAC,CAAC;KAC1D;IAED,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAA,eAAe,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAgB,qBAAqB,CAIzC,KAAyC,EACzC,KAAoC,EACpC,QAAqE;;;QAErE,MAAM,OAAO,GAAG,mBAAmB,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,CAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAAC,OAAA,CAAC;gBACxC,MAAM;gBACN,KAAK;gBACL,MAAM,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;aACtC,CAAC,CAAA;UAAA,CAAC,CACJ,CAAC;QAEF,MAAM,eAAe,GAAG,OAAO;aAC5B,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;aAC9B,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEnD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,mBAAmB,CAAO,KAAK,EAAE,eAAe,CAAC,CAAC;SAC1D;QAED,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAA,eAAe,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;;CAC3E;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAyC,EACzC,KAAoC,EACpC,MAA0D;IAE1D,MAAM,OAAO,GAAG,mBAAmB,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAgB,mBAAmB,CAIvC,KAAyC,EACzC,KAAoC,EACpC,MAAmE;;QAEnE,MAAM,OAAO,GAAG,mBAAmB,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC1D,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAyC,EACzC,KAAoC,EACpC,MAA0D;IAE1D,OAAO,CAAC,cAAc,CACpB,KAAK,EACL,KAAK,EACL,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CACtD,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAgB,oBAAoB,CAIxC,KAAyC,EACzC,KAAoC,EACpC,MAAmE;;QAEnE,OAAO,CAAC,CAAC,MAAM,mBAAmB,CAChC,KAAK,EACL,KAAK,EACL,CAAO,MAAM,EAAE,WAAW,EAAE,EAAE,gDAAC,OAAA,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA,GAAA,CACpE,CAAC,CAAC;IACL,CAAC;CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAyC,EACzC,KAAoC,EACpC,OAAwD;IAExD,MAAM,OAAO,GAAG,mBAAmB,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE;QACvC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACxB;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAgB,oBAAoB,CAIxC,KAAyC,EACzC,KAAoC,EACpC,OAAiE;;QAEjE,MAAM,OAAO,GAAG,mBAAmB,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;CAAA"}
|
|
@@ -12,13 +12,18 @@ type SingleBlockFieldDefinition<AllowedBlocks extends ItemTypeDefinition = ItemT
|
|
|
12
12
|
blocks: AllowedBlocks;
|
|
13
13
|
};
|
|
14
14
|
type StructuredTextFieldDefinition<AllowedBlocks extends ItemTypeDefinition = ItemTypeDefinition, AllowedInlineBlocks extends ItemTypeDefinition = ItemTypeDefinition> = BaseFieldDefinition<'structured_text'> & {
|
|
15
|
-
blocks
|
|
16
|
-
inline_blocks
|
|
15
|
+
blocks?: AllowedBlocks;
|
|
16
|
+
inline_blocks?: AllowedInlineBlocks;
|
|
17
17
|
};
|
|
18
18
|
/** Field definition union */
|
|
19
19
|
export type FieldDefinition = BaseFieldDefinition<'boolean' | 'color' | 'date' | 'date_time' | 'file' | 'float' | 'gallery' | 'integer' | 'json' | 'lat_lon' | 'link' | 'links' | 'seo' | 'slug' | 'string' | 'text' | 'video' | 'unknown'> | RichTextFieldDefinition | SingleBlockFieldDefinition | StructuredTextFieldDefinition;
|
|
20
20
|
/** Item type definition */
|
|
21
|
-
export type ItemTypeDefinition<
|
|
21
|
+
export type ItemTypeDefinition<Settings extends {
|
|
22
|
+
locales: string;
|
|
23
|
+
} = {
|
|
24
|
+
locales: string;
|
|
25
|
+
}, ItemTypeId extends string = string, FieldDefinitions extends Record<string, FieldDefinition> = {}> = {
|
|
26
|
+
settings: Settings;
|
|
22
27
|
itemTypeId: ItemTypeId;
|
|
23
28
|
fields: FieldDefinitions;
|
|
24
29
|
};
|
|
@@ -52,23 +57,31 @@ type FieldTypeToValue = {
|
|
|
52
57
|
unknown: unknown;
|
|
53
58
|
};
|
|
54
59
|
/** Localized wrapper */
|
|
55
|
-
type LocalizeIfNeeded<T extends FieldDefinition, Value> = T extends {
|
|
60
|
+
type LocalizeIfNeeded<T extends FieldDefinition, Value, Locales extends string> = T extends {
|
|
56
61
|
localized: true;
|
|
57
|
-
} ? LocalizedFieldValue<Value> : Value;
|
|
62
|
+
} ? LocalizedFieldValue<Value, Locales> : Value;
|
|
58
63
|
/** Standard mapping */
|
|
59
|
-
type FieldDefinitionToFieldValue<T extends FieldDefinition> = LocalizeIfNeeded<T, FieldTypeToValue[T['type']]>;
|
|
64
|
+
type FieldDefinitionToFieldValue<T extends FieldDefinition, Locales extends string> = LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
|
|
60
65
|
/** AsRequest mapping (block fields become generic over allowed blocks) */
|
|
61
|
-
type FieldDefinitionToFieldValueAsRequest<T extends FieldDefinition> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueAsRequest<ItemTypeDefinitionToItemDefinitionAsRequest<B
|
|
62
|
-
|
|
66
|
+
type FieldDefinitionToFieldValueAsRequest<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueAsRequest<ItemTypeDefinitionToItemDefinitionAsRequest<B>>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueAsRequest<ItemTypeDefinitionToItemDefinitionAsRequest<B>>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueAsRequest<T extends {
|
|
67
|
+
blocks: any;
|
|
68
|
+
} ? ItemTypeDefinitionToItemDefinitionAsRequest<B> : never, T extends {
|
|
69
|
+
inline_blocks: any;
|
|
70
|
+
} ? ItemTypeDefinitionToItemDefinitionAsRequest<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
|
|
71
|
+
type FieldDefinitionToFieldValueWithNestedBlocks<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueWithNestedBlocks<ItemTypeDefinitionToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueWithNestedBlocks<ItemTypeDefinitionToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueWithNestedBlocks<T extends {
|
|
72
|
+
blocks: any;
|
|
73
|
+
} ? ItemTypeDefinitionToItemDefinitionWithNestedBlocks<B> : never, T extends {
|
|
74
|
+
inline_blocks: any;
|
|
75
|
+
} ? ItemTypeDefinitionToItemDefinitionWithNestedBlocks<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
|
|
63
76
|
/** Transformers */
|
|
64
|
-
export type ItemTypeDefinitionToItemDefinition<T extends ItemTypeDefinition
|
|
65
|
-
[K in keyof
|
|
77
|
+
export type ItemTypeDefinitionToItemDefinition<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? ItemDefinition<ItemTypeId> : ItemDefinition<ItemTypeId, {
|
|
78
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValue<Fields[K], Settings['locales']> : never;
|
|
66
79
|
}> : never;
|
|
67
|
-
export type ItemTypeDefinitionToItemDefinitionAsRequest<T extends ItemTypeDefinition
|
|
68
|
-
[K in keyof
|
|
80
|
+
export type ItemTypeDefinitionToItemDefinitionAsRequest<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? ItemDefinition<ItemTypeId> : ItemDefinition<ItemTypeId, Partial<{
|
|
81
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueAsRequest<Fields[K], Settings['locales']> : never;
|
|
69
82
|
}>> : never;
|
|
70
|
-
export type ItemTypeDefinitionToItemDefinitionWithNestedBlocks<T extends ItemTypeDefinition
|
|
71
|
-
[K in keyof
|
|
83
|
+
export type ItemTypeDefinitionToItemDefinitionWithNestedBlocks<T extends ItemTypeDefinition<any, any, any>> = T extends ItemTypeDefinition<infer Settings, infer ItemTypeId, infer Fields> ? keyof Fields extends never ? ItemDefinition<ItemTypeId> : ItemDefinition<ItemTypeId, {
|
|
84
|
+
[K in keyof Fields]: Fields[K] extends FieldDefinition ? FieldDefinitionToFieldValueWithNestedBlocks<Fields[K], Settings['locales']> : never;
|
|
72
85
|
}> : never;
|
|
73
86
|
export type UnknownField = Record<string, unknown>;
|
|
74
87
|
export {};
|
|
@@ -28,6 +28,70 @@ interface GenericClient {
|
|
|
28
28
|
/**
|
|
29
29
|
* Repository for DatoCMS schema entities including item types, fields, and plugins.
|
|
30
30
|
* Provides caching and efficient lookup functionality for schema-related operations.
|
|
31
|
+
*
|
|
32
|
+
* ## Purpose
|
|
33
|
+
*
|
|
34
|
+
* SchemaRepository is designed to solve the performance problem of repeatedly fetching
|
|
35
|
+
* the same schema information during complex operations that traverse nested blocks,
|
|
36
|
+
* structured text, or modular content. It acts as an in-memory cache/memoization layer
|
|
37
|
+
* for schema entities to avoid redundant API calls.
|
|
38
|
+
*
|
|
39
|
+
* ## What it's for:
|
|
40
|
+
*
|
|
41
|
+
* - **Caching schema entities**: Automatically caches item types, fields, fieldsets,
|
|
42
|
+
* and plugins after the first API request, returning cached results on subsequent calls
|
|
43
|
+
* - **Complex traversal operations**: Essential when using utilities like
|
|
44
|
+
* `mapBlocksInFieldValues()` that need to repeatedly lookup block models and fields
|
|
45
|
+
* while traversing nested content structures
|
|
46
|
+
* - **Bulk operations**: Ideal for scripts that process multiple records of different
|
|
47
|
+
* types and need efficient access to schema information
|
|
48
|
+
* - **Read-heavy workflows**: Perfect for scenarios where you need to repeatedly access
|
|
49
|
+
* the same schema information without making redundant API calls
|
|
50
|
+
*
|
|
51
|
+
* ## What it's NOT for:
|
|
52
|
+
*
|
|
53
|
+
* - **Schema modification**: Do NOT use SchemaRepository if your script modifies models,
|
|
54
|
+
* fields, fieldsets, or plugins, as the cache will become stale
|
|
55
|
+
* - **Record/content operations**: This is only for schema entities, not for records,
|
|
56
|
+
* uploads, or other content
|
|
57
|
+
* - **Long-running applications**: The cache has no expiration or invalidation mechanism,
|
|
58
|
+
* so it's not suitable for applications that need fresh schema data over time
|
|
59
|
+
* - **Concurrent schema changes**: No protection against cache inconsistency if other
|
|
60
|
+
* processes modify the schema while your script runs
|
|
61
|
+
*
|
|
62
|
+
* ## Usage Pattern
|
|
63
|
+
*
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const schemaRepository = new SchemaRepository(client);
|
|
66
|
+
*
|
|
67
|
+
* // These calls will hit the API and cache the results
|
|
68
|
+
* const models = await schemaRepository.getAllModels();
|
|
69
|
+
* const blogPost = await schemaRepository.getItemTypeByApiKey('blog_post');
|
|
70
|
+
*
|
|
71
|
+
* // These subsequent calls will return cached results (no API calls)
|
|
72
|
+
* const sameModels = await schemaRepository.getAllModels();
|
|
73
|
+
* const sameBlogPost = await schemaRepository.getItemTypeByApiKey('blog_post');
|
|
74
|
+
*
|
|
75
|
+
* // Pass the repository to utilities that need schema information
|
|
76
|
+
* await mapBlocksInFieldValues(schemaRepository, record, (block) => {
|
|
77
|
+
* // The utility will use the cached schema data internally
|
|
78
|
+
* });
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* ## Performance Benefits
|
|
82
|
+
*
|
|
83
|
+
* Without SchemaRepository, a script processing structured text with nested blocks
|
|
84
|
+
* might make the same `client.itemTypes.list()` or `client.fields.list()` calls
|
|
85
|
+
* dozens of times. SchemaRepository ensures each unique schema request is made only once.
|
|
86
|
+
*
|
|
87
|
+
* ## Best Practices
|
|
88
|
+
*
|
|
89
|
+
* - Use SchemaRepository consistently throughout your script — if you need it for one
|
|
90
|
+
* utility call, use it for all schema operations to maximize cache efficiency
|
|
91
|
+
* - Create one instance per script execution, not per operation
|
|
92
|
+
* - Only use when you have read-only access to schema entities
|
|
93
|
+
* - Consider using optimistic locking for any record updates to handle potential
|
|
94
|
+
* version conflicts when working with cached schema information
|
|
31
95
|
*/
|
|
32
96
|
export declare class SchemaRepository {
|
|
33
97
|
private client;
|
|
@@ -11,6 +11,70 @@ import { deserializeResponseBody } from '@datocms/rest-client-utils';
|
|
|
11
11
|
/**
|
|
12
12
|
* Repository for DatoCMS schema entities including item types, fields, and plugins.
|
|
13
13
|
* Provides caching and efficient lookup functionality for schema-related operations.
|
|
14
|
+
*
|
|
15
|
+
* ## Purpose
|
|
16
|
+
*
|
|
17
|
+
* SchemaRepository is designed to solve the performance problem of repeatedly fetching
|
|
18
|
+
* the same schema information during complex operations that traverse nested blocks,
|
|
19
|
+
* structured text, or modular content. It acts as an in-memory cache/memoization layer
|
|
20
|
+
* for schema entities to avoid redundant API calls.
|
|
21
|
+
*
|
|
22
|
+
* ## What it's for:
|
|
23
|
+
*
|
|
24
|
+
* - **Caching schema entities**: Automatically caches item types, fields, fieldsets,
|
|
25
|
+
* and plugins after the first API request, returning cached results on subsequent calls
|
|
26
|
+
* - **Complex traversal operations**: Essential when using utilities like
|
|
27
|
+
* `mapBlocksInFieldValues()` that need to repeatedly lookup block models and fields
|
|
28
|
+
* while traversing nested content structures
|
|
29
|
+
* - **Bulk operations**: Ideal for scripts that process multiple records of different
|
|
30
|
+
* types and need efficient access to schema information
|
|
31
|
+
* - **Read-heavy workflows**: Perfect for scenarios where you need to repeatedly access
|
|
32
|
+
* the same schema information without making redundant API calls
|
|
33
|
+
*
|
|
34
|
+
* ## What it's NOT for:
|
|
35
|
+
*
|
|
36
|
+
* - **Schema modification**: Do NOT use SchemaRepository if your script modifies models,
|
|
37
|
+
* fields, fieldsets, or plugins, as the cache will become stale
|
|
38
|
+
* - **Record/content operations**: This is only for schema entities, not for records,
|
|
39
|
+
* uploads, or other content
|
|
40
|
+
* - **Long-running applications**: The cache has no expiration or invalidation mechanism,
|
|
41
|
+
* so it's not suitable for applications that need fresh schema data over time
|
|
42
|
+
* - **Concurrent schema changes**: No protection against cache inconsistency if other
|
|
43
|
+
* processes modify the schema while your script runs
|
|
44
|
+
*
|
|
45
|
+
* ## Usage Pattern
|
|
46
|
+
*
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const schemaRepository = new SchemaRepository(client);
|
|
49
|
+
*
|
|
50
|
+
* // These calls will hit the API and cache the results
|
|
51
|
+
* const models = await schemaRepository.getAllModels();
|
|
52
|
+
* const blogPost = await schemaRepository.getItemTypeByApiKey('blog_post');
|
|
53
|
+
*
|
|
54
|
+
* // These subsequent calls will return cached results (no API calls)
|
|
55
|
+
* const sameModels = await schemaRepository.getAllModels();
|
|
56
|
+
* const sameBlogPost = await schemaRepository.getItemTypeByApiKey('blog_post');
|
|
57
|
+
*
|
|
58
|
+
* // Pass the repository to utilities that need schema information
|
|
59
|
+
* await mapBlocksInFieldValues(schemaRepository, record, (block) => {
|
|
60
|
+
* // The utility will use the cached schema data internally
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* ## Performance Benefits
|
|
65
|
+
*
|
|
66
|
+
* Without SchemaRepository, a script processing structured text with nested blocks
|
|
67
|
+
* might make the same `client.itemTypes.list()` or `client.fields.list()` calls
|
|
68
|
+
* dozens of times. SchemaRepository ensures each unique schema request is made only once.
|
|
69
|
+
*
|
|
70
|
+
* ## Best Practices
|
|
71
|
+
*
|
|
72
|
+
* - Use SchemaRepository consistently throughout your script — if you need it for one
|
|
73
|
+
* utility call, use it for all schema operations to maximize cache efficiency
|
|
74
|
+
* - Create one instance per script execution, not per operation
|
|
75
|
+
* - Only use when you have read-only access to schema entities
|
|
76
|
+
* - Consider using optimistic locking for any record updates to handle potential
|
|
77
|
+
* version conflicts when working with cached schema information
|
|
14
78
|
*/
|
|
15
79
|
export class SchemaRepository {
|
|
16
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaRepository.js","sourceRoot":"","sources":["../../../src/utilities/schemaRepository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAoBrE
|
|
1
|
+
{"version":3,"file":"schemaRepository.js","sourceRoot":"","sources":["../../../src/utilities/schemaRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { LinksEmbedEditorConfiguration } from './appearance/links_embed';
|
|
|
3
3
|
import type { LinksSelectEditorConfiguration } from './appearance/links_select';
|
|
4
4
|
import type { ItemsItemTypeValidator } from './validators/items_item_type';
|
|
5
5
|
import type { SizeValidator } from './validators/size';
|
|
6
|
-
export type LinksFieldValue = string[]
|
|
6
|
+
export type LinksFieldValue = string[];
|
|
7
7
|
export declare function isLinksFieldValue(value: unknown): value is LinksFieldValue;
|
|
8
8
|
export declare function isLocalizedLinksFieldValue(value: unknown): value is LocalizedFieldValue<LinksFieldValue>;
|
|
9
9
|
export type LinksFieldValidators = {
|