private static async Task <Package> ConvertNpmPackageVersionToPackageAsync(NpmClient client, NpmPackageAllVersions npmPackageAllVersions) { var(npmPackage, error) = await client.NpmGetPackageAsync(GetNpmName(npmPackageAllVersions.Package_Name, npmPackageAllVersions.Scope_Name), npmPackageAllVersions.Version_Text); if (error != null) { throw new WebException(error.ErrorMessage); } var match = Regex.Match(npmPackage.Id, prereleaseRegEx); var prerelease = match.Groups["Prerelease"].Value.Any(); var package = new Package { Id = ConvertNpmPackageNameToId(npmPackageAllVersions), Version = npmPackageAllVersions.Version_Text, PackageDownloadUrl = npmPackage.Dist[NpmPackage.ArchiveKey], PackageHash = npmPackage.Dist[NpmPackage.HashKey], IsPrerelease = prerelease }; return(package); }
private static string ConvertNpmPackageNameToId(NpmPackageAllVersions npmPackageVersion) { return(string.IsNullOrEmpty(npmPackageVersion.Scope_Name) ? npmPackageVersion.Package_Name : $"@{npmPackageVersion.Scope_Name}/{npmPackageVersion.Package_Name}"); }