UNPKG

@hakxel/mantine-ui-server

Version:

MCP server for working with Mantine UI components - provides documentation, generation, and theme utilities

110 lines (109 loc) 2.86 kB
/** * Configuration management for the Mantine UI MCP server */ // Default configuration values export const defaultConfig = { mantineVersion: '7.16.2', // Default to latest version at time of writing defaultMantineImports: { core: '@mantine/core', hooks: '@mantine/hooks', dates: '@mantine/dates', form: '@mantine/form', notifications: '@mantine/notifications', }, projectDefaults: { componentStructure: 'default', stylingApproach: 'css-modules', themeIntegration: 'provider', typescript: true, }, caching: { documentation: { ttl: 86400000, // 24 hours in milliseconds storage: 'file', }, }, extensions: { paths: [], enabled: [], }, }; // Global configuration instance let config = { ...defaultConfig }; /** * Initializes the configuration with default values and applies overrides * @param overrides Optional configuration overrides * @returns The merged configuration */ export function initConfig(overrides) { config = { ...defaultConfig, ...overrides, // Deep merge for nested properties projectDefaults: { ...defaultConfig.projectDefaults, ...overrides?.projectDefaults, }, caching: { ...defaultConfig.caching, ...overrides?.caching, }, }; return config; } /** * Gets the current configuration * @returns The current configuration */ export function getConfig() { return config; } /** * Updates the configuration * @param updates Configuration updates to apply * @returns The updated configuration */ export function updateConfig(updates) { config = { ...config, ...updates, // Deep merge for nested properties projectDefaults: { ...config.projectDefaults, ...updates.projectDefaults, }, caching: { ...config.caching, ...updates.caching, }, }; return config; } /** * Read environment variables for configuration * @returns A configuration object based on environment variables */ export function loadConfigFromEnv() { const env = process.env; const config = {}; if (env.MANTINE_VERSION) { config.mantineVersion = env.MANTINE_VERSION; } if (env.CACHE_DOCS === 'false') { config.caching = { documentation: { ttl: 0, // Disable caching storage: 'memory', }, }; } else if (env.CACHE_TTL) { config.caching = { documentation: { ttl: parseInt(env.CACHE_TTL, 10) * 1000, // Convert to milliseconds storage: env.CACHE_STORAGE || 'file', }, }; } return config; }