@samitouri / QOSami-HFS / commits / b52cde38

better code: better api

Massimo Melina committed Jun 25, 2023 at 20:14 UTC b52cde382d7b68271e405ac43bed32c897a062c3
1 file changed +3 -3
src/config.ts
+3 -3
@@ -66,11 +66,11 @@ const CONFIG_CHANGE_EVENT_PREFIX = 'new.'
66 const currentVersion = new Version(VERSION)
67 const configVersion = defineConfig('version', VERSION, v => new Version(v))
68
69 -type Subscriber<T,R=void> = (v:T, was:T | undefined, version: Version | undefined) => R
69 +type Subscriber<T,R=void> = (v:T, more: { was?: T, version?: Version, defaultValue: T }) => R
70 export function defineConfig<T, CT=T>(k: string, defaultValue: T, compiler?: Subscriber<T,CT>) {
71 configProps[k] = { defaultValue }
72 type Updater = (currentValue:T) => T
73 - let compiled = compiler?.(defaultValue, undefined, currentVersion)
73 + let compiled = compiler?.(defaultValue, { version: currentVersion, defaultValue })
74 const ret = { // consider a Class
75 key() {
76 return k
@@ -80,7 +80,7 @@ export function defineConfig<T, CT=T>(k: string, defaultValue: T, compiler?: Sub
80 },
81 sub(cb: Subscriber<T>) {
82 if (started) // initial event already passed, we'll make the first call
83 - cb(getConfig(k), defaultValue, configVersion.compiled())
83 + cb(getConfig(k), { was: defaultValue, defaultValue, version: configVersion.compiled() })
84 const eventName = CONFIG_CHANGE_EVENT_PREFIX + k
85 return onOff(cfgEvents, {
86 [eventName]() {