UNPKG

@razen-core/zenweb

Version:

A minimalist TypeScript framework for building reactive web applications with no virtual DOM

70 lines 1.64 kB
/** * ZenWeb Configuration * Load and validate configuration */ import * as fs from 'fs'; import * as path from 'path'; import { logger } from './logger.js'; const defaultConfig = { entry: 'src/index.ts', output: 'dist/bundle.js', minify: true, sourceMaps: true, port: 3000, hotReload: true, routing: { mode: 'history', base: '/', fileBasedRouting: true, pagesDir: 'src/pages', scrollBehavior: 'smooth', trailingSlash: false }, middleware: { global: [], routes: {} }, build: { splitting: true, chunkSize: 500, publicPath: '/', analyze: false } }; /** * Load ZenWeb configuration */ export async function loadConfig() { const configPath = path.join(process.cwd(), 'zenweb.config.js'); if (!fs.existsSync(configPath)) { logger.info('Using default configuration'); return defaultConfig; } try { const configModule = await import(configPath); const userConfig = configModule.default || configModule; return { ...defaultConfig, ...userConfig }; } catch (error) { logger.error('Error loading config', error); return defaultConfig; } } /** * Validate configuration */ export function validateConfig(config) { if (!config.entry) { logger.error('Config error: entry is required'); return false; } if (!config.output) { logger.error('Config error: output is required'); return false; } return true; } //# sourceMappingURL=config.js.map