load static method

Future<DogsGeneratorSettings> load(
  1. BuildStep buildStep
)

Implementation

static Future<DogsGeneratorSettings> load(BuildStep buildStep) async {
  var settings = DogsGeneratorSettings();

  try {
    var pubspecString =
        await buildStep.readAsString(AssetId(buildStep.inputId.package, "pubspec.yaml"));
    var pubspec = PubSpec.fromYamlString(pubspecString);
    var dogsRegion = pubspec.unParsedYaml?["dogs"];
    if (dogsRegion != null) {
      log.info("Using dogs generator options specified in the pubspec.yaml");
      var map = dogsRegion as Map;

      var isLibraryValue = map["library"];
      if (isLibraryValue is bool) {
        settings.isLibrary = isLibraryValue;
      }

      var casingValue = map["property_case"];
      if (casingValue is String) {
        settings.propertyCase = CasingType.fromString(casingValue);
      }

      var nameCasingValue = map["name_case"];
      if (nameCasingValue is String) {
        settings.nameCase = CasingType.fromString(nameCasingValue);
      }

      var enumCasingValue = map["enum_case"];
      if (enumCasingValue is String) {
        settings.enumCase = CasingType.fromString(enumCasingValue);
      }

      var nullableAccessorsValue = map["nullable_accessors"];
      if (nullableAccessorsValue is bool) {
        settings.nullableAccessors = nullableAccessorsValue;
      }
    }
  } catch (ex) {
    log.warning("Can't resolve package pubspec.yaml with error: $ex. Using default values.");
  }
  return settings;
}