iop
Version:
Ship Docker Anywhere
55 lines (54 loc) • 1.62 kB
TypeScript
import { IopConfig } from "../config/types";
export interface ConfigValidationError {
type: "port_conflict" | "invalid_port" | "configuration_error" | "reserved_name";
message: string;
entries: string[];
server: string;
port?: number;
suggestions?: string[];
}
export declare class ConfigValidator {
private config;
private static readonly RESERVED_NAMES;
constructor(config: IopConfig);
/**
* Validates the entire configuration for common issues
*/
validate(): ConfigValidationError[];
/**
* Checks for reserved command names being used as app/service names
*/
private checkReservedNames;
/**
* Checks for port conflicts within the same project configuration
*/
private checkIntraProjectPortConflicts;
/**
* Checks for invalid port configurations
*/
private checkInvalidPorts;
/**
* Validates a port specification format
*/
private isValidPortSpec;
/**
* Gets all entries from the services configuration
*/
private getAllEntries;
/**
* Generates suggestions for resolving reserved name conflicts
*/
private generateReservedNameSuggestions;
/**
* Generates suggestions for resolving port conflicts
*/
private generatePortConflictSuggestions;
}
/**
* Validates a iop configuration and returns any errors found
*/
export declare function validateConfig(config: IopConfig): ConfigValidationError[];
/**
* Formats validation errors for display
*/
export declare function formatValidationErrors(errors: ConfigValidationError[]): string[];