coerceStringList function

List<String> coerceStringList(
  1. DartObject? value,
  2. String field, {
  3. List<String> defaultTo = const [],
})

Reads and returns field on value as a list of strings.

Unlike DartObject#getField, this also traverses super if available.

If the value is missing or not a list, returns defaultTo.

Implementation

List<String> coerceStringList(
  DartObject? value,
  String field, {
  List<String> defaultTo = const [],
}) {
  final list = getField(value, field)?.toListValue();
  return list != null
      ? list.map((o) => o.toStringValue()).whereType<String>().toList()
      : defaultTo;
}