UNPKG

react-azure-config

Version:

🚀 The Ultimate Multi-App Configuration Library! CRITICAL BUG FIXES: Prefixed environment keys no longer sent to Azure. Complete architectural redesign with bulletproof fallback system. Enterprise-grade Azure integration and monorepo support.

87 lines • 2.56 kB
export interface ConfigurationValue { [key: string]: unknown; } export type TypedConfigurationValue<T = Record<string, unknown>> = { [K in keyof T]: T[K]; }; export interface AuthenticationConfig { type: 'servicePrincipal' | 'managedIdentity' | 'azureCli'; tenantId?: string | undefined; clientId?: string | undefined; clientSecret?: string | undefined; } export interface CacheConfig { ttl: number; maxSize: number; storage: ('memory' | 'localStorage')[]; refreshStrategy?: 'load-once' | 'periodic' | 'on-demand'; refreshInterval?: number; } export interface KeyVaultConfig { enableKeyVaultReferences?: boolean; secretCacheTtl?: number; maxRetries?: number; retryDelayMs?: number; refreshStrategy?: 'load-once' | 'periodic' | 'on-demand'; refreshInterval?: number; } export interface AzureConfigOptions { endpoint?: string | undefined; environment: string; application?: string | undefined; appId?: string | undefined; label?: string | undefined; authentication?: AuthenticationConfig | undefined; cache?: Partial<CacheConfig>; enableLocalFallback?: boolean; sources?: string[]; precedence?: 'first-wins' | 'merge-deep'; configServiceUrl?: string; useEmbeddedService?: boolean; port?: number; keyVault?: KeyVaultConfig; logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'silent'; } export interface ConfigResult<T = ConfigurationValue> { data: T | null; loading: boolean; error: string | null; source: 'azure' | 'cache' | 'local' | 'environment' | 'api' | null; lastUpdated: number | null; refresh: () => Promise<void>; } export interface CachedValue<T = unknown> { value: T; timestamp: number; expires: number; source: string; } export interface ConfigSourceHierarchy { sources: string[]; precedence: 'first-wins' | 'merge-deep'; fallbackEnabled: boolean; } export interface ConfigApiResponse<T = unknown> { success: boolean; data?: T; config?: ConfigurationValue; error?: string; source?: string; timestamp: number; key?: string; } export interface HealthCheckResponse { status: 'healthy' | 'unhealthy' | 'degraded' | 'not-running'; checks?: Record<string, 'healthy' | 'unhealthy' | 'empty'>; timestamp: number; error?: string; } export interface ServerInfo { sources: string[]; activeSource: string; environment: string; port: number; uptime: number; timestamp: number; } //# sourceMappingURL=types.d.ts.map