From a5e913337151f56488093a59d82abf887a55215a Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 19 Oct 2021 18:01:40 +0800 Subject: [PATCH] Introduce DynamicJavaScriptProxyOptions --- .../JQuery/DynamicJavaScriptProxyOptions.cs | 13 +++++++++++++ .../JQuery/JQueryProxyScriptGenerator.cs | 18 ++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/DynamicJavaScriptProxyOptions.cs diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/DynamicJavaScriptProxyOptions.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/DynamicJavaScriptProxyOptions.cs new file mode 100644 index 0000000000..6aa5410fef --- /dev/null +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/DynamicJavaScriptProxyOptions.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery; + +public class DynamicJavaScriptProxyOptions +{ + public HashSet EnabledModules { get; set; } + + public DynamicJavaScriptProxyOptions() + { + EnabledModules = new HashSet { "app" }; + } +} diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs index 46a657c4a4..ca5170dc1f 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; using Volo.Abp.Http.Modeling; @@ -19,6 +20,13 @@ namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery /// public const string Name = "jquery"; + private readonly DynamicJavaScriptProxyOptions _dynamicJavaScriptProxyOptions; + + public JQueryProxyScriptGenerator(IOptions dynamicJavaScriptProxyOptions) + { + _dynamicJavaScriptProxyOptions = dynamicJavaScriptProxyOptions.Value; + } + public string CreateScript(ApplicationApiDescriptionModel model) { var script = new StringBuilder(); @@ -26,10 +34,16 @@ namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery script.AppendLine("/* This file is automatically generated by ABP framework to use MVC Controllers from javascript. */"); script.AppendLine(); - foreach (var module in model.Modules.Values) + foreach (var module in model.Modules) { + if (!_dynamicJavaScriptProxyOptions.EnabledModules.Any(m => + module.Key.Equals(m, StringComparison.CurrentCultureIgnoreCase))) + { + continue; + } + script.AppendLine(); - AddModuleScript(script, module); + AddModuleScript(script, module.Value); } AddInitializedEventTrigger(script);