public async Task <string> GetPackageVersion( [NotNull] string packageName) { if (packageName == null) { throw new ArgumentNullException(nameof(packageName)); } if (PackageVersions.TryGetValue(packageName, out string version)) { return(version); } else { dynamic apiQuery = JsonConvert.DeserializeObject( await CurrentClient.DownloadStringTaskAsync( $"https://api.cdnjs.com/libraries/{packageName}?fields=version")); version = apiQuery.version; if (string.IsNullOrWhiteSpace(version)) { throw new Exception("Parse API error"); } PackageVersions.TryAdd(packageName, version); return(version); } }