Comparing version 1.6.1 to 1.6.2
@@ -222,2 +222,60 @@ 'use strict'; | ||
}); | ||
it('diag indenting', async () => { | ||
const {stdout, stderr} = await execBin('json2diag', '{"a":[],"b":{},"c":{"a":1,"b":{"a":{"a":{}}}},"d":{"a":{"a":{"a":1},"b":2,"c":[]}},"e":[[[[{"a":{}}]]]],"f":1}'); | ||
assert.strictEqual(stderr, ''); | ||
assert.strictEqual(stdout, `a6 # map(6) | ||
61 # string(1) | ||
61 # "a" | ||
80 # array(0) | ||
61 # string(1) | ||
62 # "b" | ||
a0 # map(0) | ||
61 # string(1) | ||
63 # "c" | ||
a2 # map(2) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
64 # "d" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a3 # map(3) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
02 # uint(2) | ||
61 # string(1) | ||
63 # "c" | ||
80 # array(0) | ||
61 # string(1) | ||
65 # "e" | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
66 # "f" | ||
01 # uint(1) | ||
`); | ||
}); | ||
}); |
@@ -52,13 +52,12 @@ 'use strict'; | ||
} | ||
if (indent.length) { | ||
indent[indent.length - 1]--; | ||
} | ||
if (!token.type.terminal) { | ||
switch (token.type.name) { | ||
case 'map': | ||
if (token.value) { | ||
indent.push(token.value * 2); | ||
} | ||
indent.push(token.value * 2); | ||
break; | ||
case 'array': | ||
if (token.value) { | ||
indent.push(token.value); | ||
} | ||
indent.push(token.value); | ||
break; | ||
@@ -71,10 +70,6 @@ case 'tag': | ||
} | ||
} else { | ||
if (indent.length) { | ||
indent[indent.length - 1]--; | ||
if (indent[indent.length - 1] === 0) { | ||
indent.pop(); | ||
} | ||
} | ||
} | ||
while (indent.length && indent[indent.length - 1] <= 0) { | ||
indent.pop(); | ||
} | ||
pos += token.encodedLength; | ||
@@ -81,0 +76,0 @@ } |
@@ -222,2 +222,60 @@ 'use strict'; | ||
}); | ||
it('diag indenting', async () => { | ||
const {stdout, stderr} = await execBin('json2diag', '{"a":[],"b":{},"c":{"a":1,"b":{"a":{"a":{}}}},"d":{"a":{"a":{"a":1},"b":2,"c":[]}},"e":[[[[{"a":{}}]]]],"f":1}'); | ||
assert.strictEqual(stderr, ''); | ||
assert.strictEqual(stdout, `a6 # map(6) | ||
61 # string(1) | ||
61 # "a" | ||
80 # array(0) | ||
61 # string(1) | ||
62 # "b" | ||
a0 # map(0) | ||
61 # string(1) | ||
63 # "c" | ||
a2 # map(2) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
64 # "d" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a3 # map(3) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
02 # uint(2) | ||
61 # string(1) | ||
63 # "c" | ||
80 # array(0) | ||
61 # string(1) | ||
65 # "e" | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
66 # "f" | ||
01 # uint(1) | ||
`); | ||
}); | ||
}); |
@@ -213,2 +213,60 @@ import chai from 'chai'; | ||
}); | ||
it('diag indenting', async () => { | ||
const {stdout, stderr} = await execBin('json2diag', '{"a":[],"b":{},"c":{"a":1,"b":{"a":{"a":{}}}},"d":{"a":{"a":{"a":1},"b":2,"c":[]}},"e":[[[[{"a":{}}]]]],"f":1}'); | ||
assert.strictEqual(stderr, ''); | ||
assert.strictEqual(stdout, `a6 # map(6) | ||
61 # string(1) | ||
61 # "a" | ||
80 # array(0) | ||
61 # string(1) | ||
62 # "b" | ||
a0 # map(0) | ||
61 # string(1) | ||
63 # "c" | ||
a2 # map(2) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
64 # "d" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a3 # map(3) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
02 # uint(2) | ||
61 # string(1) | ||
63 # "c" | ||
80 # array(0) | ||
61 # string(1) | ||
65 # "e" | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
66 # "f" | ||
01 # uint(1) | ||
`); | ||
}); | ||
}); |
@@ -47,13 +47,12 @@ import { Tokeniser } from './decode.js'; | ||
} | ||
if (indent.length) { | ||
indent[indent.length - 1]--; | ||
} | ||
if (!token.type.terminal) { | ||
switch (token.type.name) { | ||
case 'map': | ||
if (token.value) { | ||
indent.push(token.value * 2); | ||
} | ||
indent.push(token.value * 2); | ||
break; | ||
case 'array': | ||
if (token.value) { | ||
indent.push(token.value); | ||
} | ||
indent.push(token.value); | ||
break; | ||
@@ -66,10 +65,6 @@ case 'tag': | ||
} | ||
} else { | ||
if (indent.length) { | ||
indent[indent.length - 1]--; | ||
if (indent[indent.length - 1] === 0) { | ||
indent.pop(); | ||
} | ||
} | ||
} | ||
while (indent.length && indent[indent.length - 1] <= 0) { | ||
indent.pop(); | ||
} | ||
pos += token.encodedLength; | ||
@@ -76,0 +71,0 @@ } |
@@ -213,2 +213,60 @@ import chai from 'chai'; | ||
}); | ||
it('diag indenting', async () => { | ||
const {stdout, stderr} = await execBin('json2diag', '{"a":[],"b":{},"c":{"a":1,"b":{"a":{"a":{}}}},"d":{"a":{"a":{"a":1},"b":2,"c":[]}},"e":[[[[{"a":{}}]]]],"f":1}'); | ||
assert.strictEqual(stderr, ''); | ||
assert.strictEqual(stdout, `a6 # map(6) | ||
61 # string(1) | ||
61 # "a" | ||
80 # array(0) | ||
61 # string(1) | ||
62 # "b" | ||
a0 # map(0) | ||
61 # string(1) | ||
63 # "c" | ||
a2 # map(2) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
64 # "d" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a3 # map(3) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
02 # uint(2) | ||
61 # string(1) | ||
63 # "c" | ||
80 # array(0) | ||
61 # string(1) | ||
65 # "e" | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
66 # "f" | ||
01 # uint(1) | ||
`); | ||
}); | ||
}); |
@@ -70,13 +70,12 @@ import { Tokeniser } from './decode.js' | ||
if (indent.length) { | ||
indent[indent.length - 1]-- | ||
} | ||
if (!token.type.terminal) { | ||
switch (token.type.name) { | ||
case 'map': | ||
if (token.value) { | ||
indent.push(token.value * 2) | ||
} | ||
indent.push(token.value * 2) | ||
break | ||
case 'array': | ||
if (token.value) { | ||
indent.push(token.value) | ||
} | ||
indent.push(token.value) | ||
break | ||
@@ -91,10 +90,6 @@ // TODO: test tags .. somehow | ||
} | ||
} else { | ||
if (indent.length) { | ||
indent[indent.length - 1]-- | ||
if (indent[indent.length - 1] === 0) { | ||
indent.pop() | ||
} | ||
} | ||
} | ||
while (indent.length && indent[indent.length - 1] <= 0) { | ||
indent.pop() | ||
} | ||
// @ts-ignore it should be set on a decode operation | ||
@@ -101,0 +96,0 @@ pos += token.encodedLength |
{ | ||
"name": "cborg", | ||
"version": "1.6.1", | ||
"version": "1.6.2", | ||
"description": "Fast CBOR with a focus on strictness", | ||
@@ -5,0 +5,0 @@ "main": "./cjs/cborg.js", |
@@ -253,2 +253,63 @@ /* eslint-env mocha */ | ||
}) | ||
// complicated nesting to test indenting algorithm | ||
it('diag indenting', async () => { | ||
const { stdout, stderr } = await execBin('json2diag', '{"a":[],"b":{},"c":{"a":1,"b":{"a":{"a":{}}}},"d":{"a":{"a":{"a":1},"b":2,"c":[]}},"e":[[[[{"a":{}}]]]],"f":1}') | ||
assert.strictEqual(stderr, '') | ||
assert.strictEqual(stdout, | ||
`a6 # map(6) | ||
61 # string(1) | ||
61 # "a" | ||
80 # array(0) | ||
61 # string(1) | ||
62 # "b" | ||
a0 # map(0) | ||
61 # string(1) | ||
63 # "c" | ||
a2 # map(2) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
64 # "d" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a3 # map(3) | ||
61 # string(1) | ||
61 # "a" | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
01 # uint(1) | ||
61 # string(1) | ||
62 # "b" | ||
02 # uint(2) | ||
61 # string(1) | ||
63 # "c" | ||
80 # array(0) | ||
61 # string(1) | ||
65 # "e" | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
81 # array(1) | ||
a1 # map(1) | ||
61 # string(1) | ||
61 # "a" | ||
a0 # map(0) | ||
61 # string(1) | ||
66 # "f" | ||
01 # uint(1) | ||
`) | ||
}) | ||
}) |
Sorry, the diff of this file is not supported yet
810196
25407