Files
rustfs-console/plugins/01.config.ts
T
overtrueandClaude de0f2c550d feat: improve TypeScript type safety and code quality
- Added comprehensive TypeScript type definitions for app configuration
- Fixed type safety issues in sidebar component with proper type casting
- Improved code organization with better file naming conventions
- Enhanced error handling with centralized error management
- Added performance optimizations with caching and code splitting
- Improved development experience with better tooling configuration
- Updated project documentation with comprehensive README
- Added proper type definitions for navigation items and app config
- Fixed licensing information and added proper Apache 2.0 license

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-10 23:19:22 +08:00

52 lines
1.5 KiB
TypeScript

import { configManager } from '~/utils/config'
import { logger } from '~/utils/logger'
export default defineNuxtPlugin({
name: 'load-site-config',
async setup(nuxtApp) {
let finalConfig: any
try {
// 使用 configManager 加载配置(优先使用当前host)
const config = await configManager.loadConfig()
if (config) {
finalConfig = { ...useRuntimeConfig().public, ...config }
logger.log('Configuration loaded from configManager')
} else {
// 如果 configManager 没有配置,使用 runtimeConfig
finalConfig = useRuntimeConfig().public
logger.log('Configuration loaded from runtimeConfig')
}
} catch (error) {
logger.error('Failed to load configuration:', error)
// 如果配置加载失败,重定向到登录页而不是抛出错误
if (process.client) {
const currentRoute = useRoute()
if (currentRoute.path !== '/auth/login') {
await navigateTo('/auth/login')
}
}
// 使用默认配置,避免应用崩溃
finalConfig = useRuntimeConfig().public
}
if (!finalConfig.api?.baseURL && !finalConfig.serverHost) {
// 如果仍然没有 baseURL 或 serverHost,重定向到登录页
if (process.client) {
const currentRoute = useRoute()
if (currentRoute.path !== '/auth/login') {
await navigateTo('/auth/login')
}
}
}
return {
provide: {
siteConfig: finalConfig
}
}
}
})