Skip to content

Commit 9400fd2

Browse files
committed
bench [f]
1 parent 75707a9 commit 9400fd2

File tree

1 file changed

+24
-32
lines changed

1 file changed

+24
-32
lines changed

benchmark/as-md.js

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,31 @@
11
#!/usr/bin/env node
22

3-
const {pipeline, Transform} = require('stream')
4-
const csvParser = require('csv-parser')
5-
const {ok} = require('assert')
3+
const {createInterface} = require('node:readline')
64

7-
let firstRow = true
5+
const linewise = createInterface({
6+
input: process.stdin,
7+
// Note: We use the crlfDelay option to recognize all instances of CR LF as a single line break.
8+
crlfDelay: Infinity,
9+
})
810

9-
pipeline(
10-
process.stdin,
11-
csvParser(),
12-
new Transform({
13-
objectMode: true,
14-
transform: function (row, _, cb) {
15-
if (firstRow) {
16-
firstRow = false
11+
;(async () => {
12+
let firstRow = true
13+
for await (const line of linewise) {
14+
const row = JSON.parse(line)
1715

18-
const keys = Object.keys(row).filter(key => key !== 'filename')
19-
process.stdout.write(`| ${keys.join(' | ')} |\n`)
20-
process.stdout.write(`| ${keys.map(_ => '-').join(' | ')} |\n`)
21-
}
16+
if (firstRow) {
17+
firstRow = false
2218

23-
const formattedVals = Object.entries(row)
24-
.map(([key, val]) => {
25-
if (key === 'query') return '<pre>' + val.replace(/\n/g, '<br>') + '</pre>'
26-
return val
27-
})
28-
process.stdout.write(`| ${formattedVals.join(' | ')} |\n`)
19+
const keys = Object.keys(row).filter(key => key !== 'filename')
20+
process.stdout.write(`| ${keys.join(' | ')} |\n`)
21+
process.stdout.write(`| ${keys.map(_ => '-').join(' | ')} |\n`)
22+
}
2923

30-
cb()
31-
},
32-
}),
33-
process.stdout,
34-
(err) => {
35-
if (!err) return;
36-
console.error(err)
37-
process.exit(1)
38-
},
39-
)
24+
const formattedVals = Object.entries(row)
25+
.map(([key, val]) => {
26+
if (key === 'query') return '<pre>' + val.replace(/\n/g, '<br>') + '</pre>'
27+
return typeof val === 'number' && !Number.isInteger(val) ? Math.round(val * 100) / 100 : val
28+
})
29+
process.stdout.write(`| ${formattedVals.join(' | ')} |\n`)
30+
}
31+
})()

0 commit comments

Comments
 (0)