node-go/packages/server/play-node-go/src/reducers/stateReducer.js
2020-02-05 16:45:06 -08:00

39 lines
No EOL
881 B
JavaScript

// @flow
import { initState } from './init/stateReducer.init';
import { authReducer } from './auth/stateReducer.auth';
import { errorReducer } from './err/stateReducer.err';
import { indexReducer } from './index/stateReducer.index';
export type state = {
user: {},
errors: {}
}
export type action = {
type: string,
message: ?string,
body: {}
}
export const stateReducer = (state: state, action: action): state => {
const errorStrippedState = stripErrors({...state});
switch (action.type) {
case 'INIT': return initState();
case 'AUTH':
return authReducer(errorStrippedState, action);
case 'INDEX':
return indexReducer(errorStrippedState, action);
case 'ERR':
return errorReducer(errorStrippedState, action);
default: return state;
}
}
function stripErrors(state: state): state {
return {...state, errors: {}}
}