Set? _declaredPlatforms()

in lib/src/tag/_violations.dart [116:155]


  Set<Platform>? _declaredPlatforms(String packageName) {
    return _declaredPlatformCache.putIfAbsent(packageName, () {
      final fields = _pubspecCache.pubspecOfPackage(packageName).toJson();
      if (fields['platforms'] is Map) {
        final result = <Platform>{};

        final declaredPlatforms = fields['platforms'] as Map;
        for (final platform in Platform.recognizedPlatforms) {
          if (declaredPlatforms.containsKey(platform.name.toLowerCase())) {
            result.add(platform);
          }
        }
        return result;
      } else if (fields['flutter'] is Map &&
          fields['flutter']['plugin'] is Map) {
        final result = <Platform>{};

        final pluginMap = fields['flutter']['plugin'] as Map;
        final declaredPlatforms = pluginMap['platforms'];
        if (declaredPlatforms is Map) {
          for (final platform in Platform.recognizedPlatforms) {
            if (declaredPlatforms.containsKey(platform.name.toLowerCase())) {
              result.add(platform);
            }
          }
        } else {
          // Legacy style plugin:
          if (pluginMap['pluginClass'] is String ||
              pluginMap['androidPackage'] is String ||
              pluginMap['iosPrefix'] is String) {
            result.add(Platform.android);
            result.add(Platform.ios);
          }
        }
        return result;
      } else {
        return null;
      }
    });
  }