csv-parse
Advanced tools
Comparing version 4.13.1 to 4.14.0
@@ -15,3 +15,13 @@ | ||
* encoding: new encoding_input and encoding_output options (medium) | ||
* context: isolate info properties at context root (easy) | ||
* context: merge record, raw, context, info, error into a single object (medium) | ||
* relax_column_count: rename INCONSISTENT_RECORD_LENGTH to RECORD_INCONSISTENT_FIELDS_LENGTH (easy) | ||
* relax_column_count: rename RECORD_DONT_MATCH_COLUMNS_LENGTH to RECORD_INCONSISTENT_COLUMNS (easy) | ||
## Version 4.14.0 | ||
* on_record: expose info.error when relax_column_count is activated | ||
* raw: move tests | ||
* package: latest dependencies | ||
## Version 4.13.1 | ||
@@ -18,0 +28,0 @@ |
@@ -34,2 +34,3 @@ // Original definitions in https://github.com/DefinitelyTyped/DefinitelyTyped by: David Muller <https://github.com/davidm77> | ||
readonly empty_lines: number; | ||
readonly error: CsvError; | ||
readonly header: boolean; | ||
@@ -36,0 +37,0 @@ readonly index: number; |
@@ -484,2 +484,4 @@ "use strict"; | ||
commenting: false, | ||
// Current error encountered by a record | ||
error: undefined, | ||
enabled: options.from_line === 1, | ||
@@ -898,19 +900,18 @@ escaping: false, | ||
if (recordLength !== this.state.expectedRecordLength) { | ||
var err = columns === false ? this.__error( // Todo: rename CSV_INCONSISTENT_RECORD_LENGTH to | ||
// CSV_RECORD_INCONSISTENT_FIELDS_LENGTH | ||
new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', ['Invalid Record Length:', "expect ".concat(this.state.expectedRecordLength, ","), "got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), { | ||
record: record | ||
})) : this.__error( // Todo: rename CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH to | ||
// CSV_RECORD_INCONSISTENT_COLUMNS | ||
new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', ['Invalid Record Length:', "columns length is ".concat(columns.length, ","), // rename columns | ||
"got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), { | ||
record: record | ||
})); | ||
if (relax_column_count === true || relax_column_count_less === true && recordLength < this.state.expectedRecordLength || relax_column_count_more === true && recordLength > this.state.expectedRecordLength) { | ||
this.info.invalid_field_length++; | ||
} else { | ||
if (columns === false) { | ||
var err = this.__error(new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', ['Invalid Record Length:', "expect ".concat(this.state.expectedRecordLength, ","), "got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), { | ||
record: record | ||
})); | ||
if (err !== undefined) return err; | ||
} else { | ||
var _err5 = this.__error(new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', ['Invalid Record Length:', "columns length is ".concat(columns.length, ","), // rename columns | ||
"got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), { | ||
record: record | ||
})); | ||
if (_err5 !== undefined) return _err5; | ||
} | ||
this.state.error = err; // Error is undefined with skip_lines_with_error | ||
} else if (err !== undefined) { | ||
return err; | ||
} | ||
@@ -958,3 +959,3 @@ } | ||
if (raw === true || info === true) { | ||
var _err6 = this.__push(Object.assign({ | ||
var _err5 = this.__push(Object.assign({ | ||
record: obj | ||
@@ -967,10 +968,10 @@ }, raw === true ? { | ||
if (_err6) { | ||
return _err6; | ||
if (_err5) { | ||
return _err5; | ||
} | ||
} else { | ||
var _err7 = this.__push(obj); | ||
var _err6 = this.__push(obj); | ||
if (_err7) { | ||
return _err7; | ||
if (_err6) { | ||
return _err6; | ||
} | ||
@@ -980,3 +981,3 @@ } | ||
if (raw === true || info === true) { | ||
var _err8 = this.__push(Object.assign({ | ||
var _err7 = this.__push(Object.assign({ | ||
record: [obj[objname], obj] | ||
@@ -989,10 +990,10 @@ }, raw === true ? { | ||
if (_err8) { | ||
return _err8; | ||
if (_err7) { | ||
return _err7; | ||
} | ||
} else { | ||
var _err9 = this.__push([obj[objname], obj]); | ||
var _err8 = this.__push([obj[objname], obj]); | ||
if (_err9) { | ||
return _err9; | ||
if (_err8) { | ||
return _err8; | ||
} | ||
@@ -1003,3 +1004,3 @@ } | ||
if (raw === true || info === true) { | ||
var _err10 = this.__push(Object.assign({ | ||
var _err9 = this.__push(Object.assign({ | ||
record: record | ||
@@ -1012,10 +1013,10 @@ }, raw === true ? { | ||
if (_err10) { | ||
return _err10; | ||
if (_err9) { | ||
return _err9; | ||
} | ||
} else { | ||
var _err11 = this.__push(record); | ||
var _err10 = this.__push(record); | ||
if (_err11) { | ||
return _err11; | ||
if (_err10) { | ||
return _err10; | ||
} | ||
@@ -1060,2 +1061,3 @@ } | ||
this.state.error = undefined; | ||
this.state.record = []; | ||
@@ -1328,2 +1330,3 @@ this.state.record_length = 0; | ||
empty_lines: this.info.empty_lines, | ||
error: this.state.error, | ||
header: columns === true, | ||
@@ -1330,0 +1333,0 @@ index: this.state.record.length, |
@@ -34,2 +34,3 @@ // Original definitions in https://github.com/DefinitelyTyped/DefinitelyTyped by: David Muller <https://github.com/davidm77> | ||
readonly empty_lines: number; | ||
readonly error: CsvError; | ||
readonly header: boolean; | ||
@@ -36,0 +37,0 @@ readonly index: number; |
@@ -406,2 +406,4 @@ | ||
commenting: false, | ||
// Current error encountered by a record | ||
error: undefined, | ||
enabled: options.from_line === 1, | ||
@@ -748,2 +750,26 @@ escaping: false, | ||
if(recordLength !== this.state.expectedRecordLength){ | ||
const err = columns === false ? | ||
this.__error( | ||
// Todo: rename CSV_INCONSISTENT_RECORD_LENGTH to | ||
// CSV_RECORD_INCONSISTENT_FIELDS_LENGTH | ||
new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', [ | ||
'Invalid Record Length:', | ||
`expect ${this.state.expectedRecordLength},`, | ||
`got ${recordLength} on line ${this.info.lines}`, | ||
], this.options, this.__context(), { | ||
record: record, | ||
}) | ||
) | ||
: | ||
this.__error( | ||
// Todo: rename CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH to | ||
// CSV_RECORD_INCONSISTENT_COLUMNS | ||
new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', [ | ||
'Invalid Record Length:', | ||
`columns length is ${columns.length},`, // rename columns | ||
`got ${recordLength} on line ${this.info.lines}`, | ||
], this.options, this.__context(), { | ||
record: record, | ||
}) | ||
) | ||
if(relax_column_count === true || | ||
@@ -753,26 +779,6 @@ (relax_column_count_less === true && recordLength < this.state.expectedRecordLength) || | ||
this.info.invalid_field_length++ | ||
}else{ | ||
if(columns === false){ | ||
const err = this.__error( | ||
new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', [ | ||
'Invalid Record Length:', | ||
`expect ${this.state.expectedRecordLength},`, | ||
`got ${recordLength} on line ${this.info.lines}`, | ||
], this.options, this.__context(), { | ||
record: record, | ||
}) | ||
) | ||
if(err !== undefined) return err | ||
}else{ | ||
const err = this.__error( | ||
new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', [ | ||
'Invalid Record Length:', | ||
`columns length is ${columns.length},`, // rename columns | ||
`got ${recordLength} on line ${this.info.lines}`, | ||
], this.options, this.__context(), { | ||
record: record, | ||
}) | ||
) | ||
if(err !== undefined) return err | ||
} | ||
this.state.error = err | ||
// Error is undefined with skip_lines_with_error | ||
}else if(err !== undefined){ | ||
return err | ||
} | ||
@@ -891,2 +897,3 @@ } | ||
} | ||
this.state.error = undefined | ||
this.state.record = [] | ||
@@ -1090,2 +1097,3 @@ this.state.record_length = 0 | ||
empty_lines: this.info.empty_lines, | ||
error: this.state.error, | ||
header: columns === true, | ||
@@ -1092,0 +1100,0 @@ index: this.state.record.length, |
{ | ||
"version": "4.13.1", | ||
"version": "4.14.0", | ||
"name": "csv-parse", | ||
@@ -52,18 +52,18 @@ "description": "CSV parsing implementing the Node.js `stream.Transform` API", | ||
"devDependencies": { | ||
"@babel/cli": "^7.5.5", | ||
"@babel/core": "^7.5.5", | ||
"@babel/preset-env": "^7.5.5", | ||
"@types/mocha": "^5.2.7", | ||
"@types/node": "^12.6.9", | ||
"coffeescript": "^2.4.1", | ||
"csv-generate": "^3.2.3", | ||
"@babel/cli": "^7.12.1", | ||
"@babel/core": "^7.12.3", | ||
"@babel/preset-env": "^7.12.1", | ||
"@types/mocha": "^8.0.3", | ||
"@types/node": "^14.14.6", | ||
"coffeescript": "^2.5.1", | ||
"csv-generate": "^3.2.4", | ||
"csv-spectrum": "^1.0.0", | ||
"each": "^1.2.1", | ||
"eslint": "^6.5.1", | ||
"mocha": "^6.2.0", | ||
"each": "^1.2.2", | ||
"eslint": "^7.12.1", | ||
"mocha": "^8.2.1", | ||
"pad": "^3.2.0", | ||
"should": "^13.2.3", | ||
"stream-transform": "^2.0.1", | ||
"ts-node": "^8.3.0", | ||
"typescript": "^3.5.3" | ||
"stream-transform": "^2.0.2", | ||
"ts-node": "^9.0.0", | ||
"typescript": "^4.0.5" | ||
}, | ||
@@ -70,0 +70,0 @@ "files": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
158651
3082