Skip to content

Commit 2a57a2c

Browse files
removed proxy usage
1 parent 206a37f commit 2a57a2c

File tree

3 files changed

+150
-3
lines changed

3 files changed

+150
-3
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
node_modules
22
coverage
33
es
4-
lib
54
dist
65
*.log
76
package-lock.json

lib/index.js

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
'use strict';
2+
3+
Object.defineProperty(exports, '__esModule', { value: true });
4+
5+
var DELIMITER = '/';
6+
var isDev = process.env.NODE_ENV !== 'production';
7+
var namespacedActionType = function namespacedActionType(namespace, type) {
8+
return namespace === '' ? type : "" + namespace + DELIMITER + type;
9+
};
10+
var isObject = function isObject(o) {
11+
return o instanceof Object && !Array.isArray(o);
12+
};
13+
var isFunction = function isFunction(o) {
14+
return typeof o === 'function';
15+
};
16+
var createCapturedError = function createCapturedError(message, cst) {
17+
var error = new Error(message);
18+
if (cst && Error.captureStackTrace) Error.captureStackTrace(error, cst);
19+
return error;
20+
};
21+
var checkStateShape = function checkStateShape(next, prev, action) {
22+
var missingKeys = [];
23+
Object.keys(next).forEach(function (key) {
24+
if (key in prev) return;
25+
missingKeys.push(key);
26+
});
27+
28+
if (missingKeys.length > 0) {
29+
console.warn("Reducer for action '" + action.type + "' produced new keys: [" + missingKeys.join(',') + "]");
30+
}
31+
};
32+
33+
var createTypes = function createTypes(namespace, types) {
34+
if (types === void 0) {
35+
types = [];
36+
}
37+
38+
if (Array.isArray(namespace)) {
39+
types = namespace;
40+
namespace = '';
41+
}
42+
43+
if (typeof namespace !== 'string' || !Array.isArray(types) || types.length === 0) throw createError(ARGUMENT_ERROR);
44+
var result = {};
45+
types.forEach(function (type) {
46+
result[type] = namespacedActionType(namespace, type);
47+
});
48+
return result;
49+
};
50+
51+
var createError = function createError(message) {
52+
return createCapturedError(message, createTypes);
53+
};
54+
55+
var ARGUMENT_ERROR = 'Expected first argument to be a string (for namespaced actions) or non empty array (types)' + 'or/and second argument (types) to be a non empty array.';
56+
57+
function _extends() {
58+
_extends = Object.assign || function (target) {
59+
for (var i = 1; i < arguments.length; i++) {
60+
var source = arguments[i];
61+
62+
for (var key in source) {
63+
if (Object.prototype.hasOwnProperty.call(source, key)) {
64+
target[key] = source[key];
65+
}
66+
}
67+
}
68+
69+
return target;
70+
};
71+
72+
return _extends.apply(this, arguments);
73+
}
74+
75+
var composeReducer = function composeReducer() {
76+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
77+
args[_key] = arguments[_key];
78+
}
79+
80+
var _prepareParams = prepareParams(args),
81+
_prepareParams$namesp = _prepareParams.namespace,
82+
namespace = _prepareParams$namesp === void 0 ? '' : _prepareParams$namesp,
83+
types = _prepareParams.types,
84+
initialState = _prepareParams.initialState,
85+
_prepareParams$reduce = _prepareParams.reducers,
86+
reducers = _prepareParams$reduce === void 0 ? {} : _prepareParams$reduce,
87+
globalReducer = _prepareParams.globalReducer;
88+
89+
if (types !== undefined && !isObject(types) || types === undefined && typeof namespace !== 'string' || !isObject(initialState) || !isObject(reducers) || globalReducer !== undefined && !isFunction(globalReducer)) throw createError$1(ARGUMENT_ERROR$1);
90+
var typeToReducerMap = types ? createMapFromTypes(types, reducers) : createMapFromNamespace(namespace, reducers);
91+
return function (state, action) {
92+
if (state === void 0) {
93+
state = initialState;
94+
}
95+
96+
var reduce = typeToReducerMap[action.type];
97+
if (reduce) state = reduce(state, action);
98+
if (globalReducer) state = globalReducer(state, action);
99+
if (isDev) checkStateShape(state, initialState, action);
100+
return state;
101+
};
102+
};
103+
104+
var prepareParams = function prepareParams(args) {
105+
if (typeof args[0] === 'string') {
106+
console.warn(DEPRICATED_API_WARNING);
107+
return {
108+
namespace: args[0],
109+
reducers: args[1],
110+
initialState: args[2],
111+
globalReducer: args[3]
112+
};
113+
}
114+
115+
return args[0] || {};
116+
};
117+
118+
var createMapFromTypes = function createMapFromTypes(types, reducers) {
119+
var result = {};
120+
Object.keys(reducers).forEach(function (key) {
121+
if (!(key in types)) throw createError$1("There is no '" + key + "' action type.");
122+
result[types[key]] = normalizeReducer(reducers[key]);
123+
});
124+
return result;
125+
};
126+
127+
var createMapFromNamespace = function createMapFromNamespace(namespace, reducers) {
128+
var result = {};
129+
Object.keys(reducers).forEach(function (type) {
130+
result[namespacedActionType(namespace, type)] = normalizeReducer(reducers[type]);
131+
});
132+
return result;
133+
};
134+
135+
var normalizeReducer = function normalizeReducer(reducer) {
136+
return isFunction(reducer) ? reducer : function (state) {
137+
return _extends({}, state, reducer);
138+
};
139+
};
140+
141+
var ARGUMENT_ERROR$1 = "As argument expected object of shape : {\n namespace: 'string',\n types: 'object',\n initialState: 'object',\n reducers: 'object',\n globalReducer: 'function'\n}.\nRequired keys: namespace or types, initialState.";
142+
var DEPRICATED_API_WARNING = 'redux-compose-reducer#composeReducer: ' + 'Multiple arguments api is depricated and will be removed in future versions. ' + 'Please use object argument.';
143+
144+
var createError$1 = function createError(message) {
145+
return createCapturedError(message, composeReducer);
146+
};
147+
148+
exports.createTypes = createTypes;
149+
exports.composeReducer = composeReducer;

src/createTypes.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {
22
namespacedActionType,
3-
createTypesObject,
43
createCapturedError,
54
} from './utils'
65

@@ -17,7 +16,7 @@ const createTypes = (namespace, types = []) => {
1716
)
1817
throw createError(ARGUMENT_ERROR)
1918

20-
const result = createTypesObject()
19+
const result = {};
2120
types.forEach(type => {
2221
result[type] = namespacedActionType(namespace, type)
2322
})

0 commit comments

Comments
 (0)