Clients/Client2018/content/LuaPackages/RoduxImpl/combineReducers.lua

23 lines
471 B
Lua

--[[
Create a composite reducer from a map of keys and sub-reducers.
]]
local function combineReducers(map)
return function(state, action)
-- If state is nil, substitute it with a blank table.
if state == nil then
state = {}
end
local newState = {}
for key, reducer in pairs(map) do
-- Each reducer gets its own state, not the entire state table
newState[key] = reducer(state[key], action)
end
return newState
end
end
return combineReducers