Skip to content

Commit

Permalink
set all data but return only changed
Browse files Browse the repository at this point in the history
  • Loading branch information
borovin committed Aug 31, 2015
1 parent e175756 commit 94787c5
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 4 deletions.
6 changes: 2 additions & 4 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,17 +77,15 @@ function pathToObject(path, value) {

module.exports = function (object, path, data) {

var changedData;

if (typeof path === 'string') {
data = pathToObject(path, deepExtend.apply(null, [].slice.call(arguments, 2)));
} else {
data = deepExtend.apply(null, [].slice.call(arguments, 1));
}

changedData = getChanges(data, object);
var changedData = getChanges(data, object);

deepExtend(object, changedData);
deepExtend(object, data);

return changedData;

Expand Down
45 changes: 45 additions & 0 deletions index.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,4 +150,49 @@ describe(module.id, function(){

});

it('All properties set by values', function(){

var a = {},
b = {},
object = {
c: {
d: 1
}
};

set(a, object);
set(b, object);

a.c.d = 2;

expect(b.c.d).toEqual(1);

});

it('Unchanged properties set by values', function(){

var object = {
c: 1
};

var a = {
object: object
};

var b = {
object: object
};

set(a, {
object: object
});
set(b, {
object: object
});

a.object.c = 2;

expect(b.object.c).toEqual(1);

});
});

0 comments on commit 94787c5

Please sign in to comment.