parse static method

SingleColorConfig parse({
  1. required String name,
  2. required YamlMap data,
})

Implementation

static SingleColorConfig parse(
    {required String name, required YamlMap data}) {
  final mapData = data.value;
  List<int>? resolvedRbg;
  if (mapData[ConfigKey.rgb] != null) {
    final splitInt = (mapData[ConfigKey.rgb].toString()).split(',');
    if (splitInt.length != 3) {
      throw const YamlFileHaveWrongFormat();
    }
    for (var value in splitInt) {
      final parsed = int.tryParse(value.trim());
      if (parsed == null) {
        throw const YamlFileHaveWrongFormat();
      }
      resolvedRbg ??= [];
      resolvedRbg.add(parsed);
    }
  }
  final double? opacity =
      double.tryParse(mapData[ConfigKey.opacity].toString());
  final int? alpha = int.tryParse(mapData[ConfigKey.alpha].toString());
  final bool? primary = mapData[ConfigKey.primary] as bool?;
  return SingleColorConfig(
    name: name,
    hex: mapData[ConfigKey.hex] as int?,
    rgb: resolvedRbg,
    opacity: opacity,
    alpha: alpha,
    primary: primary,
  );
}