using System.Web.Mvc; using System.Web.UI; using ClientDependency.Core; using ClientDependency.Core.CompositeFiles; namespace Umbraco.Web.Mvc { /// /// Minifies the result for the JavaScriptResult /// /// /// Only minifies in release mode /// public class MinifyJavaScriptResultAttribute : ActionFilterAttribute { /// /// Minify the result if in release mode /// /// public override void OnResultExecuting(ResultExecutingContext filterContext) { base.OnResultExecuting(filterContext); if (filterContext.Result == null) return; var jsResult = filterContext.Result as JavaScriptResult; if (jsResult == null) return; if (filterContext.HttpContext.IsDebuggingEnabled) return; //minify the result var result = jsResult.Script; var minifier = new JSMin(); var minified = minifier.Minify(result); jsResult.Script = minified; } } }