Skip to content

Commit 87ff772

Browse files
authored
remove lodash dependencies (#307)
1 parent 0c8fa43 commit 87ff772

26 files changed

+62
-58
lines changed

.babelrc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@
66
"transform-object-rest-spread"
77
],
88
"env": {
9-
"es": {
10-
"plugins": [
11-
"./build/use-lodash-es"
12-
]
13-
},
149
"commonjs": {
1510
"presets": [
1611
"env"

build/use-lodash-es.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,12 @@
6464
"xo": "^0.20.3"
6565
},
6666
"dependencies": {
67+
"camelcase": "^5.0.0",
6768
"invariant": "^2.2.1",
68-
"lodash": "^4.13.1",
69-
"lodash-es": "^4.17.4",
69+
"is-function": "^1.0.1",
70+
"is-plain-object": "^2.0.4",
71+
"is-symbol": "^1.0.1",
72+
"lodash.curry": "^4.1.1",
7073
"reduce-reducers": "^0.1.0"
7174
},
7275
"xo": {

src/combineActions.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import isString from 'lodash/isString';
2-
import isFunction from 'lodash/isFunction';
3-
import isEmpty from 'lodash/isEmpty';
4-
import toString from 'lodash/toString';
5-
import isSymbol from 'lodash/isSymbol';
61
import invariant from 'invariant';
2+
import isFunction from 'is-function';
3+
import isSymbol from 'is-symbol';
4+
import isEmpty from './utils/isEmpty';
5+
import toString from './utils/toString';
6+
import isString from './utils/isString';
77
import { ACTION_TYPE_DELIMITER } from './constants';
88

99
function isValidActionType(type) {

src/createAction.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import identity from 'lodash/identity';
2-
import isFunction from 'lodash/isFunction';
3-
import isNull from 'lodash/isNull';
1+
import isFunction from 'is-function';
42
import invariant from 'invariant';
3+
import identity from './utils/identity';
4+
import isNull from './utils/isNull';
55

66
export default function createAction(
77
type,

src/createActions.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import identity from 'lodash/identity';
2-
import isPlainObject from 'lodash/isPlainObject';
3-
import isArray from 'lodash/isArray';
4-
import last from 'lodash/last';
5-
import isString from 'lodash/isString';
6-
import isFunction from 'lodash/isFunction';
7-
import isNil from 'lodash/isNil';
1+
import isPlainObject from 'is-plain-object';
2+
import isFunction from 'is-function';
83
import invariant from 'invariant';
4+
import identity from './utils/identity';
5+
import isArray from './utils/isArray';
6+
import isString from './utils/isString';
7+
import isNil from './utils/isNil';
8+
import getLastElement from './utils/getLastElement';
99
import camelCase from './utils/camelCase';
1010
import arrayToObject from './utils/arrayToObject';
1111
import flattenActionMap from './utils/flattenActionMap';
@@ -14,7 +14,7 @@ import createAction from './createAction';
1414
import { DEFAULT_NAMESPACE } from './constants';
1515

1616
export default function createActions(actionMap, ...identityActions) {
17-
const options = isPlainObject(last(identityActions))
17+
const options = isPlainObject(getLastElement(identityActions))
1818
? identityActions.pop()
1919
: {};
2020
invariant(

src/createCurriedAction.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import curry from 'lodash/curry';
1+
import curry from 'lodash.curry';
22
import createAction from './createAction';
33

44
export default (type, payloadCreator) =>

src/handleAction.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import isFunction from 'lodash/isFunction';
2-
import isPlainObject from 'lodash/isPlainObject';
3-
import identity from 'lodash/identity';
4-
import isNil from 'lodash/isNil';
5-
import isUndefined from 'lodash/isUndefined';
6-
import includes from 'lodash/includes';
71
import invariant from 'invariant';
2+
import isFunction from 'is-function';
3+
import isPlainObject from 'is-plain-object';
4+
import identity from './utils/identity';
5+
import isNil from './utils/isNil';
6+
import isUndefined from './utils/isUndefined';
7+
import toString from './utils/toString';
88
import { ACTION_TYPE_DELIMITER } from './constants';
99

1010
export default function handleAction(type, reducer = identity, defaultState) {
11-
const types = type.toString().split(ACTION_TYPE_DELIMITER);
11+
const types = toString(type).split(ACTION_TYPE_DELIMITER);
1212
invariant(
1313
!isUndefined(defaultState),
1414
`defaultState for reducer handling ${types.join(', ')} should be defined`
@@ -26,7 +26,7 @@ export default function handleAction(type, reducer = identity, defaultState) {
2626

2727
return (state = defaultState, action) => {
2828
const { type: actionType } = action;
29-
if (!actionType || !includes(types, actionType.toString())) {
29+
if (!actionType || !types.includes(toString(actionType))) {
3030
return state;
3131
}
3232

src/handleActions.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import isPlainObject from 'lodash/isPlainObject';
2-
import isMap from 'lodash/isMap';
31
import reduceReducers from 'reduce-reducers';
2+
import isPlainObject from 'is-plain-object';
43
import invariant from 'invariant';
5-
import handleAction from './handleAction';
4+
import isMap from './utils/isMap';
65
import ownKeys from './utils/ownKeys';
76
import flattenReducerMap from './utils/flattenReducerMap';
7+
import handleAction from './handleAction';
88

99
function get(key, x) {
1010
return isMap(x) ? x.get(key) : x[key];

src/utils/camelCase.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import camelCase from 'lodash/camelCase';
1+
import camelCase from 'camelcase';
22

33
const namespacer = '/';
44

0 commit comments

Comments
 (0)