dot-object 2.1.3 → 2.1.5
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +7 -1
- package/README.md +27 -0
- package/dist/dot-object.js +1 -1
- package/dist/dot-object.min.js +1 -1
- package/index.js +1 -1
- package/package.json +13 -10
- package/bower.json +0 -35
- package/gulpfile.js +0 -59
- package/src/dot-object.js +0 -583
- package/src/footer.tpl +0 -13
- package/src/header.tpl +0 -1
- package/test/_process.js +0 -125
- package/test/array_notation.js +0 -176
- package/test/copy.js +0 -86
- package/test/data/array_deep_bug.json +0 -30
- package/test/data/array_deep_bug2.json +0 -19
- package/test/data/empty_array.json +0 -43
- package/test/data/empty_object.json +0 -23
- package/test/data/index.js +0 -8
- package/test/data/object_deep_numeric_keys.json +0 -30
- package/test/data/object_deep_numeric_keys2.json +0 -20
- package/test/dot-json.js +0 -215
- package/test/dot.js +0 -155
- package/test/fixtures/package.json +0 -46
- package/test/merge.js +0 -96
- package/test/move.js +0 -70
- package/test/override.js +0 -93
- package/test/pick.js +0 -134
- package/test/remove.js +0 -80
- package/test/str.js +0 -63
- package/test/test_data.js +0 -42
- package/test/test_transforms.js +0 -28
- package/test/transfer.js +0 -81
- package/test/transforms/contact.json +0 -26
- package/test/transforms/twitter.json +0 -174
- package/test/useArray.js +0 -68
package/test/dot.js
DELETED
@@ -1,155 +0,0 @@
|
|
1
|
-
'use strict'
|
2
|
-
|
3
|
-
require('should')
|
4
|
-
var Dot = require('../index')
|
5
|
-
var pkg = require('./fixtures/package.json')
|
6
|
-
|
7
|
-
describe('dot():', function () {
|
8
|
-
var obj
|
9
|
-
|
10
|
-
// Dot.useBrackets = false;
|
11
|
-
|
12
|
-
beforeEach(function () {
|
13
|
-
obj = {
|
14
|
-
id: 'my-id',
|
15
|
-
nes: {
|
16
|
-
ted: {
|
17
|
-
value: true
|
18
|
-
}
|
19
|
-
},
|
20
|
-
other: {
|
21
|
-
nested: {
|
22
|
-
stuff: 5
|
23
|
-
}
|
24
|
-
},
|
25
|
-
nested: {
|
26
|
-
array: [
|
27
|
-
{
|
28
|
-
with: 'object1'
|
29
|
-
},
|
30
|
-
{
|
31
|
-
and: 'object2'
|
32
|
-
}
|
33
|
-
]
|
34
|
-
},
|
35
|
-
some: {
|
36
|
-
array: ['A', 'B']
|
37
|
-
},
|
38
|
-
ehrm: 123,
|
39
|
-
dates: {
|
40
|
-
first: new Date('Mon Oct 13 2014 00:00:00 GMT+0100 (BST)')
|
41
|
-
},
|
42
|
-
arrays: [
|
43
|
-
[
|
44
|
-
[
|
45
|
-
{
|
46
|
-
all: [
|
47
|
-
[
|
48
|
-
{
|
49
|
-
the: [
|
50
|
-
'way',
|
51
|
-
['down']
|
52
|
-
]
|
53
|
-
}
|
54
|
-
]
|
55
|
-
]
|
56
|
-
}
|
57
|
-
]
|
58
|
-
]
|
59
|
-
]
|
60
|
-
}
|
61
|
-
})
|
62
|
-
|
63
|
-
it('Should be able to convert to dotted-key/value pairs', function () {
|
64
|
-
var expected = {
|
65
|
-
id: 'my-id',
|
66
|
-
'nes.ted.value': true,
|
67
|
-
'other.nested.stuff': 5,
|
68
|
-
'nested.array[0].with': 'object1',
|
69
|
-
'nested.array[1].and': 'object2',
|
70
|
-
'some.array[0]': 'A',
|
71
|
-
'some.array[1]': 'B',
|
72
|
-
ehrm: 123,
|
73
|
-
'dates.first': new Date('Mon Oct 13 2014 00:00:00 GMT+0100 (BST)'),
|
74
|
-
'arrays[0][0][0].all[0][0].the[0]': 'way',
|
75
|
-
'arrays[0][0][0].all[0][0].the[1][0]': 'down'
|
76
|
-
}
|
77
|
-
|
78
|
-
Dot.dot(obj).should.eql(expected)
|
79
|
-
})
|
80
|
-
|
81
|
-
it('dot() should equal object()', function () {
|
82
|
-
Dot.object(Dot.dot(pkg)).should.eql(pkg)
|
83
|
-
})
|
84
|
-
|
85
|
-
it('keepArray prevents arrays from being dotted', function () {
|
86
|
-
var expected = {
|
87
|
-
id: 'my-id',
|
88
|
-
'nes.ted.value': true,
|
89
|
-
'other.nested.stuff': 5,
|
90
|
-
'nested.array': [{
|
91
|
-
with: 'object1'
|
92
|
-
}, {
|
93
|
-
and: 'object2'
|
94
|
-
}],
|
95
|
-
'some.array': ['A', 'B'],
|
96
|
-
ehrm: 123,
|
97
|
-
'dates.first': new Date('Mon Oct 13 2014 00:00:00 GMT+0100 (BST)'),
|
98
|
-
arrays: JSON.parse(JSON.stringify(obj.arrays))
|
99
|
-
}
|
100
|
-
|
101
|
-
Dot.keepArray = true
|
102
|
-
|
103
|
-
Dot.dot(obj).should.eql(expected)
|
104
|
-
|
105
|
-
Dot.keepArray = false
|
106
|
-
})
|
107
|
-
|
108
|
-
it('useBrackets wrap indexes with brackets', function () {
|
109
|
-
var expected = {
|
110
|
-
id: 'my-id',
|
111
|
-
'nes.ted.value': true,
|
112
|
-
'other.nested.stuff': 5,
|
113
|
-
'nested.array[0].with': 'object1',
|
114
|
-
'nested.array[1].and': 'object2',
|
115
|
-
'some.array[0]': 'A',
|
116
|
-
'some.array[1]': 'B',
|
117
|
-
ehrm: 123,
|
118
|
-
'dates.first': new Date('Mon Oct 13 2014 00:00:00 GMT+0100 (BST)'),
|
119
|
-
'arrays[0][0][0].all[0][0].the[0]': 'way',
|
120
|
-
'arrays[0][0][0].all[0][0].the[1][0]': 'down'
|
121
|
-
}
|
122
|
-
|
123
|
-
Dot.dot(obj).should.eql(expected)
|
124
|
-
})
|
125
|
-
|
126
|
-
it('useBrackets wrap indexes without brackets', function () {
|
127
|
-
var expected = {
|
128
|
-
id: 'my-id',
|
129
|
-
'nes.ted.value': true,
|
130
|
-
'other.nested.stuff': 5,
|
131
|
-
'nested.array.0.with': 'object1',
|
132
|
-
'nested.array.1.and': 'object2',
|
133
|
-
'some.array.0': 'A',
|
134
|
-
'some.array.1': 'B',
|
135
|
-
ehrm: 123,
|
136
|
-
'dates.first': new Date('Mon Oct 13 2014 00:00:00 GMT+0100 (BST)'),
|
137
|
-
'arrays.0.0.0.all.0.0.the.0': 'way',
|
138
|
-
'arrays.0.0.0.all.0.0.the.1.0': 'down'
|
139
|
-
}
|
140
|
-
|
141
|
-
Dot.useBrackets = false
|
142
|
-
Dot.dot(obj).should.eql(expected)
|
143
|
-
Dot.useBrackets = true
|
144
|
-
})
|
145
|
-
|
146
|
-
it('Always keeps empty arrays', function () {
|
147
|
-
Dot.dot({ hello: [] }).should.eql({ hello: [] })
|
148
|
-
Dot.dot({ hello: { world: [] } }).should.eql({ 'hello.world': [] })
|
149
|
-
})
|
150
|
-
|
151
|
-
it('Always keeps empty objects', function () {
|
152
|
-
Dot.dot({ hello: {} }).should.eql({ hello: {} })
|
153
|
-
Dot.dot({ hello: { world: {} } }).should.eql({ 'hello.world': {} })
|
154
|
-
})
|
155
|
-
})
|
@@ -1,46 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "dot-object",
|
3
|
-
"description": "dot-object makes it possible to transform and read (JSON) objects using dot notation.",
|
4
|
-
"version": "1.1.0",
|
5
|
-
"author": {
|
6
|
-
"name": "Rob Halff",
|
7
|
-
"email": "rob.halff@gmail.com"
|
8
|
-
},
|
9
|
-
"repository": {
|
10
|
-
"type": "git",
|
11
|
-
"url": "git://github.com/rhalff/dot-object.git"
|
12
|
-
},
|
13
|
-
"bugs": {
|
14
|
-
"url": "https://github.com/rhalff/dot-object/issues"
|
15
|
-
},
|
16
|
-
"main": "index",
|
17
|
-
"bin": "./bin/dot-object",
|
18
|
-
"scripts": {
|
19
|
-
"test": "gulp test"
|
20
|
-
},
|
21
|
-
"devDependencies": {
|
22
|
-
"gulp": "^3.9.0",
|
23
|
-
"gulp-beautify": "^1.1.2",
|
24
|
-
"gulp-headerfooter": "^1.0.3",
|
25
|
-
"gulp-jscs": "^2.0.0",
|
26
|
-
"gulp-jshint": "^1.11.2",
|
27
|
-
"gulp-mocha": "^2.1.3",
|
28
|
-
"gulp-rename": "^1.2.2",
|
29
|
-
"gulp-uglify": "^1.2.0",
|
30
|
-
"gulp-util": "^3.0.6",
|
31
|
-
"jscs": "^2.0.0",
|
32
|
-
"jscs-jsdoc": "1.1.0",
|
33
|
-
"mocha": "2.x.x"
|
34
|
-
},
|
35
|
-
"keywords": [
|
36
|
-
"json",
|
37
|
-
"filter",
|
38
|
-
"transform",
|
39
|
-
"dot notation",
|
40
|
-
"dot"
|
41
|
-
],
|
42
|
-
"dependencies": {
|
43
|
-
"commander": "^2.8.1",
|
44
|
-
"glob": "^5.0.14"
|
45
|
-
}
|
46
|
-
}
|
package/test/merge.js
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
'use strict'
|
2
|
-
|
3
|
-
require('should')
|
4
|
-
var Dot = require('../index')
|
5
|
-
|
6
|
-
describe('Should be able to merge:', function () {
|
7
|
-
it('to property', function () {
|
8
|
-
var link = {
|
9
|
-
other: {
|
10
|
-
three: 'Three Things',
|
11
|
-
four: 'Four Things'
|
12
|
-
},
|
13
|
-
things: {
|
14
|
-
one: 'One Thing',
|
15
|
-
two: 'Two Things'
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
var expected = {
|
20
|
-
things: {
|
21
|
-
one: 'One Thing',
|
22
|
-
two: 'Two Things',
|
23
|
-
three: 'Three Things',
|
24
|
-
four: 'Four Things'
|
25
|
-
}
|
26
|
-
}
|
27
|
-
|
28
|
-
Dot.move('other', 'things', link, true)
|
29
|
-
|
30
|
-
link.should.eql(expected)
|
31
|
-
})
|
32
|
-
|
33
|
-
it('to nested property', function () {
|
34
|
-
var link = {
|
35
|
-
other: {
|
36
|
-
three: 'Three Things',
|
37
|
-
four: 'Four Things'
|
38
|
-
},
|
39
|
-
things: {
|
40
|
-
one: 'One Thing',
|
41
|
-
two: 'Two Things',
|
42
|
-
target: {
|
43
|
-
im: 'already here'
|
44
|
-
}
|
45
|
-
}
|
46
|
-
}
|
47
|
-
|
48
|
-
var expected = {
|
49
|
-
things: {
|
50
|
-
one: 'One Thing',
|
51
|
-
two: 'Two Things',
|
52
|
-
target: {
|
53
|
-
im: 'already here',
|
54
|
-
three: 'Three Things',
|
55
|
-
four: 'Four Things'
|
56
|
-
}
|
57
|
-
}
|
58
|
-
}
|
59
|
-
|
60
|
-
Dot.move('other', 'things.target', link, true)
|
61
|
-
|
62
|
-
link.should.eql(expected)
|
63
|
-
})
|
64
|
-
|
65
|
-
it('array to array', function () {
|
66
|
-
var link = {
|
67
|
-
other: [
|
68
|
-
'Three Things',
|
69
|
-
'Four Things'
|
70
|
-
],
|
71
|
-
things: {
|
72
|
-
one: 'One Thing',
|
73
|
-
two: 'Two Things',
|
74
|
-
target: [
|
75
|
-
'already here'
|
76
|
-
]
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
var expected = {
|
81
|
-
things: {
|
82
|
-
one: 'One Thing',
|
83
|
-
two: 'Two Things',
|
84
|
-
target: [
|
85
|
-
'already here',
|
86
|
-
'Three Things',
|
87
|
-
'Four Things'
|
88
|
-
]
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
Dot.move('other', 'things.target', link, true)
|
93
|
-
|
94
|
-
link.should.eql(expected)
|
95
|
-
})
|
96
|
-
})
|
package/test/move.js
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
'use strict'
|
2
|
-
|
3
|
-
require('should')
|
4
|
-
var Dot = require('../index')
|
5
|
-
|
6
|
-
describe('Move test:', function () {
|
7
|
-
it('Should be able to move properties', function () {
|
8
|
-
var link = {
|
9
|
-
id: '527423a65e380f0000588e47',
|
10
|
-
source: '526dd5c6b4c4aa8770000001',
|
11
|
-
target: '527402d6b15d1800008755cf',
|
12
|
-
out: 'github',
|
13
|
-
in: 'in'
|
14
|
-
}
|
15
|
-
|
16
|
-
var expected = {
|
17
|
-
id: '527423a65e380f0000588e47',
|
18
|
-
source: { id: '526dd5c6b4c4aa8770000001', port: 'github' },
|
19
|
-
target: { id: '527402d6b15d1800008755cf', port: 'in' }
|
20
|
-
}
|
21
|
-
|
22
|
-
Dot.move('source', 'source.id', link)
|
23
|
-
Dot.move('out', 'source.port', link)
|
24
|
-
Dot.move('target', 'target.id', link)
|
25
|
-
Dot.move('in', 'target.port', link)
|
26
|
-
|
27
|
-
link.should.eql(expected)
|
28
|
-
})
|
29
|
-
|
30
|
-
it('Undefined properties should be ignored', function () {
|
31
|
-
var link = {
|
32
|
-
source: '526dd5c6b4c4aa8770000001',
|
33
|
-
target: '527402d6b15d1800008755cf',
|
34
|
-
out: 'github',
|
35
|
-
in: 'in'
|
36
|
-
}
|
37
|
-
|
38
|
-
var expected = {
|
39
|
-
source: { id: '526dd5c6b4c4aa8770000001' },
|
40
|
-
target: { port: 'in' },
|
41
|
-
out: 'github'
|
42
|
-
}
|
43
|
-
|
44
|
-
Dot.move('source', 'source.id', link)
|
45
|
-
Dot.move('out.er.nope', 'source.port', link)
|
46
|
-
Dot.move('target.bla.di.bla', 'target.id', link)
|
47
|
-
Dot.move('in', 'target.port', link)
|
48
|
-
|
49
|
-
link.should.eql(expected)
|
50
|
-
})
|
51
|
-
|
52
|
-
it('Should process modifiers', function () {
|
53
|
-
var link = {
|
54
|
-
source: 'one',
|
55
|
-
target: 'two'
|
56
|
-
}
|
57
|
-
|
58
|
-
var expected = {
|
59
|
-
source: { id: 'ONE' },
|
60
|
-
target: { port: 'TWO' }
|
61
|
-
}
|
62
|
-
|
63
|
-
function up (val) { return val.toUpperCase() }
|
64
|
-
|
65
|
-
Dot.move('source', 'source.id', link, up)
|
66
|
-
Dot.move('target', 'target.port', link, up)
|
67
|
-
|
68
|
-
link.should.eql(expected)
|
69
|
-
})
|
70
|
-
})
|
package/test/override.js
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
'use strict'
|
2
|
-
|
3
|
-
require('should')
|
4
|
-
var _s = require('underscore.string')
|
5
|
-
var Dot = require('../index')
|
6
|
-
|
7
|
-
describe('Override test:', function () {
|
8
|
-
it('Redefinition should _not_ fail if override is true', function () {
|
9
|
-
var dot = new Dot('.', true)
|
10
|
-
|
11
|
-
var obj = {
|
12
|
-
some: 'value',
|
13
|
-
already: 'set'
|
14
|
-
}
|
15
|
-
|
16
|
-
dot.str('already.new', 'value', obj)
|
17
|
-
|
18
|
-
obj.should.eql({
|
19
|
-
some: 'value',
|
20
|
-
already: { new: 'value' }
|
21
|
-
})
|
22
|
-
})
|
23
|
-
|
24
|
-
it('Redefinition should _not_ fail if override is true (2)', function () {
|
25
|
-
var dot = new Dot('.', true)
|
26
|
-
|
27
|
-
var obj = {
|
28
|
-
some: 'value',
|
29
|
-
already: 'set'
|
30
|
-
}
|
31
|
-
|
32
|
-
dot.str('already.new', 'value', obj)
|
33
|
-
dot.str('some', 'new_value', obj)
|
34
|
-
|
35
|
-
obj.should.eql({
|
36
|
-
some: 'new_value',
|
37
|
-
already: { new: 'value' }
|
38
|
-
})
|
39
|
-
})
|
40
|
-
|
41
|
-
it('Allow override even when target is non-empty object',
|
42
|
-
function () {
|
43
|
-
var obj = {
|
44
|
-
sample: {
|
45
|
-
dotted: {
|
46
|
-
bar: {
|
47
|
-
baz: 'baz'
|
48
|
-
}
|
49
|
-
}
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
Dot.override = true
|
54
|
-
|
55
|
-
Dot.str('sample.dotted.bar', { baz: 'boom' }, obj)
|
56
|
-
|
57
|
-
Dot.override = false
|
58
|
-
|
59
|
-
obj.should.eql({
|
60
|
-
sample: {
|
61
|
-
dotted: {
|
62
|
-
bar: {
|
63
|
-
baz: 'boom'
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
})
|
68
|
-
}
|
69
|
-
)
|
70
|
-
|
71
|
-
it('should process non dot notation value with modifier if override is true',
|
72
|
-
function () {
|
73
|
-
var dot = new Dot('.', true)
|
74
|
-
|
75
|
-
var row = {
|
76
|
-
title: 'my page',
|
77
|
-
slug: 'My Page'
|
78
|
-
}
|
79
|
-
|
80
|
-
var mods = {
|
81
|
-
title: _s.titleize,
|
82
|
-
slug: _s.slugify
|
83
|
-
}
|
84
|
-
|
85
|
-
dot.object(row, mods)
|
86
|
-
|
87
|
-
row.should.eql({
|
88
|
-
title: 'My Page',
|
89
|
-
slug: 'my-page'
|
90
|
-
})
|
91
|
-
}
|
92
|
-
)
|
93
|
-
})
|
package/test/pick.js
DELETED
@@ -1,134 +0,0 @@
|
|
1
|
-
'use strict'
|
2
|
-
|
3
|
-
/* jshint -W030 */
|
4
|
-
|
5
|
-
require('should')
|
6
|
-
var Dot = require('../index')
|
7
|
-
|
8
|
-
describe('Pick:', function () {
|
9
|
-
it('Should be able to pick a value', function () {
|
10
|
-
var obj = {
|
11
|
-
some: 'value',
|
12
|
-
already: 'set'
|
13
|
-
}
|
14
|
-
|
15
|
-
var val = Dot.pick('some', obj)
|
16
|
-
|
17
|
-
val.should.eql('value')
|
18
|
-
})
|
19
|
-
|
20
|
-
it('Should be able to pick dotted value', function () {
|
21
|
-
var obj = {
|
22
|
-
some: {
|
23
|
-
other: 'value'
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
var val = Dot.pick('some.other', obj)
|
28
|
-
|
29
|
-
val.should.eql('value')
|
30
|
-
})
|
31
|
-
|
32
|
-
it('Should be able to pick null properties', function () {
|
33
|
-
var obj = {
|
34
|
-
some: null
|
35
|
-
}
|
36
|
-
|
37
|
-
var val = Dot.pick('some', obj)
|
38
|
-
|
39
|
-
;(val === null).should.equal(true)
|
40
|
-
})
|
41
|
-
|
42
|
-
it('Should return undefined when picking an non-existing value', function () {
|
43
|
-
var obj = {
|
44
|
-
some: null
|
45
|
-
}
|
46
|
-
|
47
|
-
var val = Dot.pick('other', obj)
|
48
|
-
|
49
|
-
;(val === undefined).should.equal(true)
|
50
|
-
})
|
51
|
-
|
52
|
-
it('Should return undefined when picking an non-existing dotted value',
|
53
|
-
function () {
|
54
|
-
var obj = {
|
55
|
-
some: null
|
56
|
-
}
|
57
|
-
|
58
|
-
var val = Dot.pick('some.other', obj)
|
59
|
-
|
60
|
-
;(val === undefined).should.equal(true)
|
61
|
-
}
|
62
|
-
)
|
63
|
-
|
64
|
-
it("Should check down the object's prototype chain", function () {
|
65
|
-
var obj = {
|
66
|
-
some: {
|
67
|
-
other: 'value'
|
68
|
-
}
|
69
|
-
}
|
70
|
-
|
71
|
-
var objIns = Object.create(obj)
|
72
|
-
|
73
|
-
objIns.should.have.property('some')
|
74
|
-
|
75
|
-
var val = Dot.pick('some.other', objIns)
|
76
|
-
val.should.be.instanceOf(String)
|
77
|
-
})
|
78
|
-
|
79
|
-
it('Should be able to delete picked value', function () {
|
80
|
-
var obj = {
|
81
|
-
some: {
|
82
|
-
other: 'value',
|
83
|
-
foo: 'bar'
|
84
|
-
}
|
85
|
-
}
|
86
|
-
|
87
|
-
var val = Dot.pick('some.foo', obj, true)
|
88
|
-
|
89
|
-
val.should.eql('bar')
|
90
|
-
obj.should.eql({
|
91
|
-
some: {
|
92
|
-
other: 'value'
|
93
|
-
}
|
94
|
-
})
|
95
|
-
})
|
96
|
-
|
97
|
-
it('Should be able to delete picked array value', function () {
|
98
|
-
var obj = {
|
99
|
-
some: {
|
100
|
-
other: 'value',
|
101
|
-
arrayItems: ['foo', 'bar', 'baz']
|
102
|
-
}
|
103
|
-
}
|
104
|
-
|
105
|
-
var val = Dot.pick('some.arrayItems[1]', obj, true)
|
106
|
-
|
107
|
-
val.should.eql('bar')
|
108
|
-
obj.should.eql({
|
109
|
-
some: {
|
110
|
-
other: 'value',
|
111
|
-
arrayItems: ['foo', , 'baz'] /* eslint-disable-line no-sparse-arrays */
|
112
|
-
}
|
113
|
-
})
|
114
|
-
})
|
115
|
-
|
116
|
-
it('Should be able to delete picked array value and reindex', function () {
|
117
|
-
var obj = {
|
118
|
-
some: {
|
119
|
-
other: 'value',
|
120
|
-
arrayItems: ['foo', 'bar', 'baz']
|
121
|
-
}
|
122
|
-
}
|
123
|
-
|
124
|
-
var val = Dot.pick('some.arrayItems[1]', obj, true, true)
|
125
|
-
|
126
|
-
val.should.eql('bar')
|
127
|
-
obj.should.eql({
|
128
|
-
some: {
|
129
|
-
other: 'value',
|
130
|
-
arrayItems: ['foo', 'baz']
|
131
|
-
}
|
132
|
-
})
|
133
|
-
})
|
134
|
-
})
|
package/test/remove.js
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
'use strict'
|
2
|
-
|
3
|
-
require('should')
|
4
|
-
var Dot = require('../index')
|
5
|
-
|
6
|
-
describe('Remove/del:', function () {
|
7
|
-
var obj
|
8
|
-
var expected
|
9
|
-
|
10
|
-
beforeEach(function () {
|
11
|
-
obj = {
|
12
|
-
id: 'my-id',
|
13
|
-
nes: {
|
14
|
-
ted: {
|
15
|
-
gone: 'value',
|
16
|
-
still: 'there'
|
17
|
-
}
|
18
|
-
},
|
19
|
-
ehrm: 123
|
20
|
-
}
|
21
|
-
|
22
|
-
expected = {
|
23
|
-
id: 'my-id',
|
24
|
-
nes: {
|
25
|
-
ted: {
|
26
|
-
still: 'there'
|
27
|
-
}
|
28
|
-
}
|
29
|
-
}
|
30
|
-
})
|
31
|
-
|
32
|
-
it('Should be able to remove() properties', function () {
|
33
|
-
Dot.remove('ehrm', obj).should.equal(123)
|
34
|
-
Dot.remove('nes.ted.gone', obj).should.equal('value')
|
35
|
-
obj.should.eql(expected)
|
36
|
-
})
|
37
|
-
|
38
|
-
it('Should be able to use del() alias', function () {
|
39
|
-
Dot.del('ehrm', obj).should.equal(123)
|
40
|
-
Dot.del('nes.ted.gone', obj).should.equal('value')
|
41
|
-
obj.should.eql(expected)
|
42
|
-
})
|
43
|
-
|
44
|
-
it('Should be able to remove() array item and reindex array', function () {
|
45
|
-
var obj = {
|
46
|
-
some: {
|
47
|
-
other: 'value',
|
48
|
-
arrayItems: ['foo', 'bar', 'baz']
|
49
|
-
}
|
50
|
-
}
|
51
|
-
|
52
|
-
var val = Dot.remove('some.arrayItems[1]', obj, true, true)
|
53
|
-
|
54
|
-
val.should.eql('bar')
|
55
|
-
obj.should.eql({
|
56
|
-
some: {
|
57
|
-
other: 'value',
|
58
|
-
arrayItems: ['foo', 'baz']
|
59
|
-
}
|
60
|
-
})
|
61
|
-
})
|
62
|
-
|
63
|
-
it('Should be handle being told to reindex an object by ignoring reindex rule', function () {
|
64
|
-
var obj = {
|
65
|
-
some: {
|
66
|
-
other: 'value',
|
67
|
-
arrayItems: ['foo', 'bar', 'baz']
|
68
|
-
}
|
69
|
-
}
|
70
|
-
|
71
|
-
var val = Dot.remove('some.other', obj, true, true)
|
72
|
-
|
73
|
-
val.should.eql('value')
|
74
|
-
obj.should.eql({
|
75
|
-
some: {
|
76
|
-
arrayItems: ['foo', 'bar', 'baz']
|
77
|
-
}
|
78
|
-
})
|
79
|
-
})
|
80
|
-
})
|