getHeader method

Future<List<FieldDefinition>> getHeader()

Implementation

Future<List<FieldDefinition>> getHeader() async {
  final cancellationSignal = Completer();
  final stream = streamRecordsThroughFile(
    resourceFile,
    fieldDefinitions,
    LoadCriterion.passAll(),
    cancellationSignal: cancellationSignal,
  );
  final rawHeader = await stream.first;
  cancellationSignal.complete();

  return rawHeader
      .map(
        (e) => fieldDefinitions.firstWhere(
          (element) => element.name == e,
          orElse: () => FieldDefinition<Object>(
            e ?? 'unnamed_field',
            (dataset, header, records) => null,
            type: TextFieldType(),
          ),
        ),
      )
      .toList(growable: false);
}