Browse Source

Add Angualr pwa support to CLI

pull/12264/head
Enis Necipoglu 4 years ago
parent
commit
f56d83ef39
  1. 16
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  2. 40
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularPwaSupportAdder.cs

16
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs

@ -12,6 +12,7 @@ using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands.Services;
using Volo.Abp.Cli.LIbs;
using Volo.Abp.Cli.ProjectBuilding;
using Volo.Abp.Cli.ProjectBuilding.Building;
using Volo.Abp.Cli.ProjectModification;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection;
@ -24,17 +25,20 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
protected TemplateProjectBuilder TemplateProjectBuilder { get; }
public ITemplateInfoProvider TemplateInfoProvider { get; }
protected AngularPwaSupportAdder AngularPwaSupportAdder { get; }
public NewCommand(TemplateProjectBuilder templateProjectBuilder
, ITemplateInfoProvider templateInfoProvider,
ConnectionStringProvider connectionStringProvider,
SolutionPackageVersionFinder solutionPackageVersionFinder,
ICmdHelper cmdHelper,
IInstallLibsService installLibsService)
IInstallLibsService installLibsService,
AngularPwaSupportAdder angularPwaSupportAdder)
: base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService)
{
TemplateProjectBuilder = templateProjectBuilder;
TemplateInfoProvider = templateInfoProvider;
AngularPwaSupportAdder = angularPwaSupportAdder;
}
public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
@ -79,6 +83,14 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
RunGraphBuildForMicroserviceServiceTemplate(projectArgs);
await RunInstallLibsForWebTemplateAsync(projectArgs);
OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs);
var pwa = commandLineArgs.Options.ContainsKey(Options.ProgressiveWebApp.Short);
var angular = projectArgs.UiFramework == UiFramework.Angular;
if (angular && pwa)
{
Logger.LogInformation("Adding PWA Support to Angular app.");
AngularPwaSupportAdder.AddPwaSupport(projectArgs.OutputFolder);
}
}
public string GetUsageInfo()

40
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularPwaSupportAdder.cs

@ -0,0 +1,40 @@
using System;
using System.IO;
using System.Linq;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.ProjectModification;
public class AngularPwaSupportAdder : ITransientDependency
{
protected ICmdHelper CmdHelper { get; }
protected PackageJsonFileFinder PackageJsonFileFinder { get; }
public AngularPwaSupportAdder(
ICmdHelper cmdHelper,
PackageJsonFileFinder packageJsonFileFinder)
{
CmdHelper = cmdHelper;
PackageJsonFileFinder = packageJsonFileFinder;
}
public virtual void AddPwaSupport(string rootDirectory)
{
var fileList = PackageJsonFileFinder.Find(rootDirectory).Where(x => x.Contains("angular")).ToList();
if (!fileList.Any())
{
return;
}
fileList.ForEach(AddPwaSupportToProject);
}
protected virtual void AddPwaSupportToProject(string filePath)
{
var directory = Path.GetDirectoryName(filePath).EnsureEndsWith(Path.DirectorySeparatorChar);
CmdHelper.RunCmd($"cd {directory} && ng add @angular/pwa --skip-confirmation");
}
}
Loading…
Cancel
Save