diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/ServiceProxyGenerationModel.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/ServiceProxyGenerationModel.cs
index 5cc9a0a3c5..20dae137e7 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/ServiceProxyGenerationModel.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ProxyScripting/ServiceProxyGenerationModel.cs
@@ -11,6 +11,8 @@ namespace Volo.Abp.AspNetCore.Mvc.ProxyScripting
public bool UseCache { get; set; }
+ public bool Minify { get; set; }
+
public string Modules { get; set; }
public string Controllers { get; set; }
@@ -32,7 +34,7 @@ namespace Volo.Abp.AspNetCore.Mvc.ProxyScripting
public ProxyScriptingModel CreateOptions()
{
- var options = new ProxyScriptingModel(Type, UseCache);
+ var options = new ProxyScriptingModel(Type, UseCache, Minify);
if (!Modules.IsNullOrEmpty())
{
diff --git a/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj b/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj
index df1e907450..57f447604e 100644
--- a/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj
+++ b/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj
@@ -16,6 +16,7 @@
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs
index 171f54b85f..6cccb5ff6d 100644
--- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs
+++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/AbpHttpModule.cs
@@ -1,12 +1,14 @@
using Volo.Abp.Http.ProxyScripting.Configuration;
using Volo.Abp.Http.ProxyScripting.Generators.JQuery;
using Volo.Abp.Json;
+using Volo.Abp.Minify;
using Volo.Abp.Modularity;
namespace Volo.Abp.Http
{
[DependsOn(typeof(AbpHttpAbstractionsModule))]
[DependsOn(typeof(AbpJsonModule))]
+ [DependsOn(typeof(AbpMinifyModule))]
public class AbpHttpModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs
index 1b89de2b3a..858b78a57f 100644
--- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs
+++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptManager.cs
@@ -7,6 +7,7 @@ using Volo.Abp.Http.Modeling;
using Volo.Abp.Http.ProxyScripting.Configuration;
using Volo.Abp.Http.ProxyScripting.Generators;
using Volo.Abp.Json;
+using Volo.Abp.Minify.Scripts;
namespace Volo.Abp.Http.ProxyScripting
{
@@ -17,18 +18,21 @@ namespace Volo.Abp.Http.ProxyScripting
private readonly IJsonSerializer _jsonSerializer;
private readonly IProxyScriptManagerCache _cache;
private readonly AbpApiProxyScriptingOptions _options;
+ private readonly IJavascriptMinifier _javascriptMinifier;
public ProxyScriptManager(
IApiDescriptionModelProvider modelProvider,
IServiceProvider serviceProvider,
IJsonSerializer jsonSerializer,
IProxyScriptManagerCache cache,
- IOptions options)
+ IOptions options,
+ IJavascriptMinifier javascriptMinifier)
{
_modelProvider = modelProvider;
_serviceProvider = serviceProvider;
_jsonSerializer = jsonSerializer;
_cache = cache;
+ _javascriptMinifier = javascriptMinifier;
_options = options.Value;
}
@@ -63,7 +67,8 @@ namespace Volo.Abp.Http.ProxyScripting
using (var scope = _serviceProvider.CreateScope())
{
- return scope.ServiceProvider.GetRequiredService(generatorType).As().CreateScript(apiModel);
+ var script = scope.ServiceProvider.GetRequiredService(generatorType).As().CreateScript(apiModel);
+ return scriptingModel.Minify ? _javascriptMinifier.Minify(script) : script;
}
}
diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptingModel.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptingModel.cs
index 5ab85a781b..6815c01ce5 100644
--- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptingModel.cs
+++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/ProxyScriptingModel.cs
@@ -8,6 +8,8 @@ namespace Volo.Abp.Http.ProxyScripting
public bool UseCache { get; set; }
+ public bool Minify { get; set; }
+
public string[] Modules { get; set; }
public string[] Controllers { get; set; }
@@ -16,10 +18,11 @@ namespace Volo.Abp.Http.ProxyScripting
public IDictionary Properties { get; set; }
- public ProxyScriptingModel(string generatorType, bool useCache = true)
+ public ProxyScriptingModel(string generatorType, bool useCache = true, bool minify = false)
{
GeneratorType = generatorType;
UseCache = useCache;
+ Minify = minify;
Properties = new Dictionary();
}
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxiesController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxiesController_Tests.cs
index 10fa9bd3e7..bd7366b931 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxiesController_Tests.cs
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ProxyScripting/AbpServiceProxiesController_Tests.cs
@@ -9,8 +9,19 @@ namespace Volo.Abp.AspNetCore.Mvc.ProxyScripting
[Fact]
public async Task GetAll()
{
- var script = await GetResponseAsStringAsync("/Abp/ServiceProxyScript/");
+ var script = await GetResponseAsStringAsync("/Abp/ServiceProxyScript?minify=true");
script.Length.ShouldBeGreaterThan(0);
}
+
+ [Fact]
+ public async Task GetAllWithMinify()
+ {
+ var script = await GetResponseAsStringAsync("/Abp/ServiceProxyScript");
+ var minifyScript = await GetResponseAsStringAsync("/Abp/ServiceProxyScript?minify=true");
+
+ script.Length.ShouldBeGreaterThan(0);
+ minifyScript.Length.ShouldBeGreaterThan(0);
+ minifyScript.Length.ShouldBeLessThan(script.Length);
+ }
}
}