23 lines
471 B
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
|