@datocms/cma-client
Version:
JS client for DatoCMS REST Content Management API
37 lines • 1.38 kB
JavaScript
import { isLocalizedFieldValue, } from '../utilities/normalizedFieldValues';
/**
* =============================================================================
* TYPE GUARDS - Runtime validation functions
* =============================================================================
*/
/**
* Type guard for basic File field values (response format with all fields present).
* Validates that all required metadata fields are present.
*/
export function isFileFieldValue(value) {
if (value === null)
return true;
return (isLocalizedFieldValue(value) &&
'upload_id' in value &&
'alt' in value &&
'title' in value &&
'custom_data' in value &&
'focal_point' in value);
}
/**
* Type guard for File field values in API request format.
* Allows metadata fields to be optional or omitted.
*/
export function isFileFieldValueInRequest(value) {
if (value === null)
return true;
return typeof value === 'object' && value !== null && 'upload_id' in value;
}
export function isLocalizedFileFieldValue(value) {
return (isLocalizedFieldValue(value) && Object.values(value).every(isFileFieldValue));
}
export function isLocalizedFileFieldValueInRequest(value) {
return (isLocalizedFieldValue(value) &&
Object.values(value).every(isFileFieldValueInRequest));
}
//# sourceMappingURL=file.js.map