fix: default config values were applied before config was loaded
Massimo Melina committed
Jan 4, 2022 at 00:13 UTC
8b6e95b59ceb97bf16b2467c9d4b1d78fca1109f
2 files changed
+18
-16
src/config.ts
+2
-6
@@ -9,7 +9,7 @@ const emitter = new EventEmitter()
9
watchLoad(PATH, data => {
10
for (const k in data)
11
check(k)
12
- for (const k in state)
12
+ for (const k in { ...state, ...configProps })
13
if (!(k in data))
14
check(k)
15
@@ -42,15 +42,11 @@ export function defineConfig(k:string, definition:ConfigProps) {
42
export function subscribeConfig({ k, ...definition }:{ k:string } & ConfigProps, cb:(v:any, was?:any)=>void) {
43
if (definition)
44
defineConfig(k, definition)
45
- const { caster, defaultValue } = configProps[k] ?? {}
45
+ const { caster } = configProps[k] ?? {}
46
const a = argv[k]
47
if (a !== undefined)
48
return cb(caster ? caster(a) : a)
49
emitter.on('new.'+k, cb)
50
- if (defaultValue !== undefined) {
51
- state[k] = defaultValue
52
- cb(defaultValue)
53
- }
50
}
51
52
export function getConfig(k:string) {
src/index.ts
+16
-10
@@ -100,19 +100,25 @@ subscribeConfig({ k:'port', defaultValue: 80 }, async (port: number) => {
100
if (!srv)
101
return resolve(null)
102
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))
105
resolve(err)
106
})
107
})
108
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
+
123
})
124
})