create-fluxstack
Version:
⚡ Revolutionary full-stack TypeScript framework with Declarative Config System, Elysia + React + Bun
49 lines (38 loc) • 1.84 kB
text/typescript
/**
* Server Configuration
* Declarative server config using FluxStack config system
*/
import { defineConfig, config } from '@/core/utils/config-schema'
import { FLUXSTACK_VERSION } from '@/core/utils/version'
const serverConfigSchema = {
// Server basics
port: config.number('PORT', 3000, true),
host: config.string('HOST', 'localhost', true),
apiPrefix: config.string('API_PREFIX', '/api'),
// CORS configuration
corsOrigins: config.array('CORS_ORIGINS', ['http://localhost:3000', 'http://localhost:5173']),
corsMethods: config.array('CORS_METHODS', ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']),
corsHeaders: config.array('CORS_HEADERS', ['Content-Type', 'Authorization']),
corsCredentials: config.boolean('CORS_CREDENTIALS', false),
corsMaxAge: config.number('CORS_MAX_AGE', 86400),
// Client config
clientPort: config.number('VITE_PORT', 5173),
clientTarget: config.string('CLIENT_TARGET', 'es2020'),
clientOutDir: config.string('CLIENT_OUTDIR', 'dist'),
clientSourceMaps: config.boolean('CLIENT_SOURCEMAPS', false),
// Backend-only mode
backendPort: config.number('BACKEND_PORT', 3001),
// App info
appName: config.string('FLUXSTACK_APP_NAME', 'FluxStack'),
appVersion: config.string('FLUXSTACK_APP_VERSION', FLUXSTACK_VERSION),
// Features
enableSwagger: config.boolean('ENABLE_SWAGGER', true),
enableMetrics: config.boolean('ENABLE_METRICS', false),
enableMonitoring: config.boolean('ENABLE_MONITORING', false),
enableRequestLogging: config.boolean('ENABLE_REQUEST_LOGGING', true),
// Vite/Development
enableViteProxyLogs: config.boolean('ENABLE_VITE_PROXY_LOGS', false)
} as const
export const serverConfig = defineConfig(serverConfigSchema)
export type ServerConfig = typeof serverConfig
export default serverConfig