Skip to content

Commit 0448563

Browse files
authored
Merge pull request #23175 from abpframework/BundleContributorCollection
Add methods to remove bundle files by name or predicate
2 parents 61147cb + f767891 commit 0448563

File tree

3 files changed

+56
-1
lines changed

3 files changed

+56
-1
lines changed

framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationExtensions.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,18 @@ public static BundleConfiguration AddExternalFiles(this BundleConfiguration bund
2323
return bundleConfiguration;
2424
}
2525

26+
public static BundleConfiguration RemoveFiles(this BundleConfiguration bundleConfiguration, params string[] files)
27+
{
28+
bundleConfiguration.Contributors.RemoveBundleFile(files.ToArray());
29+
return bundleConfiguration;
30+
}
31+
32+
public static BundleConfiguration RemoveFiles(this BundleConfiguration bundleConfiguration, Func<string, bool> predicate)
33+
{
34+
bundleConfiguration.Contributors.RemoveBundleFile(predicate);
35+
return bundleConfiguration;
36+
}
37+
2638
public static BundleConfiguration AddContributors(this BundleConfiguration bundleConfiguration, params IBundleContributor[] contributors)
2739
{
2840
Check.NotNull(contributors, nameof(contributors));

framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleContributorCollection.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,36 @@ public void Remove<TContributor>(bool includeDependencies = false)
7676
}
7777
}
7878

79+
public void RemoveBundleFile(string fileName)
80+
{
81+
RemoveBundleFile([fileName]);
82+
}
83+
84+
public void RemoveBundleFile(string[] fileNames)
85+
{
86+
var contributors = _contributors
87+
.Where(x => x is BundleFileContributor bundleContributor &&
88+
bundleContributor.Files.Any(f => fileNames.Any(name => name.Equals(f.FileName, StringComparison.OrdinalIgnoreCase))))
89+
.Cast<BundleFileContributor>();
90+
foreach (var contributor in contributors)
91+
{
92+
contributor.Files.RemoveAll(x => fileNames.Any(name => name.Equals(x.FileName, StringComparison.OrdinalIgnoreCase)));
93+
}
94+
}
95+
96+
public void RemoveBundleFile(Func<string, bool> predicate)
97+
{
98+
var contributors = _contributors
99+
.Where(x => x is BundleFileContributor bundleContributor &&
100+
bundleContributor.Files.Any(f => predicate(f.FileName)))
101+
.Cast<BundleFileContributor>();
102+
103+
foreach (var contributor in contributors)
104+
{
105+
contributor.Files.RemoveAll(x => predicate(x.FileName));
106+
}
107+
}
108+
79109
public IReadOnlyList<IBundleContributor> GetAll()
80110
{
81111
return _contributors.ToImmutableList();

framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleContributorCollectionExtensions.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling;
1+
using System;
2+
using System.Linq;
3+
4+
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling;
25

36
public static class BundleContributorCollectionExtensions
47
{
@@ -16,4 +19,14 @@ public static void AddExternalFiles(this BundleContributorCollection contributor
1619
{
1720
contributors.Add(new BundleFileContributor(files));
1821
}
22+
23+
public static void RemoveFile(this BundleContributorCollection contributors, params string[] files)
24+
{
25+
contributors.RemoveBundleFile(files.ToArray());
26+
}
27+
28+
public static void RemoveFile(this BundleContributorCollection contributors, Func<string, bool> predicate)
29+
{
30+
contributors.RemoveBundleFile(predicate);
31+
}
1932
}

0 commit comments

Comments
 (0)