ProjectConfiguration.fromMap constructor

ProjectConfiguration.fromMap(
  1. Map map
)

Implementation

factory ProjectConfiguration.fromMap(Map<dynamic, dynamic> map) {
  final layers = map['layers'] == null
      ? <Layer>[]
      : List<Layer>.from(
          (map['layers'] as Iterable).map((x) => Layer.fromMap(x)),
        );
  final excludePaths = map['excludePaths'] == null
      ? <RegExp>[]
      : List<RegExp>.from(
          ((map['excludePaths'] as Iterable).map((x) => Regex.fromMap(x))),
        );
  final bannedImportsList = map['bannedImports'] == null
      ? <BannedImports>[]
      : List<BannedImports>.from(
          (map['bannedImports'] as Iterable)
              .map((x) => BannedImports.fromMap(x)),
        );
  final bannedClassNamesList = map['bannedClassNames'] == null
      ? <BannedClassName>[]
      : List<BannedClassName>.from(
          (map['bannedClassNames'] as Iterable)
              .map((x) => BannedClassName.fromMap(x)),
        );

  final bannedImportsMap = <Layer, Set<Layer>>{};
  for (final bannedConnection in bannedImportsList) {
    bannedImportsMap[bannedConnection.layer] =
        bannedConnection.cannotImportFrom.toSet();
  }

  final bannedClassNamesMap = <Layer, Set<RegExp>>{};
  for (final bannedClassName in bannedClassNamesList) {
    bannedClassNamesMap[bannedClassName.layer] =
        bannedClassName.bannedClassNames.toSet();
  }

  return ProjectConfiguration(
    layers,
    excludePaths,
    bannedImportsMap,
    bannedClassNamesMap,
  );
}