@agility/cli
Version:
Agility CLI for working with your content. (Public Beta)
83 lines (82 loc) • 2.3 kB
TypeScript
/**
* Content Field Validation Service
*
* Validates and sanitizes content fields before mapping to ensure:
* - Proper reference types and structures
* - Asset URL validity
* - Content ID reference validation
* - Field type compliance with Agility CMS expectations
*/
export interface FieldValidationResult {
isValid: boolean;
field: any;
warnings: string[];
errors: string[];
sanitizedField?: any;
}
export interface ContentValidationOptions {
sourceAssets?: any[];
sourceContainers?: any[];
modelDefinitions?: any[];
strictMode?: boolean;
}
export declare class ContentFieldValidator {
private linkTypeDetector;
constructor();
/**
* Validate all fields in a content item
*/
validateContentFields(fields: any, options?: ContentValidationOptions): {
isValid: boolean;
validatedFields: any;
totalWarnings: number;
totalErrors: number;
fieldResults: Map<string, FieldValidationResult>;
};
/**
* Validate a single field with type-specific rules
*/
private validateSingleField;
/**
* Validate object fields with content references
*/
private validateObjectField;
/**
* Validate string fields
*/
private validateStringField;
/**
* Validate numeric fields
*/
private validateNumericField;
/**
* Check if string field contains content ID references
*/
private isContentIdField;
/**
* Validate asset URL format
*/
private isValidAssetUrl;
/**
* Sanitize field value to ensure compatibility
*/
sanitizeField(fieldKey: string, fieldValue: any): any;
/**
* Get validation summary for reporting
*/
getValidationSummary(fieldResults: Map<string, FieldValidationResult>): {
totalFields: number;
validFields: number;
fieldsWithWarnings: number;
fieldsWithErrors: number;
criticalFields: string[];
};
}
/**
* Factory function for easy usage
*/
export declare function createContentFieldValidator(): ContentFieldValidator;
/**
* Quick validation function for single fields
*/
export declare function validateField(fieldKey: string, fieldValue: any, options?: ContentValidationOptions): FieldValidationResult;