sharedconfig: add support for sharedstate callback

This commit is contained in:
NullBite 2023-06-26 15:44:10 -04:00
parent b891cf1efc
commit d43bc611c7
Signed by: nullbite
GPG Key ID: 6C4D545385D4925A

View File

@ -10,12 +10,13 @@ local defaults_table
--none is stored --none is stored
---@param key string Key ---@param key string Key
---@param value any Value ---@param value any Value
local function add_default_value(key, value) ---@param callback? function Callback on value change
local function add_default_value(key, value, callback)
defaults_table=defaults_table or {} defaults_table=defaults_table or {}
defaults_table[key]=value defaults_table[key]=value
local stored_value=config:load(key) local stored_value=config:load(key)
sharedstate.init(key, value) sharedstate.init(key, value, callback)
if stored_value ~= nil then if stored_value ~= nil then
sharedstate.queue(key, stored_value) sharedstate.queue(key, stored_value)
@ -24,11 +25,14 @@ end
--- Initialize sharedconfig --- Initialize sharedconfig
-- Initialize shared config with default configuration -- Initialize shared config with default configuration
---@param defaults table ---@param defaults table Table containing default values
function sharedconfig.load_defaults(defaults) ---@param callbacks? table Table containing callbacks to run on value change
function sharedconfig.load_defaults(defaults, callbacks)
logging.trace("sharedconfig.load_defaults", defaults) logging.trace("sharedconfig.load_defaults", defaults)
for k, v in pairs(defaults) do for k, v in pairs(defaults) do
add_default_value(k, v) local callback=nil
if callbacks ~= nil and callbacks[k] ~= nil then callback=callbacks[k] end
add_default_value(k, v, callback)
end end
sharedstate.commit() sharedstate.commit()
end end