fix: plugins: api.setConfig not working correctly https://github.com/rejetto/hfs/issues/60
Massimo Melina committed
Jun 21, 2022 at 18:13 UTC
6d4ed23ec6d905f3bd702cdf3e547b5df4f179e2
1 file changed
+9
-5
server/src/plugins.ts
+9
-5
@@ -34,11 +34,15 @@ export function enablePlugin(id: string, state=true) {
34
)
35
}
36
37
-export function setPluginConfig(id: string, config: Dict) {
38
- const fields = getPluginConfigFields(id)
39
- config = _.pickBy(config, (v, k) =>
40
- v !== null && !same(v, fields?.[k]?.defaultValue))
41
- pluginsConfig.set(v => ({ ...v, [id]: _.isEmpty(config) ? undefined : config }))
37
+// nullish values are equivalent to defaultValues
38
+export function setPluginConfig(id: string, changes: Dict) {
39
+ pluginsConfig.set(allConfigs => {
40
+ const fields = getPluginConfigFields(id)
41
+ const oldConfig = allConfigs[id]
42
+ const newConfig = _.pickBy({ ...oldConfig, ...changes },
43
+ (v, k) => v != null && !same(v, fields?.[k]?.defaultValue))
44
+ return { ...allConfigs, [id]: _.isEmpty(newConfig) ? undefined : newConfig }
45
+ })
46
}
47
48
export function getPluginInfo(id: string) {