encode method
Encode rows to CSV string with type-aware quoting.
Implementation
String encode(List<List<dynamic>> data, CsvConfig config) {
if (data.isEmpty) return config.addBom ? '\uFEFF' : '';
final buf = StringBuffer();
if (config.addBom) buf.writeCharCode(0xFEFF);
final delim = config.fieldDelimiter;
final lineDelim = config.lineDelimiter;
final quote = config.quoteCharacter;
final escape = config.escapeCharacter;
final mode = config.quoteMode;
final transform = config.encoderTransform;
for (var r = 0; r < data.length; r++) {
final row = data[r];
for (var c = 0; c < row.length; c++) {
if (c > 0) buf.write(delim);
var cell = row[c];
if (transform != null) cell = transform(cell, c, null);
_writeCell(buf, cell, delim, quote, escape, mode);
}
if (r < data.length - 1) buf.write(lineDelim);
}
return buf.toString();
}