1+ 'use strict' ;
12
2- var assert = require ( 'assert' ) ,
3- Stream = require ( 'stream' ) ,
4- inherits = require ( 'util' ) . inherits ;
3+ const assert = require ( 'assert' ) ;
4+ const Stream = require ( 'stream' ) ;
5+ const inherits = require ( 'util' ) . inherits ;
56
67
78/*
89 * This filter consumes a stream of characters and emits one string per line.
910 */
1011function LineSplitter ( ) {
11- var self = this ,
12- buffer = "" ;
12+ const self = this ;
13+ var buffer = '' ;
1314
1415 Stream . call ( this ) ;
1516 this . writable = true ;
@@ -38,33 +39,31 @@ inherits(LineSplitter, Stream);
3839 * This filter consumes lines and emits paragraph objects.
3940 */
4041function ParagraphParser ( ) {
41- var self = this ,
42- block_is_license_block = false ,
43- block_has_c_style_comment ,
44- is_first_line_in_paragraph ,
45- paragraph_line_indent ,
46- paragraph ;
47-
48- Stream . call ( this ) ;
49- this . writable = true ;
50-
51- resetBlock ( false ) ;
52-
53- this . write = function ( data ) {
54- parseLine ( data + '' ) ;
55- return true ;
56- } ;
57-
58- this . end = function ( data ) {
59- if ( data ) {
60- parseLine ( data + '' ) ;
61- }
62- flushParagraph ( ) ;
63- self . emit ( 'end' ) ;
64- } ;
42+ const self = this ;
43+ var block_is_license_block = false ;
44+ var block_has_c_style_comment ;
45+ var paragraph_line_indent ;
46+ var paragraph ;
47+
48+ Stream . call ( this ) ;
49+ this . writable = true ;
50+
51+ resetBlock ( false ) ;
52+
53+ this . write = function ( data ) {
54+ parseLine ( data + '' ) ;
55+ return true ;
56+ } ;
57+
58+ this . end = function ( data ) {
59+ if ( data ) {
60+ parseLine ( data + '' ) ;
61+ }
62+ flushParagraph ( ) ;
63+ self . emit ( 'end' ) ;
64+ } ;
6565
6666 function resetParagraph ( ) {
67- is_first_line_in_paragraph = true ;
6867 paragraph_line_indent = - 1 ;
6968
7069 paragraph = {
@@ -165,8 +164,6 @@ function ParagraphParser() {
165164
166165 if ( line )
167166 paragraph . lines . push ( line ) ;
168-
169- is_first_line_in_paragraph = false ;
170167 }
171168}
172169inherits ( ParagraphParser , Stream ) ;
@@ -184,16 +181,16 @@ function Unwrapper() {
184181 this . writable = true ;
185182
186183 this . write = function ( paragraph ) {
187- var lines = paragraph . lines ,
188- break_after = [ ] ,
189- i ;
184+ var lines = paragraph . lines ;
185+ var break_after = [ ] ;
186+ var i ;
190187
191188 for ( i = 0 ; i < lines . length - 1 ; i ++ ) {
192189 var line = lines [ i ] ;
193190
194191 // When a line is really short, the line was probably kept separate for a
195192 // reason.
196- if ( line . length < 50 ) {
193+ if ( line . length < 50 ) {
197194 // If the first word on the next line really didn't fit after the line,
198195 // it probably was just ordinary wrapping after all.
199196 var next_first_word_length = lines [ i + 1 ] . replace ( / \s .* $ / , '' ) . length ;
@@ -203,7 +200,7 @@ function Unwrapper() {
203200 }
204201 }
205202
206- for ( i = 0 ; i < lines . length - 1 ; ) {
203+ for ( i = 0 ; i < lines . length - 1 ; ) {
207204 if ( ! break_after [ i ] ) {
208205 lines [ i ] += ' ' + lines . splice ( i + 1 , 1 ) [ 0 ] ;
209206 } else {
@@ -233,8 +230,8 @@ inherits(Unwrapper, Stream);
233230 * This filter generates an rtf document from a stream of paragraph objects.
234231 */
235232function RtfGenerator ( ) {
236- var self = this ,
237- did_write_anything = false ;
233+ const self = this ;
234+ var did_write_anything = false ;
238235
239236 Stream . call ( this ) ;
240237 this . writable = true ;
@@ -245,11 +242,11 @@ function RtfGenerator() {
245242 did_write_anything = true ;
246243 }
247244
248- var li = paragraph . li ,
249- level = paragraph . level + ( li ? 1 : 0 ) ,
250- lic = paragraph . in_license_block ;
245+ var li = paragraph . li ;
246+ var level = paragraph . level + ( li ? 1 : 0 ) ;
247+ var lic = paragraph . in_license_block ;
251248
252- var rtf = " \\pard" ;
249+ var rtf = ' \\pard' ;
253250 rtf += '\\sa150\\sl300\\slmult1' ;
254251 if ( level > 0 )
255252 rtf += '\\li' + ( level * 240 ) ;
@@ -290,18 +287,19 @@ function RtfGenerator() {
290287 function rtfEscape ( string ) {
291288 return string
292289 . replace ( / [ \\ \{ \} ] / g, function ( m ) {
293- return '\\' + m ;
290+ return '\\' + m ;
294291 } )
295292 . replace ( / \t / g, function ( ) {
296293 return '\\tab ' ;
297294 } )
295+ // eslint-disable-next-line no-control-regex
298296 . replace ( / [ \x00 - \x1f \x7f - \xff ] / g, function ( m ) {
299297 return '\\\'' + toHex ( m . charCodeAt ( 0 ) , 2 ) ;
300298 } )
301299 . replace ( / \ufeff / g, '' )
302300 . replace ( / [ \u0100 - \uffff ] / g, function ( m ) {
303301 return '\\u' + toHex ( m . charCodeAt ( 0 ) , 4 ) + '?' ;
304- } ) ;
302+ } ) ;
305303 }
306304
307305 function emitHeader ( ) {
@@ -317,12 +315,12 @@ function RtfGenerator() {
317315inherits ( RtfGenerator , Stream ) ;
318316
319317
320- var stdin = process . stdin ,
321- stdout = process . stdout ,
322- line_splitter = new LineSplitter ( ) ,
323- paragraph_parser = new ParagraphParser ( ) ,
324- unwrapper = new Unwrapper ( ) ,
325- rtf_generator = new RtfGenerator ( ) ;
318+ const stdin = process . stdin ;
319+ const stdout = process . stdout ;
320+ const line_splitter = new LineSplitter ( ) ;
321+ const paragraph_parser = new ParagraphParser ( ) ;
322+ const unwrapper = new Unwrapper ( ) ;
323+ const rtf_generator = new RtfGenerator ( ) ;
326324
327325stdin . setEncoding ( 'utf-8' ) ;
328326stdin . resume ( ) ;
0 commit comments