source: node_modules/redux-immutable/dist/utilities/getUnexpectedInvocationParameterMessage.js@ d24f17c

main
Last change on this file since d24f17c was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.7 KB
Line 
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _immutable = require('immutable');
8
9var _immutable2 = _interopRequireDefault(_immutable);
10
11var _getStateName = require('./getStateName');
12
13var _getStateName2 = _interopRequireDefault(_getStateName);
14
15function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
17exports.default = function (state, reducers, action) {
18 var reducerNames = Object.keys(reducers);
19
20 if (!reducerNames.length) {
21 return 'Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.';
22 }
23
24 var stateName = (0, _getStateName2.default)(action);
25
26 if (_immutable2.default.isImmutable ? !_immutable2.default.isImmutable(state) : !_immutable2.default.Iterable.isIterable(state)) {
27 return 'The ' + stateName + ' is of unexpected type. Expected argument to be an instance of Immutable.Collection or Immutable.Record with the following properties: "' + reducerNames.join('", "') + '".';
28 }
29
30 var unexpectedStatePropertyNames = state.toSeq().keySeq().toArray().filter(function (name) {
31 return !reducers.hasOwnProperty(name);
32 });
33
34 if (unexpectedStatePropertyNames.length > 0) {
35 return 'Unexpected ' + (unexpectedStatePropertyNames.length === 1 ? 'property' : 'properties') + ' "' + unexpectedStatePropertyNames.join('", "') + '" found in ' + stateName + '. Expected to find one of the known reducer property names instead: "' + reducerNames.join('", "') + '". Unexpected properties will be ignored.';
36 }
37
38 return null;
39};
40
41module.exports = exports['default'];
42//# sourceMappingURL=getUnexpectedInvocationParameterMessage.js.map
Note: See TracBrowser for help on using the repository browser.