@mvp-factory/holy-upload
Version:
File upload processing system extracted from Holy Habit project with security validation and image optimization
108 lines • 2.93 kB
TypeScript
/**
* Upload Configuration Manager
*
* Manages upload settings and environment variables
* Extracted from Holy Habit upload system
*/
import { UploadConfig } from '../types/Upload';
export declare class UploadConfigManager {
private static configs;
/**
* Load configuration from environment or defaults
*
* @param name - Configuration name
* @returns Upload configuration
*/
static load(name?: string): UploadConfig;
/**
* Set custom configuration
*
* @param name - Configuration name
* @param config - Upload configuration
*/
static set(name: string, config: UploadConfig): void;
/**
* Get configuration
*
* @param name - Configuration name
* @returns Upload configuration or null
*/
static get(name: string): UploadConfig | null;
/**
* Clear configuration cache
*/
static clear(): void;
/**
* Load configuration from environment variables
*
* @param name - Configuration name
* @returns Upload configuration
*/
private static loadFromEnvironment;
/**
* Get string environment variable
*
* @param key - Environment variable key
* @returns String value or undefined
*/
private static getEnvString;
/**
* Get number environment variable
*
* @param key - Environment variable key
* @returns Number value or undefined
*/
private static getEnvNumber;
/**
* Get boolean environment variable
*
* @param key - Environment variable key
* @returns Boolean value or undefined
*/
private static getEnvBoolean;
/**
* Get array environment variable (comma-separated)
*
* @param key - Environment variable key
* @returns Array of strings or undefined
*/
private static getEnvArray;
/**
* Validate configuration
*
* @param config - Upload configuration
* @returns Validation result
*/
static validate(config: UploadConfig): {
isValid: boolean;
errors: string[];
};
/**
* Get absolute upload directory path
*
* @param config - Upload configuration
* @returns Absolute path
*/
static getAbsoluteUploadDir(config: UploadConfig): string;
/**
* Merge configurations
*
* @param base - Base configuration
* @param override - Override configuration
* @returns Merged configuration
*/
static merge(base: UploadConfig, override: Partial<UploadConfig>): UploadConfig;
/**
* Create development configuration
*
* @returns Development upload configuration
*/
static createDevelopmentConfig(): UploadConfig;
/**
* Create production configuration
*
* @returns Production upload configuration
*/
static createProductionConfig(): UploadConfig;
}
//# sourceMappingURL=UploadConfig.d.ts.map