From 0a9045fb50e3db075789591c39bd0b61e465d396 Mon Sep 17 00:00:00 2001 From: Kjell-Morten Date: Thu, 13 Jul 2017 12:39:55 +0200 Subject: [PATCH 1/4] Return object from set() --- index.js | 5 ++++- readme.md | 6 +++++- test.js | 8 +++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 59a0e22..15282bb 100644 --- a/index.js +++ b/index.js @@ -53,9 +53,10 @@ module.exports = { set(obj, path, value) { if (!isObj(obj) || typeof path !== 'string') { - return; + return obj; } + const root = obj; const pathArr = getPathSegments(path); for (let i = 0; i < pathArr.length; i++) { @@ -71,6 +72,8 @@ module.exports = { obj = obj[p]; } + + return root; }, delete(obj, path) { diff --git a/readme.md b/readme.md index f612c47..c110f9c 100644 --- a/readme.md +++ b/readme.md @@ -34,6 +34,10 @@ dotProp.set(obj, 'foo.bar', 'b'); console.log(obj); //=> {foo: {bar: 'b'}} +const obj2 = dotProp.set(obj, 'foo.bar', 'c'); +console.log(obj2); +//=> {foo: {bar: 'c'}} + dotProp.set(obj, 'foo.baz', 'x'); console.log(obj); //=> {foo: {bar: 'b', baz: 'x'}} @@ -59,7 +63,7 @@ console.log(obj); ### get(obj, path, [defaultValue]) -### set(obj, path, value) +### obj = set(obj, path, value) ### has(obj, path) diff --git a/test.js b/test.js index 5ece6f8..5fb3735 100644 --- a/test.js +++ b/test.js @@ -56,8 +56,9 @@ test('set', t => { const func = () => 'test'; let f1 = {}; - m.set(f1, 'foo', 2); + const o1 = m.set(f1, 'foo', 2); t.is(f1.foo, 2); + t.is(o1, f1); f1 = {foo: {bar: 1}}; m.set(f1, 'foo.bar', 2); @@ -105,6 +106,11 @@ test('set', t => { m.set(f1, 'fo\\.ob\\.ar.baz', true); t.is(f1['fo.ob.ar'].baz, true); + + const f4 = 'noobject'; + const o4 = m.set(f4, 'foo.bar', 2); + t.is(f4, 'noobject'); + t.is(o4, f4); }); test('delete', t => { From d53de7bb7fb5d4688a83f751ad72fa626aa5ff45 Mon Sep 17 00:00:00 2001 From: Kjell-Morten Date: Mon, 24 Jul 2017 10:16:48 +0200 Subject: [PATCH 2/4] Make api specification for set clearer --- readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index c110f9c..26be6cd 100644 --- a/readme.md +++ b/readme.md @@ -63,7 +63,8 @@ console.log(obj); ### get(obj, path, [defaultValue]) -### obj = set(obj, path, value) +### set(obj, path, value) +Returns the object. ### has(obj, path) From 2e7cad04a7da3679e095ae0974f29b277012124a Mon Sep 17 00:00:00 2001 From: Kjell-Morten Date: Mon, 24 Jul 2017 19:21:57 +0200 Subject: [PATCH 3/4] Add example of return value from set --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 26be6cd..8282b87 100644 --- a/readme.md +++ b/readme.md @@ -34,8 +34,8 @@ dotProp.set(obj, 'foo.bar', 'b'); console.log(obj); //=> {foo: {bar: 'b'}} -const obj2 = dotProp.set(obj, 'foo.bar', 'c'); -console.log(obj2); +const foo = dotProp.set({}, 'foo.bar', 'c'); +console.log(foo); //=> {foo: {bar: 'c'}} dotProp.set(obj, 'foo.baz', 'x'); From fbc36bbe3fc5383ede62cec2bdf55e83cdfdd406 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 24 Jul 2017 22:05:33 +0200 Subject: [PATCH 4/4] Update readme.md --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 8282b87..fab3b7a 100644 --- a/readme.md +++ b/readme.md @@ -64,6 +64,7 @@ console.log(obj); ### get(obj, path, [defaultValue]) ### set(obj, path, value) + Returns the object. ### has(obj, path)