Skip to content

Commit

Permalink
update libs and code style
Browse files Browse the repository at this point in the history
  • Loading branch information
ykomissarov committed Jun 13, 2018
1 parent 47119e6 commit 266159e
Show file tree
Hide file tree
Showing 8 changed files with 947 additions and 193 deletions.
11 changes: 10 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
{
"extends": "airbnb"
"extends": "airbnb-base",
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 7,
"sourceType": "module"
},
"rules": {
"indent": [2, 4, {"SwitchCase": 1, "ignoredNodes": ["ConditionalExpression"]}],
"object-curly-spacing": ["error", "never"]
}
}
47 changes: 16 additions & 31 deletions lib/ComposeReducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,13 @@ Object.defineProperty(exports, "__esModule", {
value: true
});

var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _invariant = require('invariant');

var _invariant2 = _interopRequireDefault(_invariant);

function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var composeReducers = function composeReducers() {
for (var _len = arguments.length, reducers = Array(_len), _key = 0; _key < _len; _key++) {
Expand All @@ -41,26 +29,23 @@ var composeReducers = function composeReducers() {
} else if (reducers.length === 2) {
return function (state, action) {
if (!state) {
var first = reducers[0](undefined, action);
return _extends({}, first, reducers[1](undefined, action));
} else {
var _first = reducers[0](state, action);
return reducers[1](_first, action);
}
};
} else {
return function (state, action) {
if (!state) {
return reducers.reduce(function (accumulator, currentReducer) {
return _extends({}, accumulator, currentReducer(state, action));
}, state);
} else {
return reducers.reduce(function (accumulator, currentReducer) {
return currentReducer(accumulator, action);
}, state);
var _first = reducers[0](undefined, action);
return _extends({}, _first, reducers[1](undefined, action));
}
var first = reducers[0](state, action);
return reducers[1](first, action);
};
}
return function (state, action) {
if (!state) {
return reducers.reduce(function (accumulator, currentReducer) {
return _extends({}, accumulator, currentReducer(undefined, action));
}, state);
}
return reducers.reduce(function (accumulator, currentReducer) {
return currentReducer(accumulator, action);
}, state);
};
};

exports.default = composeReducers;
3 changes: 1 addition & 2 deletions lib/ReducerBuilder.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ var Reducer = function Reducer(initialState) {
var mapper = _this.map[action.type];
if (mapper) {
return mapper(state, action);
} else {
return state;
}
return state;
};
};

Expand Down
6 changes: 2 additions & 4 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true,
value: true
});
exports.composeReducers = exports.createReducer = undefined;

Expand All @@ -13,9 +13,7 @@ var _ReducerBuilder = require('./ReducerBuilder');

var _ReducerBuilder2 = _interopRequireDefault(_ReducerBuilder);

function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.createReducer = _ReducerBuilder2.default;
exports.composeReducers = _ComposeReducer2.default;
22 changes: 13 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "redux-reducer-utils",
"version": "1.0.6",
"description": "Small lib for redux",
"version": "1.0.7",
"description": "Utils for redux reducers",
"main": "lib/index.js",
"scripts": {
"build": "babel --presets es2015,stage-0 src --out-dir lib && npm run test",
Expand Down Expand Up @@ -35,18 +35,22 @@
"homepage": "https://github.com/d1slike/redux-utils",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.3",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-preset-env": "^1.6.1",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"benchmark": "^2.1.4",
"beautify-benchmark": "^0.2.4",
"benchmark": "^2.1.4",
"chai": "^4.1.2",
"coveralls": "^3.0.0",
"mocha": "^5.0.5",
"nyc": "^11.6.0",
"redux": "^3.7.2"
"coveralls": "^3.0.1",
"eslint": "^4.9.0",
"eslint-config-airbnb-base": "^12.1.0",
"eslint-plugin-import": "^2.7.0",
"mocha": "^5.2.0",
"nyc": "^12.0.2",
"redux": "^4.0.0"
},
"dependencies": {
"invariant": "^2.2.4"
Expand Down
46 changes: 21 additions & 25 deletions src/ComposeReducer.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,37 @@
import invariant from 'invariant';

const composeReducers = (...reducers) => {

invariant(reducers.length, 'At least one reducer is required');
reducers.forEach((r, index) => invariant(typeof r === 'function', '%s reducer is not a function', index));
reducers.forEach((r, index) =>
invariant(typeof r === 'function', '%s reducer is not a function', index));

if (reducers.length === 1) {
return (state, action) => reducers[0](state, action);
} else if (reducers.length === 2) {
return (state, action) => {
if (!state) {
const first = reducers[0](undefined, action);
return {...first, ...reducers[1](undefined, action)}
} else {
const first = reducers[0](state, action);
return reducers[1](first, action);
return {...first, ...reducers[1](undefined, action)};
}
const first = reducers[0](state, action);
return reducers[1](first, action);
};
} else {
return (state, action) => {
if (!state) {
return reducers.reduce(
(accumulator, currentReducer) => ({
...accumulator,
...currentReducer(state, action)
}),
state,
);
} else {
return reducers.reduce(
(accumulator, currentReducer) => currentReducer(accumulator, action),
state,
);
}

}
}
return (state, action) => {
if (!state) {
return reducers.reduce(
(accumulator, currentReducer) => ({
...accumulator,
...currentReducer(undefined, action),
}),
state,
);
}
return reducers.reduce(
(accumulator, currentReducer) => currentReducer(accumulator, action),
state,
);
};
};

export default composeReducers;
export default composeReducers;
8 changes: 3 additions & 5 deletions src/ReducerBuilder.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
class Reducer {

initialState = {};
map = {};

Expand All @@ -9,7 +8,7 @@ class Reducer {

when = (actionType, mapper) => {
if (Array.isArray(actionType)) {
actionType.forEach(type => this.map[type] = mapper);
actionType.forEach(type => (this.map[type] = mapper));
} else {
this.map[actionType] = mapper;
}
Expand All @@ -20,12 +19,11 @@ class Reducer {
const mapper = this.map[action.type];
if (mapper) {
return mapper(state, action);
} else {
return state;
}
return state;
};
}

const createReducer = (initialState = {}) => new Reducer(initialState);

export default createReducer;
export default createReducer;
Loading

0 comments on commit 266159e

Please sign in to comment.