modelWriterNamed function

ModelWriter? modelWriterNamed(
  1. String asked, {
  2. List<ModelWriter> writers = builtInModelWriters,
})

The writer in writers that asked names — by ModelWriter.name first, then by ModelWriter.suffix, with or without its dot, ignoring case — or null when none does.

A caller that offers more than this package ships passes its own list, builtInModelWriters and its own writers together.

Implementation

ModelWriter? modelWriterNamed(
  String asked, {
  List<ModelWriter> writers = builtInModelWriters,
}) {
  final key = asked.toLowerCase();
  for (final ModelWriter writer in writers) {
    if (writer.name.toLowerCase() == key) return writer;
  }
  final suffix = key.startsWith('.') ? key : '.$key';
  for (final ModelWriter writer in writers) {
    if (writer.suffix == suffix) return writer;
  }
  return null;
}