|
|
|
@ -122,6 +122,7 @@ public class NpmPackagesUpdater : ITransientDependency
|
|
|
|
|
{
|
|
|
|
|
var fileName = Path.Combine(directoryName, ".npmrc");
|
|
|
|
|
var abpRegistry = "@abp:registry=https://www.myget.org/F/abp-nightly/npm";
|
|
|
|
|
var voloRegistry = "@volo:registry=https://www.myget.org/F/abp-commercial-npm-nightly/npm";
|
|
|
|
|
|
|
|
|
|
if (await NpmrcFileExistAsync(directoryName))
|
|
|
|
|
{
|
|
|
|
@ -132,16 +133,20 @@ public class NpmPackagesUpdater : ITransientDependency
|
|
|
|
|
fileContent += Environment.NewLine + abpRegistry;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!fileContent.Contains(voloRegistry))
|
|
|
|
|
{
|
|
|
|
|
fileContent += Environment.NewLine + voloRegistry;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
File.WriteAllText(fileName, fileContent);
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using var fs = File.Create(fileName);
|
|
|
|
|
using var sw = File.CreateText(fileName);
|
|
|
|
|
|
|
|
|
|
var content = new UTF8Encoding(true)
|
|
|
|
|
.GetBytes(abpRegistry);
|
|
|
|
|
fs.Write(content, 0, content.Length);
|
|
|
|
|
sw.WriteLine(abpRegistry);
|
|
|
|
|
sw.WriteLine(voloRegistry);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static bool IsAngularProject(string fileDirectory)
|
|
|
|
@ -217,7 +222,7 @@ public class NpmPackagesUpdater : ITransientDependency
|
|
|
|
|
(!switchToStable && (currentVersion != null && currentVersion.Contains("-preview")))) &&
|
|
|
|
|
!includeReleaseCandidates)
|
|
|
|
|
{
|
|
|
|
|
version = "preview";
|
|
|
|
|
version = await GetLatestVersion(package, includePreviews: includePreviews, workingDirectory: filePath.RemovePostFix("package.json"));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
@ -232,7 +237,6 @@ public class NpmPackagesUpdater : ITransientDependency
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(version) || version == currentVersion)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
@ -255,28 +259,39 @@ public class NpmPackagesUpdater : ITransientDependency
|
|
|
|
|
return version.Split("-", StringSplitOptions.RemoveEmptyEntries).Length > 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual async Task<string> GetLatestVersion(JProperty package, bool includeReleaseCandidates = false)
|
|
|
|
|
protected virtual async Task<string> GetLatestVersion(JProperty package, bool includeReleaseCandidates = false, bool includePreviews = false, string workingDirectory = null)
|
|
|
|
|
{
|
|
|
|
|
if (_fileVersionStorage.ContainsKey(package.Name))
|
|
|
|
|
var key = package.Name + (includePreviews ? "(preview)" : string.Empty);
|
|
|
|
|
|
|
|
|
|
if (_fileVersionStorage.ContainsKey(key))
|
|
|
|
|
{
|
|
|
|
|
return await Task.FromResult(_fileVersionStorage[package.Name]);
|
|
|
|
|
return await Task.FromResult(_fileVersionStorage[key]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var versionList = GetPackageVersionList(package);
|
|
|
|
|
var versionList = GetPackageVersionList(package, workingDirectory);
|
|
|
|
|
|
|
|
|
|
var newVersion = includeReleaseCandidates
|
|
|
|
|
? versionList.First()
|
|
|
|
|
: versionList.FirstOrDefault(v => !SemanticVersion.Parse(v).IsPrerelease);
|
|
|
|
|
string newVersion = string.Empty;
|
|
|
|
|
|
|
|
|
|
if (includePreviews)
|
|
|
|
|
{
|
|
|
|
|
newVersion = versionList.FirstOrDefault(v => v.Contains("-preview"));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
newVersion = includeReleaseCandidates
|
|
|
|
|
? versionList.First()
|
|
|
|
|
: versionList.FirstOrDefault(v => !SemanticVersion.Parse(v).IsPrerelease);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(newVersion))
|
|
|
|
|
{
|
|
|
|
|
_fileVersionStorage[package.Name] = newVersion;
|
|
|
|
|
_fileVersionStorage[key] = newVersion;
|
|
|
|
|
return await Task.FromResult(newVersion);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var newVersionWithPrefix = $"~{newVersion}";
|
|
|
|
|
|
|
|
|
|
_fileVersionStorage[package.Name] = newVersionWithPrefix;
|
|
|
|
|
_fileVersionStorage[key] = newVersionWithPrefix;
|
|
|
|
|
|
|
|
|
|
return await Task.FromResult(newVersionWithPrefix);
|
|
|
|
|
}
|
|
|
|
@ -323,9 +338,9 @@ public class NpmPackagesUpdater : ITransientDependency
|
|
|
|
|
CmdHelper.RunCmd($"npm install", fileDirectory);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual List<string> GetPackageVersionList(JProperty package)
|
|
|
|
|
protected virtual List<string> GetPackageVersionList(JProperty package, string workingDirectory = null)
|
|
|
|
|
{
|
|
|
|
|
var output = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} versions --json");
|
|
|
|
|
var output = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} versions --json", workingDirectory);
|
|
|
|
|
|
|
|
|
|
var versionListAsJson = ExtractVersions(output);
|
|
|
|
|
|
|
|
|
|