UNPKG

@five-vm/cli

Version:

High-performance CLI for Five VM development with WebAssembly integration

86 lines 2.46 kB
/** * Five CLI Configuration System * * Exports all configuration-related functionality for the Five CLI. * Provides types, configuration manager, and singleton instance access. */ // Configuration constants and defaults export { DEFAULT_NETWORKS, DEFAULT_CONFIG, CONFIG_VALIDATORS, } from './types.js'; // Configuration manager class and instance export { ConfigManager, ConfigError, configManager, } from './ConfigManager.js'; import { ConfigManager } from './ConfigManager.js'; /** * Convenience function to get the configuration manager instance * This is the recommended way to access configuration throughout the CLI * * @returns The singleton ConfigManager instance * * @example * ```typescript * import { getConfigManager } from './config'; * * const config = getConfigManager(); * const currentTarget = await config.getTarget(); * ``` */ export function getConfigManager() { return ConfigManager.getInstance(); } /** * Convenience function to initialize the configuration system * Should be called early in CLI startup to ensure config is ready * * @returns Promise that resolves when configuration is initialized * * @example * ```typescript * import { initConfig } from './config'; * * // In your main CLI entry point * await initConfig(); * ``` */ export async function initConfig() { const manager = ConfigManager.getInstance(); await manager.init(); } /** * Convenience function to get the current configuration * Automatically initializes the config manager if needed * * @returns Promise that resolves to the current configuration * * @example * ```typescript * import { getConfig } from './config'; * * const config = await getConfig(); * console.log(`Current target: ${config.target}`); * ``` */ export async function getConfig() { const manager = ConfigManager.getInstance(); return await manager.get(); } /** * Convenience function to update configuration * Automatically initializes the config manager if needed * * @param updates Partial configuration updates to apply * * @example * ```typescript * import { setConfig } from './config'; * * // Switch to mainnet * await setConfig({ target: 'mainnet' }); * * // Update keypair path * await setConfig({ keypair: '/path/to/keypair.json' }); * ``` */ export async function setConfig(updates) { const manager = ConfigManager.getInstance(); await manager.set(updates); } //# sourceMappingURL=index.js.map