Upgrading csv 6 to 7
Breaking6.0.0 → 7.2.0Breaking1New3Changed1Other1
BreakingUpgrade verdict
1 breaking change.
In plain terms
- The package has been rewritten from scratch, so the old API is no longer available.
Must act 1 item needs code or config changes
Dart SDK requirement changed in 7.0.0: >=2.12.0 <4.0.0 → ^3.10.1.
What you must change
Breaking1
Complete rewrite of the library, now compatible with dart:convert.
dart:convertAPI changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- removed:
class CsvToListConverter extends StreamTransformerBase<String, List> implements ComplexChunkedConverter<String, List<List>> - removed:
class CsvToListSink implements ChunkedConversionSink<String> - removed:
class List2CsvSink implements ChunkedConversionSink<List<List>> - removed:
class ListToCsvConverter extends StreamTransformerBase<List, String> implements ComplexChunkedConverter<List<List>, String> - removed:
ctor CsvToListConverter( {this.fieldDelimiter = …, String? textDelimiter = …, String? textEndDelimiter, this.eol = …, this.csvSettingsDetector, bool? shouldParseNumbers, bool? allowInvalid, this.convertEmptyTo}) - removed:
ctor CsvToListSink( this._outSink, this._fieldDelimiter, this._textDelimiter, this._textEndDelimiter, this._eol, this._csvSettingsDetector, this._shouldParseNumbers, this._allowInvalid, this._convertEmptyTo) - removed:
ctor List2CsvSink(this._converter, this._outSink) - removed:
ctor ListToCsvConverter( {this.fieldDelimiter = …, String textDelimiter = …, String? textEndDelimiter, this.eol = …, this.delimitAllFields = …, this.convertNullTo}) - removed:
enum EmptyValue - removed:
field CsvCodec.decoder: final CsvToListConverter - removed:
field CsvCodec.encoder: final ListToCsvConverter - removed:
field CsvToListConverter.allowInvalid: final bool - removed:
field CsvToListConverter.convertEmptyTo: final - removed:
field CsvToListConverter.csvSettingsDetector: final CsvSettingsDetector? - removed:
field CsvToListConverter.eol: final String? - removed:
field CsvToListConverter.fieldDelimiter: final String? - removed:
field CsvToListConverter.shouldParseNumbers: final bool - removed:
field CsvToListConverter.textDelimiter: final String? - removed:
field CsvToListConverter.textEndDelimiter: final String? - removed:
field ListToCsvConverter.convertNullTo: final - removed:
field ListToCsvConverter.delimitAllFields: final bool - removed:
field ListToCsvConverter.eol: final String - removed:
field ListToCsvConverter.fieldDelimiter: final String - removed:
field ListToCsvConverter.textDelimiter: final String - removed:
field ListToCsvConverter.textEndDelimiter: final String - removed:
member EmptyValue.NULL - removed:
method CsvToListConverter.bind(Stream<String> stream): Stream<List> - removed:
method CsvToListConverter.convert<E extends dynamic>(String? csv, {String? fieldDelimiter, String? textDelimiter, String? textEndDelimiter, String? eol, CsvSettingsDetector? csvSettingsDetector, bool? shouldParseNumbers, bool? allowInvalid, var convertEmptyTo}): List<List<E>> - removed:
method CsvToListConverter.startChunkedConversion(Sink outputSink): CsvToListSink - removed:
method CsvToListConverter.verifyCurrentSettings({bool? throwError}): List<ArgumentError> - removed:
method CsvToListSink.add(String csvChunk): void - removed:
method CsvToListSink.close(): void - removed:
method List2CsvSink.add(List oneRow): void - removed:
method List2CsvSink.close(): void - removed:
method ListToCsvConverter.bind(Stream<List> stream): Stream<String> - removed:
method ListToCsvConverter.convert(List<List?>? rows, {String? fieldDelimiter, String? textDelimiter, String? textEndDelimiter, String? eol, bool? delimitAllFields, var convertNullTo}): String - removed:
method ListToCsvConverter.convertSingleRow(StringBuffer sb, List? rowValues, {String? fieldDelimiter, String? textDelimiter, String? textEndDelimiter, String? eol, bool? delimitAllFields, var convertNullTo, bool returnString = …}): String? - removed:
method ListToCsvConverter.startChunkedConversion(Sink<String> outputSink): List2CsvSink - removed:
static method CsvToListConverter.verifySettings(String? fieldDelimiter, String? textDelimiter, String? textEndDelimiter, String? eol, {bool? throwError}): List<ArgumentError> - removed:
variable defaultDelimitAllFields: const bool - removed:
variable defaultEol: const String - removed:
variable defaultFieldDelimiter: const String - removed:
variable defaultTextDelimiter: const String - changed:
class CsvCodec → class CsvCodec extends Codec<List<List<dynamic>>, String> - changed:
ctor CsvCodec( {String fieldDelimiter = …, String textDelimiter = …, String? textEndDelimiter, String eol = …, bool shouldParseNumbers = …, bool allowInvalid = …, bool delimitAllFields = …, convertNullTo, convertEmptyTo}) → ctor CsvCodec({ String fieldDelimiter = …, String lineDelimiter = …, String quoteCharacter = …, String? escapeCharacter, QuoteMode quoteMode = …, bool addBom = …, bool autoDetect = …, bool skipEmptyLines = …, bool parseHeaders = …, dynamic Function(dynamic field, int index, String? header)? encoderTransform, dynamic Function(dynamic field, int index, String? header)? decoderTransform, bool dynami… - added:
class CsvDecoder extends Converter<String, List<List<dynamic>>> - added:
class CsvEncoder extends Converter<List<List<dynamic>>, String> - added:
class CsvRow extends ListBase<dynamic> - added:
ctor CsvCodec.excel() - added:
ctor CsvDecoder({ this.fieldDelimiter, this.quoteCharacter = …, this.escapeCharacter, this.skipEmptyLines = …, this.fieldTransform, this.parseHeaders = …, this.dynamicTyping = …, }) - added:
ctor CsvEncoder({ this.fieldDelimiter = …, this.lineDelimiter = …, this.quoteCharacter = …, String? escapeCharacter, this.quoteMode = …, this.addBom = …, this.fieldTransform, }) - added:
ctor CsvRow(this._fields, this._headerMap) - added:
enum QuoteMode - added:
field CsvDecoder.dynamicTyping: final bool - added:
field CsvDecoder.escapeCharacter: final String? - added:
field CsvDecoder.fieldDelimiter: final String? - added:
field CsvDecoder.parseHeaders: final bool - added:
field CsvDecoder.quoteCharacter: final String - added:
field CsvDecoder.skipEmptyLines: final bool - added:
field CsvEncoder.addBom: final bool - added:
field CsvEncoder.escapeCharacter: final String - added:
field CsvEncoder.fieldDelimiter: final String - added:
field CsvEncoder.lineDelimiter: final String - added:
field CsvEncoder.quoteCharacter: final String - added:
field CsvEncoder.quoteMode: final QuoteMode - added:
field CsvRow.[]: void operator - added:
get CsvCodec.decoder: CsvDecoder - added:
get CsvCodec.encoder: CsvEncoder - added:
get CsvRow.headerMap: Map<String, int> - added:
get CsvRow.length: int - added:
member QuoteMode.always - added:
member QuoteMode.necessary - added:
member QuoteMode.strings - added:
method CsvCodec.decodeWithHeaders(String encoded): List<CsvRow> - added:
method CsvDecoder.Function(dynamic field, int index, String? header): dynamic - added:
method CsvDecoder.convert(String input): List<List<dynamic>> - added:
method CsvDecoder.startChunkedConversion(Sink<List<List<dynamic>>> sink): StringConversionSink - added:
method CsvEncoder.Function(dynamic field, int index, String? header): dynamic - added:
method CsvEncoder.convert(List<List<dynamic>> input): String - added:
method CsvEncoder.startChunkedConversion( Sink<String> sink, ): ChunkedConversionSink<List<List<dynamic>>> - added:
method CsvRow.getHeaderName(int index): String? - added:
method CsvRow.operator [](Object key): dynamic - added:
method CsvRow.toMap(): Map<String, dynamic> - added:
set CsvRow.length(int newLength) - added:
static method CsvEncoder.encodeField( dynamic field, String fieldDelimiter, String quoteCharacter, String escapeCharacter, QuoteMode quoteMode, dynamic Function(dynamic field, int index, String? header)? transform, int index, String? header, ): String - added:
variable csv: final CsvCodec - added:
variable excel: final CsvCodec
- removed:
class CsvSettings - removed:
class CsvSettingsDetector: abstract - removed:
class FirstOccurrenceSettingsDetector extends CsvSettingsDetector - removed:
ctor CsvSettings(this.fieldDelimiter, this.textDelimiter, this.textEndDelimiter, this.eol, this.needMoreData) - removed:
ctor CsvSettingsDetector() - removed:
ctor FirstOccurrenceSettingsDetector( {this.fieldDelimiters, this.textDelimiters, this.textEndDelimiters, this.eols}) - removed:
field CsvSettings.eol: final String? - removed:
field CsvSettings.fieldDelimiter: final String? - removed:
field CsvSettings.needMoreData: final bool? - removed:
field CsvSettings.textDelimiter: final String? - removed:
field CsvSettings.textEndDelimiter: final String? - removed:
field FirstOccurrenceSettingsDetector.eols: final List<String>? - removed:
field FirstOccurrenceSettingsDetector.fieldDelimiters: final List<String>? - removed:
field FirstOccurrenceSettingsDetector.textDelimiters: final List<String>? - removed:
field FirstOccurrenceSettingsDetector.textEndDelimiters: final List<String>? - removed:
method CsvSettingsDetector.detectFromCsvChunks(List<String?> csvChunks, bool? noMoreChunks): CsvSettings - removed:
method CsvSettingsDetector.detectFromString(String csv): CsvSettings - removed:
method FirstOccurrenceSettingsDetector.detectFromString(String csv): CsvSettings