generateTemplate static method

String generateTemplate(
  1. List<TCsvColumn> columns, {
  2. bool includeSampleRow = true,
  3. String delimiter = ',',
})

Generates a sample CSV template string based on a list of TCsvColumns.

Implementation

static String generateTemplate(List<TCsvColumn> columns, {bool includeSampleRow = true, String delimiter = ','}) {
  final headers = columns.map((c) => c.header).toList();
  final sampleRows = <List<dynamic>>[];

  if (includeSampleRow) {
    final sampleRow = columns.map((col) {
      if (col.defaultValue != null) return col.formatValue(col.defaultValue);
      return switch (col.type) {
        TCsvColumnType.text => 'Sample ${col.header}',
        TCsvColumnType.number => '29.99',
        TCsvColumnType.integer => '10',
        TCsvColumnType.boolean => 'true',
      };
    }).toList();
    sampleRows.add(sampleRow);
  }

  return toCsv(headers, sampleRows, delimiter: delimiter);
}