From 5b8cde2fbda0e59f6cbdebe74e03207e50f42ef1 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 Sep 2021 21:26:02 +0200 Subject: [PATCH] Update generated content Signed-off-by: CrazyMax --- dist/index.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index df8a07a..391f177 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2533,6 +2533,7 @@ class Parser extends Transform { } } this.info = { + bytes: 0, comment_lines: 0, empty_lines: 0, invalid_field_length: 0, @@ -2542,6 +2543,7 @@ class Parser extends Transform { this.options = options this.state = { bomSkipped: false, + bufBytesStart: 0, castField: fnCastField, commenting: false, // Current error encountered by a record @@ -2628,7 +2630,9 @@ class Parser extends Transform { for(let encoding in boms){ if(boms[encoding].compare(buf, 0, boms[encoding].length) === 0){ // Skip BOM - buf = buf.slice(boms[encoding].length) + let bomLength = boms[encoding].length + this.state.bufBytesStart += bomLength + buf = buf.slice(bomLength) // Renormalize original options with the new encoding this.__normalizeOptions({...this.__originalOptions, encoding: encoding}) break @@ -2768,8 +2772,10 @@ class Parser extends Transform { pos += recordDelimiterLength - 1 continue } + this.info.bytes = this.state.bufBytesStart + pos; const errField = this.__onField() if(errField !== undefined) return errField + this.info.bytes = this.state.bufBytesStart + pos + recordDelimiterLength; const errRecord = this.__onRecord() if(errRecord !== undefined) return errRecord if(to !== -1 && this.info.records >= to){ @@ -2792,6 +2798,7 @@ class Parser extends Transform { } let delimiterLength = this.__isDelimiter(buf, pos, chr) if(delimiterLength !== 0){ + this.info.bytes = this.state.bufBytesStart + pos; const errField = this.__onField() if(errField !== undefined) return errField pos += delimiterLength - 1 @@ -2841,6 +2848,7 @@ class Parser extends Transform { }else{ // Skip last line if it has no characters if(this.state.wasQuoting === true || this.state.record.length !== 0 || this.state.field.length !== 0){ + this.info.bytes = this.state.bufBytesStart + pos; const errField = this.__onField() if(errField !== undefined) return errField const errRecord = this.__onRecord() @@ -2852,6 +2860,7 @@ class Parser extends Transform { } } }else{ + this.state.bufBytesStart += pos this.state.previousBuf = buf.slice(pos) } if(this.state.wasRowDelimiter === true){ @@ -3266,7 +3275,7 @@ const parse = function(){ throw new CsvError('CSV_INVALID_ARGUMENT', [ 'Invalid argument:', `got ${JSON.stringify(argument)} at index ${i}` - ], this.options) + ], options || {}) } } const parser = new Parser(options)