Skip to content

Commit 8b6e95b

Browse files
committed
fix: default config values were applied before config was loaded
1 parent f46ef80 commit 8b6e95b

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

src/config.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const emitter = new EventEmitter()
99
watchLoad(PATH, data => {
1010
for (const k in data)
1111
check(k)
12-
for (const k in state)
12+
for (const k in { ...state, ...configProps })
1313
if (!(k in data))
1414
check(k)
1515

@@ -42,15 +42,11 @@ export function defineConfig(k:string, definition:ConfigProps) {
4242
export function subscribeConfig({ k, ...definition }:{ k:string } & ConfigProps, cb:(v:any, was?:any)=>void) {
4343
if (definition)
4444
defineConfig(k, definition)
45-
const { caster, defaultValue } = configProps[k] ?? {}
45+
const { caster } = configProps[k] ?? {}
4646
const a = argv[k]
4747
if (a !== undefined)
4848
return cb(caster ? caster(a) : a)
4949
emitter.on('new.'+k, cb)
50-
if (defaultValue !== undefined) {
51-
state[k] = defaultValue
52-
cb(defaultValue)
53-
}
5450
}
5551

5652
export function getConfig(k:string) {

src/index.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,25 @@ subscribeConfig({ k:'port', defaultValue: 80 }, async (port: number) => {
100100
if (!srv)
101101
return resolve(null)
102102
srv.close(err => {
103-
if (err)
104-
console.debug('failed to stop server', err)
103+
if (err && (err as any).code !== 'ERR_SERVER_NOT_RUNNING')
104+
console.debug('failed to stop server', String(err))
105105
resolve(err)
106106
})
107107
})
108108
await new Promise(resolve => {
109-
srv = app.listen(port, () => {
110-
console.log('running on port', port, DEV)
111-
resolve(null)
112-
}).on('error', e => {
113-
const { code } = e as any
114-
if (code === 'EADDRINUSE')
115-
console.error(`couldn't listen on busy port ${port}`)
116-
})
109+
try {
110+
srv = app.listen(port, () => {
111+
console.log('running on port', port, DEV)
112+
resolve(null)
113+
}).on('error', e => {
114+
const { code } = e as any
115+
if (code === 'EADDRINUSE')
116+
console.error(`couldn't listen on busy port ${port}`)
117+
})
118+
}
119+
catch(e) {
120+
console.error("couldn't listen on port", port, String(e))
121+
}
122+
117123
})
118124
})

0 commit comments

Comments
 (0)