Skip to main content
Glama
helpers.ts2.8 kB
/** * Configuration Helpers * Convenient wrappers around ConfigService for common use cases */ import { configService } from './index.js'; /** * Get configuration value with type safety */ export async function getConfig<T = string>(key: string, defaultValue?: T): Promise<T> { return await configService.get(key, defaultValue) as T; } /** * Get number configuration */ export async function getConfigNumber(key: string, defaultValue: number): Promise<number> { const value = await configService.get(key, defaultValue); return typeof value === 'number' ? value : parseInt(String(value), 10) || defaultValue; } /** * Get boolean configuration */ export async function getConfigBoolean(key: string, defaultValue: boolean = false): Promise<boolean> { const value = await configService.get(key, defaultValue); return typeof value === 'boolean' ? value : String(value).toLowerCase() === 'true'; } /** * Get JSON configuration */ export async function getConfigJSON<T = any>(key: string, defaultValue?: T): Promise<T> { return await configService.get(key, defaultValue) as T; } /** * Get provider API key */ export async function getProviderKey(provider: 'openrouter' | 'openai' | 'anthropic' | 'ollama'): Promise<string | null> { const cred = await configService.getProvider(provider); return cred?.enabled ? (cred as any).api_key || null : null; } /** * Get provider configuration */ export async function getProviderConfig(provider: string): Promise<any> { const cred = await configService.getProvider(provider); return cred?.configuration || {}; } /** * Check if feature is enabled */ export async function isFeatureEnabled(flagKey: string): Promise<boolean> { return await configService.getFeatureFlag(flagKey); } /** * Get models for a specific layer */ export async function getLayerModels(layerName: string): Promise<string[]> { const layer = await configService.getLayer(layerName); return layer?.enabled ? layer.models : []; } /** * Get models for a specific task */ export async function getTaskModels(taskType: string): Promise<string[]> { const task = await configService.getTask(taskType); return task?.enabled ? task.models : []; } /** * Get all configuration by category (useful for debugging) */ export async function getAllConfig(category?: string): Promise<Record<string, any>> { if (category) { return await configService.getByCategory(category); } // Get all categories const categories = ['server', 'api', 'redis', 'logging', 'features']; const allConfig: Record<string, any> = {}; for (const cat of categories) { const catConfig = await configService.getByCategory(cat); Object.assign(allConfig, catConfig); } return allConfig; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/babasida246/ai-mcp-gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server