Skip to content
This repository was archived by the owner on Aug 23, 2022. It is now read-only.

Commit 53d6cc8

Browse files
committed
Updating lib build for icepick PR and updating test script
1 parent a1204a1 commit 53d6cc8

File tree

3 files changed

+41
-62
lines changed

3 files changed

+41
-62
lines changed

lib/reducers/form-reducer.js

Lines changed: 33 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,37 @@ Object.defineProperty(exports, "__esModule", {
77
});
88
exports.getField = exports.initialFormState = exports.initialFieldState = exports.createFormReducer = undefined;
99

10+
var _every = require('lodash/every');
11+
12+
var _every2 = _interopRequireDefault(_every);
13+
1014
var _get = require('lodash/get');
1115

1216
var _get2 = _interopRequireDefault(_get);
1317

14-
var _set = require('lodash/set');
18+
var _icepick = require('icepick');
1519

16-
var _set2 = _interopRequireDefault(_set);
20+
var _icepick2 = _interopRequireDefault(_icepick);
1721

18-
var _merge = require('lodash/merge');
22+
var _isBoolean = require('lodash/isBoolean');
1923

20-
var _merge2 = _interopRequireDefault(_merge);
24+
var _isBoolean2 = _interopRequireDefault(_isBoolean);
2125

22-
var _toPath = require('lodash/toPath');
26+
var _isEqual = require('lodash/isEqual');
2327

24-
var _toPath2 = _interopRequireDefault(_toPath);
28+
var _isEqual2 = _interopRequireDefault(_isEqual);
2529

2630
var _isPlainObject = require('lodash/isPlainObject');
2731

2832
var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
2933

30-
var _isBoolean = require('lodash/isBoolean');
31-
32-
var _isBoolean2 = _interopRequireDefault(_isBoolean);
33-
3434
var _mapValues = require('lodash/mapValues');
3535

3636
var _mapValues2 = _interopRequireDefault(_mapValues);
3737

38-
var _every = require('lodash/every');
39-
40-
var _every2 = _interopRequireDefault(_every);
41-
42-
var _cloneDeep = require('lodash/cloneDeep');
43-
44-
var _cloneDeep2 = _interopRequireDefault(_cloneDeep);
45-
46-
var _isEqual = require('lodash/isEqual');
38+
var _toPath = require('lodash/toPath');
4739

48-
var _isEqual2 = _interopRequireDefault(_isEqual);
40+
var _toPath2 = _interopRequireDefault(_toPath);
4941

5042
var _actionTypes = require('../action-types');
5143

@@ -59,10 +51,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
5951

6052
function setField(state, localPath, props) {
6153
if (!localPath.length) {
62-
return (0, _merge2.default)((0, _cloneDeep2.default)(state), props);
63-
};
54+
return _icepick2.default.merge(state, props);
55+
}
6456

65-
return (0, _merge2.default)((0, _cloneDeep2.default)(state), {
57+
return _icepick2.default.merge(state, {
6658
fields: _defineProperty({}, localPath.join('.'), _extends({}, initialFieldState, getField(state, localPath), props))
6759
});
6860
}
@@ -115,102 +107,98 @@ function createFormReducer(model) {
115107

116108
var localPath = path.slice(modelPath.length);
117109

118-
var form = (0, _cloneDeep2.default)(state);
119-
120110
switch (action.type) {
121111
case actionTypes.FOCUS:
122-
return setField(form, localPath, {
112+
return setField(state, localPath, {
123113
focus: true,
124114
blur: false
125115
});
126116

127117
case actionTypes.CHANGE:
128118
case actionTypes.SET_DIRTY:
129-
(0, _merge2.default)(form, {
119+
state = _icepick2.default.merge(state, {
130120
dirty: true,
131121
pristine: false
132122
});
133123

134-
return setField(form, localPath, {
124+
return setField(state, localPath, {
135125
dirty: true,
136126
pristine: false
137127
});
138128

139129
case actionTypes.BLUR:
140130
case actionTypes.SET_TOUCHED:
141-
return setField(form, localPath, {
131+
return setField(state, localPath, {
142132
touched: true,
143133
untouched: false,
144134
focus: false,
145135
blur: true
146136
});
147137

148138
case actionTypes.SET_PENDING:
149-
return setField(form, localPath, {
139+
return setField(state, localPath, {
150140
pending: action.pending,
151141
submitted: false
152142
});
153143

154144
case actionTypes.SET_VALIDITY:
155-
var errors = (0, _isPlainObject2.default)(action.validity) ? _extends({}, getField(form, localPath).errors, (0, _mapValues2.default)(action.validity, function (valid) {
145+
var errors = (0, _isPlainObject2.default)(action.validity) ? _extends({}, getField(state, localPath).errors, (0, _mapValues2.default)(action.validity, function (valid) {
156146
return !valid;
157147
})) : !action.validity;
158148

159-
form = setField(form, localPath, {
149+
state = setField(state, localPath, {
160150
errors: errors,
161151
valid: (0, _isBoolean2.default)(errors) ? errors : (0, _every2.default)(errors, function (error) {
162152
return !error;
163153
})
164154
});
165155

166-
return (0, _merge2.default)(form, {
167-
valid: (0, _every2.default)((0, _mapValues2.default)(form.fields, function (field) {
156+
return _icepick2.default.merge(state, {
157+
valid: (0, _every2.default)((0, _mapValues2.default)(state.fields, function (field) {
168158
return field.valid;
169-
})) && (0, _every2.default)(form.errors, function (error) {
159+
})) && (0, _every2.default)(state.errors, function (error) {
170160
return !error;
171161
})
172162
});
173163

174-
break;
175-
176164
case actionTypes.SET_PRISTINE:
177-
form = setField(form, localPath, {
165+
state = setField(state, localPath, {
178166
dirty: false,
179167
pristine: true
180168
});
181169

182-
var formIsPristine = (0, _every2.default)((0, _mapValues2.default)(form.fields, function (field) {
170+
var formIsPristine = (0, _every2.default)((0, _mapValues2.default)(state.fields, function (field) {
183171
return field.pristine;
184172
}));
185173

186-
return (0, _merge2.default)(form, {
174+
return _icepick2.default.merge(state, {
187175
pristine: formIsPristine,
188176
dirty: !formIsPristine
189177
});
190178

191179
case actionTypes.SET_UNTOUCHED:
192-
return setField(form, localPath, {
180+
return setField(state, localPath, {
193181
touched: false,
194182
untouched: true
195183
});
196184

197185
case actionTypes.SET_SUBMITTED:
198-
return setField(form, localPath, {
186+
return setField(state, localPath, {
199187
pending: false,
200188
submitted: !!action.submitted
201189
});
202190

203191
case actionTypes.SET_INITIAL:
204192
case actionTypes.RESET:
205-
return setField(form, localPath, initialFieldState);
193+
return setField(state, localPath, initialFieldState);
206194

207195
case actionTypes.SET_VIEW_VALUE:
208-
return setField(form, localPath, {
196+
return setField(state, localPath, {
209197
viewValue: action.value
210198
});
211199

212200
default:
213-
return form;
201+
return state;
214202
}
215203
};
216204
}

lib/reducers/model-reducer.js

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,18 @@ var _get = require('lodash/get');
99

1010
var _get2 = _interopRequireDefault(_get);
1111

12-
var _set = require('lodash/set');
12+
var _icepick = require('icepick');
1313

14-
var _set2 = _interopRequireDefault(_set);
14+
var _icepick2 = _interopRequireDefault(_icepick);
1515

16-
var _startsWith = require('lodash/startsWith');
17-
18-
var _startsWith2 = _interopRequireDefault(_startsWith);
19-
20-
var _cloneDeep = require('lodash/cloneDeep');
16+
var _isEqual = require('lodash/isEqual');
2117

22-
var _cloneDeep2 = _interopRequireDefault(_cloneDeep);
18+
var _isEqual2 = _interopRequireDefault(_isEqual);
2319

2420
var _toPath = require('lodash/toPath');
2521

2622
var _toPath2 = _interopRequireDefault(_toPath);
2723

28-
var _isEqual = require('lodash/isEqual');
29-
30-
var _isEqual2 = _interopRequireDefault(_isEqual);
31-
3224
var _actionTypes = require('../action-types');
3325

3426
var actionTypes = _interopRequireWildcard(_actionTypes);
@@ -55,25 +47,24 @@ function createModelReducer(model) {
5547
}
5648

5749
var localPath = path.slice(modelPath.length);
58-
var newState = (0, _cloneDeep2.default)(state);
5950

6051
switch (action.type) {
6152
case actionTypes.CHANGE:
6253
if (!localPath.length) {
6354
return action.value;
6455
}
6556

66-
return (0, _set2.default)(newState, localPath, action.value);
57+
return _icepick2.default.setIn(state, localPath, action.value);
6758

6859
case actionTypes.RESET:
6960
if (!localPath.length) {
7061
return initialState;
7162
}
7263

73-
return (0, _set2.default)(newState, localPath, (0, _get2.default)(initialState, localPath));
64+
return _icepick2.default.setIn(state, localPath, (0, _get2.default)(initialState, localPath));
7465

7566
default:
76-
return newState;
67+
return state;
7768
}
7869
};
7970
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"main": "lib/index.js",
66
"scripts": {
77
"start": "npm run build",
8-
"test": "mocha --require babel-core/register --require ./test/spec-setup.js",
8+
"test": "npm run build:lib && mocha --require babel-core/register --require ./test/spec-setup.js",
99
"test:watch": "mocha -w --require babel-core/register --require ./test/spec-setup.js",
1010
"build": "npm run build:umd && npm run build:lib",
1111
"build:link": "babel -w src --out-dir lib",

0 commit comments

Comments
 (0)