import { readFileSync, existsSync } from 'fs' interface DevServerConfig { port?: number maxWatchers?: number } const configFile = (path: string) => () => existsSync(path) ? JSON.parse(readFileSync(path, { encoding: 'utf-8' })) : {} const configSource: (() => DevServerConfig)[] = [ () => ({ port: 23333, maxWatchers: 16, }), configFile('dev/dev-server.json'), ] export const devServerConfig = configSource.reduce( (previous, current) => ({ ...previous, ...current() }), {} as DevServerConfig, )