Revert "Merge pull request #34 from substantial/default-to-array"

This reverts commit 12bf952d64, reversing
changes made to 7a35404ae1.
This commit is contained in:
Aaron Jensen 2015-11-16 08:13:01 -08:00
parent 43d34e0a5a
commit 485bde7b9b
5 changed files with 7 additions and 61 deletions

View File

@ -1,8 +1,10 @@
import wrap from './wrap'; import wrap from './wrap';
import isEmpty from './util/isEmpty';
import defaultObject from './util/defaultObject';
import isPlainObject from 'lodash/lang/isPlainObject'; import isPlainObject from 'lodash/lang/isPlainObject';
function isEmpty(object) {
return !Object.keys(object).length;
}
function reduce(object, callback, initialValue) { function reduce(object, callback, initialValue) {
return Object.keys(object).reduce((acc, key) => { return Object.keys(object).reduce((acc, key) => {
return callback(acc, object[key], key); return callback(acc, object[key], key);
@ -63,7 +65,9 @@ function update(updates, object, ...args) {
return updates; return updates;
} }
const defaultedObject = defaultObject(object, updates); const defaultedObject = (typeof object === 'undefined' || object === null) ?
{} :
object;
const resolvedUpdates = resolveUpdates(updates, defaultedObject); const resolvedUpdates = resolveUpdates(updates, defaultedObject);

View File

@ -1,35 +0,0 @@
import isEmpty from './isEmpty';
function isInt(value) {
if (isNaN(value)) {
return false;
}
const x = parseFloat(value);
return (x | 0) === x;
}
function isArrayUpdate(updates) {
for (const updateKey of Object.keys(updates)) {
if (!isInt(updateKey)) { return false; }
}
return true;
}
function arrayOrObject(updates) {
if (!isEmpty(updates) && isArrayUpdate(updates)) {
return [];
}
return {};
}
function defaultObject(object, updates) {
if (typeof object === 'undefined' || object === null) {
return arrayOrObject(updates);
}
return object;
}
export default defaultObject;

View File

@ -1,5 +0,0 @@
function isEmpty(object) {
return !Object.keys(object).length;
}
export default isEmpty;

View File

@ -27,12 +27,6 @@ describe('u.updateIn', () => {
expect(result).to.eql({ a: [0, 3, 0] }); expect(result).to.eql({ a: [0, 3, 0] });
}); });
it('can create array if all keys are numbers', () => {
const result = u.updateIn('a.0', 3, null);
expect(result).to.eql({ a: [3] });
});
it('can be partially applied', () => { it('can be partially applied', () => {
const object = { a: { b: 0 } }; const object = { a: { b: 0 } };
const result = u.updateIn('a.b')(3)(object); const result = u.updateIn('a.b')(3)(object);

View File

@ -42,18 +42,6 @@ describe('updeep', () => {
expect(u(null, {})).to.be.null; expect(u(null, {})).to.be.null;
}); });
it('can create array if all keys are numbers', () => {
const result = u({ 0: 'hi', '1': 'world' }, null);
expect(result).to.eql(['hi', 'world']);
});
it('does not create array if any key is not number', () => {
const result = u({ 0: 'hi', '1a': 'world' }, null);
expect(result).to.eql({ 0: 'hi', '1a': 'world' });
});
it('can add an element to an array', () => { it('can add an element to an array', () => {
const object = []; const object = [];
const result = u({ 0: 3 }, object); const result = u({ 0: 3 }, object);