Skip to content

Commit cabb37d

Browse files
committed
Merge pull request #23 from marcbachmann/linting
Lint files using javascript standard style
2 parents 7e9d053 + 9a99231 commit cabb37d

4 files changed

Lines changed: 120 additions & 122 deletions

File tree

.travis.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
language: "node_js"
22
node_js:
3-
- 0.6
4-
- 0.8
53
- 0.10
64
- 0.11
75
- 0.12
8-
- iojs-v1.0
9-
- iojs-v2.0
10-
- iojs
6+
- 4.0
7+
- node

jsonpointer.js

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,97 @@
1-
var untilde = function(str) {
2-
return str.replace(/~./g, function(m) {
1+
var untilde = function (str) {
2+
return str.replace(/~./g, function (m) {
33
switch (m) {
4-
case "~0":
5-
return "~";
6-
case "~1":
7-
return "/";
4+
case '~0': return '~'
5+
case '~1': return '/'
86
}
9-
throw new Error("Invalid tilde escape: " + m);
10-
});
7+
throw new Error('Invalid tilde escape: ' + m)
8+
})
119
}
1210

13-
var traverse = function(obj, pointer, value) {
14-
var part = untilde(pointer.shift());
15-
var isJustReading = arguments.length === 2;
11+
var traverse = function (obj, pointer, value) {
12+
var part = untilde(pointer.shift())
13+
var isJustReading = arguments.length === 2
1614

1715
if (obj[part] == null) {
18-
if (isJustReading) return null;
16+
if (isJustReading) return null
1917

2018
// support setting of /-
2119
if (part === '-' && obj instanceof Array) {
22-
part = obj.length;
20+
part = obj.length
2321
}
2422

2523
// support nested objects/array when setting values
26-
var nextPart = pointer[0];
24+
var nextPart = pointer[0]
2725
if (nextPart === '-' || !isNaN(nextPart)) {
28-
obj[part] = [];
26+
obj[part] = []
2927
} else if (nextPart) {
30-
obj[part] = {};
28+
obj[part] = {}
3129
}
3230
}
3331

3432
// keep traversing
3533
if (pointer.length !== 0) {
3634
if (isJustReading) {
37-
return traverse(obj[part], pointer);
35+
return traverse(obj[part], pointer)
3836
} else {
39-
return traverse(obj[part], pointer, value);
37+
return traverse(obj[part], pointer, value)
4038
}
4139
}
4240

4341
// we're done
4442
if (isJustReading) {
45-
return obj[part];
43+
return obj[part]
4644
}
4745

4846
// set new value, return old value
49-
var oldValue = obj[part];
47+
var oldValue = obj[part]
5048
if (value === null) {
51-
delete obj[part];
49+
delete obj[part]
5250
} else {
53-
obj[part] = value;
51+
obj[part] = value
5452
}
55-
return oldValue;
53+
return oldValue
5654
}
5755

58-
var compilePointer = function(pointer) {
59-
if(pointer === "") {
60-
return [];
56+
var compilePointer = function (pointer) {
57+
if (pointer === '') {
58+
return []
6159
}
6260

63-
if(!pointer) {
64-
throw new Error("Invalid JSON pointer.");
61+
if (!pointer) {
62+
throw new Error('Invalid JSON pointer.')
6563
}
6664

6765
if (!(pointer instanceof Array)) {
68-
pointer = pointer.split("/");
69-
if (pointer.shift() !== "") throw new Error("Invalid JSON pointer.")
66+
pointer = pointer.split('/')
67+
if (pointer.shift() !== '') throw new Error('Invalid JSON pointer.')
7068
}
7169

72-
return pointer;
70+
return pointer
7371
}
7472

75-
var validate_input = function(obj, pointer) {
76-
if(typeof obj !== "object") {
77-
throw new Error("Invalid input object.");
73+
var validateInput = function (obj, pointer) {
74+
if (typeof obj !== 'object') {
75+
throw new Error('Invalid input object.')
7876
}
7977

80-
return compilePointer(pointer);
78+
return compilePointer(pointer)
8179
}
8280

83-
var get = function(obj, pointer) {
84-
pointer = validate_input(obj, pointer);
81+
var get = function (obj, pointer) {
82+
pointer = validateInput(obj, pointer)
8583
if (pointer.length === 0) {
86-
return obj;
84+
return obj
8785
}
88-
return traverse(obj, pointer);
86+
return traverse(obj, pointer)
8987
}
9088

91-
var set = function(obj, pointer, value) {
92-
pointer = validate_input(obj, pointer);
89+
var set = function (obj, pointer, value) {
90+
pointer = validateInput(obj, pointer)
9391
if (pointer.length === 0) {
94-
throw new Error("Invalid JSON pointer for set.")
92+
throw new Error('Invalid JSON pointer for set.')
9593
}
96-
return traverse(obj, pointer, value);
94+
return traverse(obj, pointer, value)
9795
}
9896

9997
exports.get = get

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
},
2525
"main": "./jsonpointer",
2626
"scripts": {
27-
"test": "node test.js"
27+
"test": "standard && node test.js"
2828
},
29-
"license": "MIT"
29+
"license": "MIT",
30+
"devDependencies": {
31+
"standard": "^5.3.1"
32+
}
3033
}

test.js

Lines changed: 72 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,108 @@
1-
var assert = require('assert');
2-
var jsonpointer = require('./jsonpointer');
1+
var assert = require('assert')
2+
var jsonpointer = require('./jsonpointer')
33

44
var obj = {
55
a: 1,
66
b: {
77
c: 2
88
},
99
d: {
10-
e: [{a:3}, {b:4}, {c:5}]
10+
e: [{ a: 3 }, { b: 4 }, { c: 5 }]
1111
}
12-
};
12+
}
1313

14-
assert.equal(jsonpointer.get(obj, "/a"), 1);
15-
assert.equal(jsonpointer.get(obj, "/b/c"), 2);
16-
assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 3);
17-
assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 4);
18-
assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 5);
14+
assert.equal(jsonpointer.get(obj, '/a'), 1)
15+
assert.equal(jsonpointer.get(obj, '/b/c'), 2)
16+
assert.equal(jsonpointer.get(obj, '/d/e/0/a'), 3)
17+
assert.equal(jsonpointer.get(obj, '/d/e/1/b'), 4)
18+
assert.equal(jsonpointer.get(obj, '/d/e/2/c'), 5)
1919

2020
// set returns old value
21-
assert.equal(jsonpointer.set(obj, "/a", 2), 1);
22-
assert.equal(jsonpointer.set(obj, "/b/c", 3), 2);
23-
assert.equal(jsonpointer.set(obj, "/d/e/0/a", 4), 3);
24-
assert.equal(jsonpointer.set(obj, "/d/e/1/b", 5), 4);
25-
assert.equal(jsonpointer.set(obj, "/d/e/2/c", 6), 5);
21+
assert.equal(jsonpointer.set(obj, '/a', 2), 1)
22+
assert.equal(jsonpointer.set(obj, '/b/c', 3), 2)
23+
assert.equal(jsonpointer.set(obj, '/d/e/0/a', 4), 3)
24+
assert.equal(jsonpointer.set(obj, '/d/e/1/b', 5), 4)
25+
assert.equal(jsonpointer.set(obj, '/d/e/2/c', 6), 5)
2626

2727
// set nested properties
28-
assert.equal(jsonpointer.set(obj, "/f/g/h/i", 6), undefined);
29-
assert.equal(jsonpointer.get(obj, "/f/g/h/i"), 6);
28+
assert.equal(jsonpointer.set(obj, '/f/g/h/i', 6), undefined)
29+
assert.equal(jsonpointer.get(obj, '/f/g/h/i'), 6)
3030

3131
// set an array
32-
assert.equal(jsonpointer.set(obj, "/f/g/h/foo/-", 'test'), undefined);
33-
arr = jsonpointer.get(obj, "/f/g/h/foo")
34-
assert(Array.isArray(arr), 'set /- creates an array.');
35-
assert.equal(arr[0], 'test');
32+
assert.equal(jsonpointer.set(obj, '/f/g/h/foo/-', 'test'), undefined)
33+
var arr = jsonpointer.get(obj, '/f/g/h/foo')
34+
assert(Array.isArray(arr), 'set /- creates an array.')
35+
assert.equal(arr[0], 'test')
3636

37-
assert.equal(jsonpointer.get(obj, "/a"), 2);
38-
assert.equal(jsonpointer.get(obj, "/b/c"), 3);
39-
assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 4);
40-
assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 5);
41-
assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 6);
37+
assert.equal(jsonpointer.get(obj, '/a'), 2)
38+
assert.equal(jsonpointer.get(obj, '/b/c'), 3)
39+
assert.equal(jsonpointer.get(obj, '/d/e/0/a'), 4)
40+
assert.equal(jsonpointer.get(obj, '/d/e/1/b'), 5)
41+
assert.equal(jsonpointer.get(obj, '/d/e/2/c'), 6)
4242

43-
assert.equal(jsonpointer.get(obj, ""), obj);
44-
assert.throws(function(){ jsonpointer.get(obj, "a"); }, validateError);
45-
assert.throws(function(){ jsonpointer.get(obj, "a/"); }, validateError);
43+
assert.equal(jsonpointer.get(obj, ''), obj)
44+
assert.throws(function () { jsonpointer.get(obj, 'a') }, validateError)
45+
assert.throws(function () { jsonpointer.get(obj, 'a/') }, validateError)
4646

47-
function validateError(err) {
48-
if ( (err instanceof Error) && /Invalid JSON pointer/.test(err.message) ) {
49-
return true;
47+
function validateError (err) {
48+
if ((err instanceof Error) && /Invalid JSON pointer/.test(err.message)) {
49+
return true
5050
}
5151
}
5252

5353
var complexKeys = {
54-
"a/b": {
54+
'a/b': {
5555
c: 1
5656
},
5757
d: {
58-
"e/f": 2
58+
'e/f': 2
5959
},
60-
"~1": 3,
61-
"01": 4
60+
'~1': 3,
61+
'01': 4
6262
}
6363

64-
assert.equal(jsonpointer.get(complexKeys, "/a~1b/c"), 1);
65-
assert.equal(jsonpointer.get(complexKeys, "/d/e~1f"), 2);
66-
assert.equal(jsonpointer.get(complexKeys, "/~01"), 3);
67-
assert.equal(jsonpointer.get(complexKeys, "/01"), 4);
68-
assert.equal(jsonpointer.get(complexKeys, "/a/b/c"), null);
69-
assert.equal(jsonpointer.get(complexKeys, "/~1"), null);
64+
assert.equal(jsonpointer.get(complexKeys, '/a~1b/c'), 1)
65+
assert.equal(jsonpointer.get(complexKeys, '/d/e~1f'), 2)
66+
assert.equal(jsonpointer.get(complexKeys, '/~01'), 3)
67+
assert.equal(jsonpointer.get(complexKeys, '/01'), 4)
68+
assert.equal(jsonpointer.get(complexKeys, '/a/b/c'), null)
69+
assert.equal(jsonpointer.get(complexKeys, '/~1'), null)
7070

7171
// draft-ietf-appsawg-json-pointer-08 has special array rules
72-
var ary = [ "zero", "one", "two" ];
73-
assert.equal(jsonpointer.get(ary, "/01"), null);
72+
var ary = [ 'zero', 'one', 'two' ]
73+
assert.equal(jsonpointer.get(ary, '/01'), null)
7474

75-
assert.equal(jsonpointer.set(ary, "/-", "three"), null);
76-
assert.equal(ary[3], "three");
75+
assert.equal(jsonpointer.set(ary, '/-', 'three'), null)
76+
assert.equal(ary[3], 'three')
7777

7878
// Examples from the draft:
7979
var example = {
80-
"foo": ["bar", "baz"],
81-
"": 0,
82-
"a/b": 1,
83-
"c%d": 2,
84-
"e^f": 3,
85-
"g|h": 4,
86-
"i\\j": 5,
87-
"k\"l": 6,
88-
" ": 7,
89-
"m~n": 8
90-
};
80+
'foo': ['bar', 'baz'],
81+
'': 0,
82+
'a/b': 1,
83+
'c%d': 2,
84+
'e^f': 3,
85+
'g|h': 4,
86+
'i\\j': 5,
87+
'k\'l': 6,
88+
' ': 7,
89+
'm~n': 8
90+
}
9191

92-
assert.equal(jsonpointer.get(example, ""), example);
93-
var ans = jsonpointer.get(example, "/foo");
94-
assert.equal(ans.length, 2);
95-
assert.equal(ans[0], "bar");
96-
assert.equal(ans[1], "baz");
97-
assert.equal(jsonpointer.get(example, "/foo/0"), "bar");
98-
assert.equal(jsonpointer.get(example, "/"), 0);
99-
assert.equal(jsonpointer.get(example, "/a~1b"), 1);
100-
assert.equal(jsonpointer.get(example, "/c%d"), 2);
101-
assert.equal(jsonpointer.get(example, "/e^f"), 3);
102-
assert.equal(jsonpointer.get(example, "/g|h"), 4);
103-
assert.equal(jsonpointer.get(example, "/i\\j"), 5);
104-
assert.equal(jsonpointer.get(example, "/k\"l"), 6);
105-
assert.equal(jsonpointer.get(example, "/ "), 7);
106-
assert.equal(jsonpointer.get(example, "/m~0n"), 8);
92+
assert.equal(jsonpointer.get(example, ''), example)
93+
var ans = jsonpointer.get(example, '/foo')
94+
assert.equal(ans.length, 2)
95+
assert.equal(ans[0], 'bar')
96+
assert.equal(ans[1], 'baz')
97+
assert.equal(jsonpointer.get(example, '/foo/0'), 'bar')
98+
assert.equal(jsonpointer.get(example, '/'), 0)
99+
assert.equal(jsonpointer.get(example, '/a~1b'), 1)
100+
assert.equal(jsonpointer.get(example, '/c%d'), 2)
101+
assert.equal(jsonpointer.get(example, '/e^f'), 3)
102+
assert.equal(jsonpointer.get(example, '/g|h'), 4)
103+
assert.equal(jsonpointer.get(example, '/i\\j'), 5)
104+
assert.equal(jsonpointer.get(example, '/k\'l'), 6)
105+
assert.equal(jsonpointer.get(example, '/ '), 7)
106+
assert.equal(jsonpointer.get(example, '/m~0n'), 8)
107107

108-
console.log("All tests pass.");
108+
console.log('All tests pass.')

0 commit comments

Comments
 (0)