UNPKG

@datocms/cma-client

Version:
44 lines 1.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isLocalizedFileFieldValueInRequest = exports.isLocalizedFileFieldValue = exports.isFileFieldValueInRequest = exports.isFileFieldValue = void 0; const normalizedFieldValues_1 = require("../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. */ function isFileFieldValue(value) { if (value === null) return true; return ((0, normalizedFieldValues_1.isLocalizedFieldValue)(value) && 'upload_id' in value && 'alt' in value && 'title' in value && 'custom_data' in value && 'focal_point' in value); } exports.isFileFieldValue = isFileFieldValue; /** * Type guard for File field values in API request format. * Allows metadata fields to be optional or omitted. */ function isFileFieldValueInRequest(value) { if (value === null) return true; return typeof value === 'object' && value !== null && 'upload_id' in value; } exports.isFileFieldValueInRequest = isFileFieldValueInRequest; function isLocalizedFileFieldValue(value) { return ((0, normalizedFieldValues_1.isLocalizedFieldValue)(value) && Object.values(value).every(isFileFieldValue)); } exports.isLocalizedFileFieldValue = isLocalizedFileFieldValue; function isLocalizedFileFieldValueInRequest(value) { return ((0, normalizedFieldValues_1.isLocalizedFieldValue)(value) && Object.values(value).every(isFileFieldValueInRequest)); } exports.isLocalizedFileFieldValueInRequest = isLocalizedFileFieldValueInRequest; //# sourceMappingURL=file.js.map