File tree Expand file tree Collapse file tree 1 file changed +24
-32
lines changed Expand file tree Collapse file tree 1 file changed +24
-32
lines changed Original file line number Diff line number Diff line change 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+ } ) ( )
You can’t perform that action at this time.
0 commit comments