Skip to content

Commit

Permalink
fix: default config values were applied before config was loaded
Browse files Browse the repository at this point in the history
  • Loading branch information
rejetto committed Jan 3, 2022
1 parent f46ef80 commit 8b6e95b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 16 deletions.
8 changes: 2 additions & 6 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const emitter = new EventEmitter()
watchLoad(PATH, data => {
for (const k in data)
check(k)
for (const k in state)
for (const k in { ...state, ...configProps })
if (!(k in data))
check(k)

Expand Down Expand Up @@ -42,15 +42,11 @@ export function defineConfig(k:string, definition:ConfigProps) {
export function subscribeConfig({ k, ...definition }:{ k:string } & ConfigProps, cb:(v:any, was?:any)=>void) {
if (definition)
defineConfig(k, definition)
const { caster, defaultValue } = configProps[k] ?? {}
const { caster } = configProps[k] ?? {}
const a = argv[k]
if (a !== undefined)
return cb(caster ? caster(a) : a)
emitter.on('new.'+k, cb)
if (defaultValue !== undefined) {
state[k] = defaultValue
cb(defaultValue)
}
}

export function getConfig(k:string) {
Expand Down
26 changes: 16 additions & 10 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,19 +100,25 @@ subscribeConfig({ k:'port', defaultValue: 80 }, async (port: number) => {
if (!srv)
return resolve(null)
srv.close(err => {
if (err)
console.debug('failed to stop server', err)
if (err && (err as any).code !== 'ERR_SERVER_NOT_RUNNING')
console.debug('failed to stop server', String(err))
resolve(err)
})
})
await new Promise(resolve => {
srv = app.listen(port, () => {
console.log('running on port', port, DEV)
resolve(null)
}).on('error', e => {
const { code } = e as any
if (code === 'EADDRINUSE')
console.error(`couldn't listen on busy port ${port}`)
})
try {
srv = app.listen(port, () => {
console.log('running on port', port, DEV)
resolve(null)
}).on('error', e => {
const { code } = e as any
if (code === 'EADDRINUSE')
console.error(`couldn't listen on busy port ${port}`)
})
}
catch(e) {
console.error("couldn't listen on port", port, String(e))
}

})
})

0 comments on commit 8b6e95b

Please sign in to comment.