PathMeta.fromJson constructor

PathMeta.fromJson(
  1. Map<String, dynamic> map
)

Implementation

factory PathMeta.fromJson(Map<String, dynamic> map) {
  final sizeRange = <int>[];
  if (map case {'sizes': List<int> sizes_}) {
    sizeRange.addAll(List<int>.from(sizes_));
  }
  final timeRange = <DateTime>[];
  if (map case {'times': List<String> times_}) {
    for (var e in times_) {
      var dt = DateTime.tryParse(e);
      if (dt is DateTime) timeRange.add(dt);
    }
  }

  final envMap = <String, String>{};
  if (map case {'env': Map env_}) {
    final dict_ = Map<String, String>.from(env_);
    envMap.addAll(dict_);
  }

  return PathMeta(
    map['path'] ?? '',
    pattern: map['pattern'] ?? '',
    excludes: switch (map['excludes']) {
      List value => List<String>.from(value),
      _ => [],
    },
    sizes: sizeRange,
    times: timeRange,
    env: envMap,
    os: map['os'] ?? '',
  );
}