Skip to content

Commit 6451195

Browse files
Merge pull request #2 from explore-node-js/master
sync. with main repository
2 parents a50828e + cc65e00 commit 6451195

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,23 @@
11
# node.js-object-field-resolver
2-
allows overwrite object fields with value
2+
allows overwrite object field value using abstract path
33

4+
## software requirements
5+
* node.js 6.9+ [with v8 enabled]
6+
* npm 3+
47

5-
how to use:
8+
## used technologies
9+
* jest
10+
11+
## how to execute tests
12+
```
13+
npm test
14+
```
15+
to execute tests with coverage
16+
```
17+
npm test -- --coverage
18+
```
19+
20+
## how to use
621

722
```
823
import overwriteObjectField from "node-object-field-resolver"

src/overwrite_object_field_value.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module.exports = function overwriteObjectFieldValue(abstractPath, value, object,
1010
for (let i = 0; i <= lastPathIndex; i++) {
1111
const index = indexes[i];
1212

13-
if (undefined === obj[index]) {
13+
if (undefined === obj[index] || !(obj[index] instanceof Object)) {
1414
obj[index] = {};
1515
}
1616

tests/overwrite_object_field_value.test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ describe(`resolver: object field`, () => {
1414
object: { node1: ['test'] },
1515
expected: { node1: {} }
1616
},
17+
{
18+
absolutePath: 'node1.node2',
19+
value: 'string',
20+
object: { node1: 'value' },
21+
expected: { node1: { node2: 'string' } }
22+
},
1723
{
1824
absolutePath: 'node1',
1925
value: {},

0 commit comments

Comments
 (0)