sharedconfig: add support for sharedstate callback
This commit is contained in:
parent
b891cf1efc
commit
d43bc611c7
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user