UNPKG

redux-devshare

Version:

[![NPM version][npm-image]][npm-url] [![NPM downloads][npm-downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Code Climate][climate-image]][climate-url] [![Code Coverage][coverage-i

92 lines (66 loc) 2.75 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _immutable = require('immutable'); var _constants = require('./constants'); function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } var emptyState = { auth: undefined, authError: undefined, profile: undefined, isInitializing: undefined, data: {}, snapshot: {} }; var initialState = (0, _immutable.fromJS)(emptyState); var pathToArr = function pathToArr(path) { return path.split(/\//).filter(function (p) { return !!p; }); }; exports.default = function () { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var path = action.path; var pathArr = void 0; var retVal = void 0; switch (action.type) { case _constants.SET: var data = action.data; pathArr = pathToArr(path); retVal = data !== undefined ? state.setIn(['data'].concat(_toConsumableArray(pathArr)), (0, _immutable.fromJS)(data)) : state.deleteIn(['data'].concat(_toConsumableArray(pathArr))); return retVal; case _constants.NO_VALUE: pathArr = pathToArr(path); retVal = state.setIn(['data'].concat(_toConsumableArray(pathArr)), (0, _immutable.fromJS)({})); retVal = retVal.setIn(['snapshot'].concat(_toConsumableArray(pathArr)), (0, _immutable.fromJS)({})); return retVal; case _constants.SET_PROFILE: var profile = action.profile; return profile !== undefined ? state.setIn(['profile'], (0, _immutable.fromJS)(profile)) : state.deleteIn(['profile']); case _constants.LOGOUT: return (0, _immutable.fromJS)({ auth: null, authError: null, profile: null, isLoading: false, data: {}, snapshot: {} }); case _constants.LOGIN: return state.setIn(['auth'], (0, _immutable.fromJS)(action.auth)).setIn(['authError'], null); case _constants.LOGIN_ERROR: return state.setIn(['authError'], action.authError).setIn(['auth'], null).setIn(['profile'], null); case _constants.AUTHENTICATION_INIT_STARTED: return initialState.setIn(['isInitializing'], true); // return state.setIn(['isInitializing'], true) // throws state.setIn not a function error case _constants.AUTHENTICATION_INIT_FINISHED: return state.setIn(['isInitializing'], false); case _constants.UNAUTHORIZED_ERROR: return state.setIn(['authError'], action.authError); default: return state; } }; module.exports = exports['default'];