toPackagexPlatformTypes method

List<PackagexPlatformType> toPackagexPlatformTypes({
  1. bool isAutoPlatformCurrent = true,
})

Convert any text symbol example: "linux" converted to PackagexPlatformType.linux

Implementation

List<PackagexPlatformType> toPackagexPlatformTypes({
  bool isAutoPlatformCurrent = true,
}) {
  List<String> texts = split(",");
  List<PackagexPlatformType> packagexPlatformTypes = [];
  for (String text in texts) {
    PackagexPlatformType? packagexPlatformType = PackagexPlatformType.values
        .firstWhereOrNull((element) =>
            element.name.toLowerCase() == text.toLowerCase().trim());
    if (packagexPlatformType != null) {
      if (!packagexPlatformTypes.contains(packagexPlatformType)) {
        packagexPlatformTypes.add(packagexPlatformType);
      }
    }
  }
  if (packagexPlatformTypes.isEmpty) {
    if (Dart.isAndroid) {
      packagexPlatformTypes.add(PackagexPlatformType.android);
    }
    if (Dart.isIOS) {
      packagexPlatformTypes.add(PackagexPlatformType.ios);
    }
    if (Dart.isLinux) {
      packagexPlatformTypes.add(PackagexPlatformType.linux);
    }
    if (Dart.isMacOS) {
      packagexPlatformTypes.add(PackagexPlatformType.macos);
    }
    if (Dart.isWeb) {
      packagexPlatformTypes.add(PackagexPlatformType.web);
    }
    if (Dart.isWindows) {
      packagexPlatformTypes.add(PackagexPlatformType.windows);
    }
  }
  return packagexPlatformTypes.toSet().toList();
}