resolveLongLivedStaticFiles static method

List<Pattern> resolveLongLivedStaticFiles(
  1. Object? patterns, {
  2. List<Pattern>? def,
  3. APIConfig? apiConfig,
})

Implementation

static List<Pattern> resolveLongLivedStaticFiles(
  Object? patterns, {
  List<Pattern>? def,
  APIConfig? apiConfig,
}) {
  List list;

  if (patterns is Iterable) {
    list = patterns.toList();
  } else if (patterns != null) {
    list = [patterns];
  } else {
    if (apiConfig != null) {
      list =
          apiConfig
              .getAsMap('cache')
              ?.getAsMap('long_lived_static_files')
              ?.getAsList('cached') ??
          [];
    } else {
      list = [];
    }
  }

  List<Pattern> files =
      list
          .map((e) {
            if (e is RegExp) return e;

            var s = e.toString().trim();
            if (s.isEmpty) return null;

            if (s.startsWith('re:')) {
              return RegExp(s.substring(3));
            } else if (s.startsWith('regexp:')) {
              return RegExp(s.substring(7));
            } else {
              return s;
            }
          })
          .nonNulls
          .toList();

  if (list.isEmpty) {
    return def ?? [];
  }

  return files;
}