|
|
|
@ -2,7 +2,6 @@ using System; |
|
|
|
using System.IO; |
|
|
|
using System.Text; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using Newtonsoft.Json.Linq; |
|
|
|
using Volo.Abp.Cli.Args; |
|
|
|
using Volo.Abp.Cli.Utils; |
|
|
|
@ -17,7 +16,31 @@ namespace Volo.Abp.Cli.Commands |
|
|
|
CheckAngularJsonFile(); |
|
|
|
CheckNgSchematics(); |
|
|
|
|
|
|
|
CmdHelper.RunCmd("npx ng g @abp/ng.schematics:proxy"); |
|
|
|
var prompt = commandLineArgs.Options.ContainsKey("p") || commandLineArgs.Options.ContainsKey("prompt"); |
|
|
|
var defaultValue = prompt ? null : "__default"; |
|
|
|
|
|
|
|
var module = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.Module.Long) ?? defaultValue; |
|
|
|
var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long) ?? defaultValue; |
|
|
|
var target = commandLineArgs.Options.GetOrNull(Options.Target.Short, Options.Target.Long) ?? defaultValue; |
|
|
|
|
|
|
|
var commandBuilder = new StringBuilder("npx ng g @abp/ng.schematics:proxy"); |
|
|
|
|
|
|
|
if (module != null) |
|
|
|
{ |
|
|
|
commandBuilder.Append($" --module {module}"); |
|
|
|
} |
|
|
|
|
|
|
|
if (source != null) |
|
|
|
{ |
|
|
|
commandBuilder.Append($" --source {source}"); |
|
|
|
} |
|
|
|
|
|
|
|
if (target != null) |
|
|
|
{ |
|
|
|
commandBuilder.Append($" --target {target}"); |
|
|
|
} |
|
|
|
|
|
|
|
CmdHelper.RunCmd(commandBuilder.ToString()); |
|
|
|
|
|
|
|
return Task.CompletedTask; |
|
|
|
} |
|
|
|
@ -29,20 +52,21 @@ namespace Volo.Abp.Cli.Commands |
|
|
|
if (!File.Exists(packageJsonPath)) |
|
|
|
{ |
|
|
|
throw new CliUsageException( |
|
|
|
"package.json file not found" + |
|
|
|
Environment.NewLine + |
|
|
|
GetUsageInfo() |
|
|
|
"package.json file not found" + |
|
|
|
Environment.NewLine + |
|
|
|
GetUsageInfo() |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
var schematicsPackageNode = (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; |
|
|
|
var schematicsPackageNode = |
|
|
|
(string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; |
|
|
|
|
|
|
|
if (schematicsPackageNode == null) |
|
|
|
{ |
|
|
|
throw new CliUsageException( |
|
|
|
"\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + |
|
|
|
Environment.NewLine + |
|
|
|
GetUsageInfo() |
|
|
|
"\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + |
|
|
|
Environment.NewLine + |
|
|
|
GetUsageInfo() |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -69,9 +93,12 @@ namespace Volo.Abp.Cli.Commands |
|
|
|
sb.AppendLine(""); |
|
|
|
sb.AppendLine(" abp generate-proxy"); |
|
|
|
sb.AppendLine(""); |
|
|
|
sb.AppendLine("Examples:"); |
|
|
|
sb.AppendLine("Options:"); |
|
|
|
sb.AppendLine(""); |
|
|
|
sb.AppendLine(" abp generate-proxy"); |
|
|
|
sb.AppendLine("-m|--module <module-name> (default: 'app') The name of the backend module you wish to generate proxies for."); |
|
|
|
sb.AppendLine("-s|--source <source-name> (default: 'defaultProject') Angular project name to resolve the root namespace & API definition URL from."); |
|
|
|
sb.AppendLine("-t|--target <target-name> (default: 'defaultProject') Angular project name to place generated code in."); |
|
|
|
sb.AppendLine("-p|--prompt Asks the options from the command line prompt (for the missing options)"); |
|
|
|
sb.AppendLine(""); |
|
|
|
sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); |
|
|
|
|
|
|
|
@ -82,5 +109,32 @@ namespace Volo.Abp.Cli.Commands |
|
|
|
{ |
|
|
|
return "Generates Angular service proxies and DTOs to consume HTTP APIs."; |
|
|
|
} |
|
|
|
|
|
|
|
public static class Options |
|
|
|
{ |
|
|
|
public static class Module |
|
|
|
{ |
|
|
|
public const string Short = "m"; |
|
|
|
public const string Long = "module"; |
|
|
|
} |
|
|
|
|
|
|
|
public static class Source |
|
|
|
{ |
|
|
|
public const string Short = "s"; |
|
|
|
public const string Long = "source"; |
|
|
|
} |
|
|
|
|
|
|
|
public static class Target |
|
|
|
{ |
|
|
|
public const string Short = "t"; |
|
|
|
public const string Long = "target"; |
|
|
|
} |
|
|
|
|
|
|
|
public static class Prompt |
|
|
|
{ |
|
|
|
public const string Short = "p"; |
|
|
|
public const string Long = "prompt"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|