Skip to content

Commit 24ccef6

Browse files
committed
batched settings writes
1 parent ffb4260 commit 24ccef6

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

lib/utils/settings.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ export function getSetting (key) {
4646
return settings[key]
4747
}
4848

49+
let pendingSave = false
50+
4951
/**
5052
* @template {keyof typeof settings} Key
5153
* @param {Key} key
@@ -54,8 +56,14 @@ export function getSetting (key) {
5456
*/
5557
export function updateSetting (key, value) {
5658
settings[key] = value
57-
fs.writeFileSync(
58-
settingsPath,
59-
Buffer.from(JSON.stringify(settings)).toString('base64')
60-
)
59+
if (!pendingSave) {
60+
pendingSave = true
61+
process.nextTick(() => {
62+
pendingSave = false
63+
fs.writeFileSync(
64+
settingsPath,
65+
Buffer.from(JSON.stringify(settings)).toString('base64')
66+
)
67+
})
68+
}
6169
}

0 commit comments

Comments
 (0)