Skip to content

Commit 442f6dc

Browse files
committed
Move to objects in jsonify()
1 parent d3d762e commit 442f6dc

5 files changed

Lines changed: 48 additions & 57 deletions

File tree

each-test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
let { readFileSync, readdirSync } = require('fs')
2-
let { join, extname, basename } = require('path')
1+
let { readdirSync, readFileSync } = require('fs')
2+
let { basename, extname, join } = require('path')
33

44
let extra = require('./extra-cases')
55

@@ -10,7 +10,7 @@ function read(file) {
1010
module.exports = function eachTest(callback) {
1111
readdirSync(join(__dirname, 'cases')).forEach(i => {
1212
if (extname(i) !== '.json') return
13-
let json = read(i).toString().trim()
13+
let json = JSON.parse(read(i).toString().trim())
1414
let name = basename(i, '.json')
1515
let css = extra[name]
1616
if (!css) {

index.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
export function jsonify (node: object): string
1+
export function jsonify(node: object): object
22

3-
export function testPath (name: string): string
3+
export function testPath(name: string): string
44

5-
export function eachTest (
6-
callback: (name: string, css: string, json: string) => void
5+
export function eachTest(
6+
callback: (name: string, css: string, json: object) => void
77
): void
88

9-
export function testOnReal (
9+
export function testOnReal(
1010
callback: (css: string) => { css: string },
1111
extra: string[]
1212
): void

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ let eachTest = require('./each-test')
33
let testPath = require('./test-path')
44
let jsonify = require('./jsonify')
55

6-
module.exports = { jsonify, testPath, eachTest, testOnReal }
6+
module.exports = { eachTest, jsonify, testOnReal, testPath }

jsonify.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ function clean(node) {
1515

1616
module.exports = function jsonify(node) {
1717
let cleaned = clean(node.toJSON())
18-
return JSON.stringify(cleaned, null, 2)
18+
return JSON.parse(JSON.stringify(cleaned, null, 2))
1919
}

test/jsonify.test.js

Lines changed: 38 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ let jsonify = require('../jsonify')
66

77
test('converts to JSON string', () => {
88
let node = postcss.rule()
9-
equal(
10-
jsonify(node),
11-
'{\n' + ' "raws": {},\n' + ' "type": "rule",\n' + ' "nodes": []\n' + '}'
12-
)
9+
equal(jsonify(node), { nodes: [], raws: {}, type: 'rule' })
1310
})
1411

1512
test('converts source.input', () => {
@@ -19,62 +16,56 @@ test('converts source.input', () => {
1916
}
2017
})
2118
node.each(() => {})
22-
equal(
23-
jsonify(node),
24-
'{\n' +
25-
' "raws": {},\n' +
26-
' "source": {},\n' +
27-
' "type": "rule",\n' +
28-
' "nodes": []\n' +
29-
'}'
30-
)
19+
equal(jsonify(node), {
20+
nodes: [],
21+
raws: {},
22+
source: {},
23+
type: 'rule'
24+
})
3125
})
3226

3327
test('converts source.input recursively', () => {
3428
let rule = postcss.rule({
3529
source: {
36-
start: {
37-
offset: 0,
38-
line: 1,
39-
column: 1
40-
},
4130
end: {
42-
offset: 14,
31+
column: 15,
4332
line: 1,
44-
column: 15
33+
offset: 14
4534
},
46-
input: new postcss.Input('test', { from: '/a.css' })
35+
input: new postcss.Input('test', { from: '/a.css' }),
36+
start: {
37+
column: 1,
38+
line: 1,
39+
offset: 0
40+
}
4741
}
4842
})
4943
let root = postcss.root()
5044
root.append(rule)
5145

52-
equal(
53-
jsonify(root),
54-
'{\n' +
55-
' "raws": {},\n' +
56-
' "type": "root",\n' +
57-
' "nodes": [\n' +
58-
' {\n' +
59-
' "raws": {},\n' +
60-
' "source": {\n' +
61-
' "start": {\n' +
62-
' "offset": 0,\n' +
63-
' "line": 1,\n' +
64-
' "column": 1\n' +
65-
' },\n' +
66-
' "end": {\n' +
67-
' "offset": 14,\n' +
68-
' "line": 1,\n' +
69-
' "column": 15\n' +
70-
' }\n' +
71-
' },\n' +
72-
' "type": "rule",\n' +
73-
' "nodes": []\n' +
74-
' }\n' +
75-
' ]\n' +
76-
'}'
77-
)
46+
equal(jsonify(root), {
47+
nodes: [
48+
{
49+
nodes: [],
50+
raws: {},
51+
source: {
52+
end: {
53+
column: 15,
54+
line: 1,
55+
offset: 14
56+
},
57+
start: {
58+
column: 1,
59+
line: 1,
60+
offset: 0
61+
}
62+
},
63+
type: 'rule'
64+
}
65+
],
66+
raws: {},
67+
type: 'root'
68+
})
7869
})
7970

8071
test.run()

0 commit comments

Comments
 (0)