From eaf83ac603838c9ed81ae170d1f56cde806a52ce Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Jun 2018 11:43:14 +0300 Subject: [PATCH] Refactor bundling. --- .../TagHelpers/AbpBundleItemTagHelper.cs | 8 ++-- .../Bundling/TagHelpers/AbpScriptTagHelper.cs | 5 +++ .../Bundling/TagHelpers/AbpStyleTagHelper.cs | 5 +++ .../BundleTagHelperContributorTypeItem.cs | 26 +++++++++++++ .../TagHelpers/BundleTagHelperFileItem.cs | 25 +++++++++++++ .../TagHelpers/BundleTagHelperItem.cs | 37 ++----------------- 6 files changed, 69 insertions(+), 37 deletions(-) create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperContributorTypeItem.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperFileItem.cs diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelper.cs index e0421e26ba..ae0361eeac 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelper.cs @@ -33,7 +33,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { return Src .RemovePreFix("/") - .RemovePostFix(StringComparison.OrdinalIgnoreCase, ".js") + .RemovePostFix(StringComparison.OrdinalIgnoreCase, "." + GetFileExtension()) .Replace("/", "."); } @@ -44,15 +44,17 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { if (Type != null) { - return new BundleTagHelperItem(Type); + return new BundleTagHelperContributorTypeItem(Type); } if (Src != null) { - return new BundleTagHelperItem(Src); + return new BundleTagHelperFileItem(Src); } throw new AbpException("abp-script tag helper requires to set either src or type!"); } + + protected abstract string GetFileExtension(); } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs index 645f2cfdd8..96f8fcd81e 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs @@ -10,5 +10,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { } + + protected override string GetFileExtension() + { + return "js"; + } } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs index 0910206a1f..f699812192 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs @@ -10,5 +10,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { } + + protected override string GetFileExtension() + { + return "css"; + } } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperContributorTypeItem.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperContributorTypeItem.cs new file mode 100644 index 0000000000..c24c86c04c --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperContributorTypeItem.cs @@ -0,0 +1,26 @@ +using System; +using JetBrains.Annotations; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers +{ + public class BundleTagHelperContributorTypeItem : BundleTagHelperItem + { + [NotNull] + public Type Type { get; } + + public BundleTagHelperContributorTypeItem([NotNull] Type type) + { + Type = Check.NotNull(type, nameof(type)); + } + + public override string ToString() + { + return Type.FullName; + } + + public override void AddToConfiguration(BundleConfiguration configuration) + { + configuration.AddContributors(Type); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperFileItem.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperFileItem.cs new file mode 100644 index 0000000000..bd87c3db5f --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperFileItem.cs @@ -0,0 +1,25 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers +{ + public class BundleTagHelperFileItem : BundleTagHelperItem + { + [NotNull] + public string File { get; } + + public BundleTagHelperFileItem([NotNull] string file) + { + File = Check.NotNull(file, nameof(file)); + } + + public override string ToString() + { + return File; + } + + public override void AddToConfiguration(BundleConfiguration configuration) + { + configuration.AddFiles(File); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperItem.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperItem.cs index 6c36320f63..fb6bd6260d 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperItem.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/BundleTagHelperItem.cs @@ -1,38 +1,7 @@ -using System; - -namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers +namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { - public class BundleTagHelperItem + public abstract class BundleTagHelperItem { - public string File { get; } - - public Type Type { get; } - - public BundleTagHelperItem(string file) - { - File = file; - } - - public BundleTagHelperItem(Type type) - { - Type = type; - } - - public override string ToString() - { - return File ?? Type.FullName ?? "?"; - } - - public void AddToConfiguration(BundleConfiguration configuration) - { - if (File != null) - { - configuration.AddFiles(File); - } - else if (Type != null) - { - configuration.AddContributors(Type); - } - } + public abstract void AddToConfiguration(BundleConfiguration configuration); } } \ No newline at end of file