private void InnerMinify(IAsset asset, DependencyCollection commonExternsDependencies, ClosureRemoteJsCompiler closureCompiler) { string newContent; string assetUrl = asset.Url; DependencyCollection assetExternsDependencies = GetAssetExternsDependencies(asset); try { newContent = closureCompiler.Compile(asset.Content, assetUrl, assetExternsDependencies); } catch (ClosureCompilationException e) { throw new AssetMinificationException( string.Format(CoreStrings.Minifiers_MinificationSyntaxError, CODE_TYPE, assetUrl, MINIFIER_NAME, e.Message)); } catch (Exception e) { throw new AssetMinificationException( string.Format(CoreStrings.Minifiers_MinificationFailed, CODE_TYPE, assetUrl, MINIFIER_NAME, e.Message)); } asset.Content = newContent; asset.Minified = true; FillAssetVirtualPathDependencies(asset, commonExternsDependencies, assetExternsDependencies); }
/// <summary> /// Produces a code minifiction of JS assets by using Google Closure Compiler Service API /// </summary> /// <param name="assets">Set of JS assets</param> /// <returns>Set of JS assets with minified text content</returns> public override IList <IAsset> Minify(IList <IAsset> assets) { if (assets == null) { throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "assets"); } if (assets.Count == 0) { return(assets); } var assetsToProcessing = assets.Where(a => a.IsScript && !a.Minified).ToList(); if (assetsToProcessing.Count == 0) { return(assets); } if (string.IsNullOrWhiteSpace(ClosureCompilerServiceApiUrl)) { throw new EmptyValueException(Strings.Minifiers_ClosureCompilerServiceApiUrlNotSpecified); } DependencyCollection commonExternsDependencies = GetCommonExternsDependencies(); var closureCompiler = new ClosureRemoteJsCompiler(ClosureCompilerServiceApiUrl, commonExternsDependencies, CreateCompilationOptions()); foreach (var asset in assetsToProcessing) { InnerMinify(asset, commonExternsDependencies, closureCompiler); } return(assets); }
/// <summary> /// Produces a code minifiction of JS asset by using Google Closure Compiler Service API /// </summary> /// <param name="asset">JS asset</param> /// <returns>JS asset with minified text content</returns> public override IAsset Minify(IAsset asset) { if (asset == null) { throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "asset"); } if (asset.Minified) { return(asset); } DependencyCollection commonExternsDependencies = GetCommonExternsDependencies(); var closureCompiler = new ClosureRemoteJsCompiler(ClosureCompilerServiceApiUrl, commonExternsDependencies, CreateCompilationOptions()); InnerMinify(asset, commonExternsDependencies, closureCompiler); return(asset); }
/// <summary> /// Produces a code minifiction of JS-asset by using Google Closure Compiler Service API /// </summary> /// <param name="asset">JS-asset</param> /// <returns>JS-asset with minified text content</returns> public override IAsset Minify(IAsset asset) { if (asset == null) { throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "asset"); } if (asset.Minified) { return asset; } DependencyCollection commonExternsDependencies = GetCommonExternsDependencies(); var closureCompiler = new ClosureRemoteJsCompiler(ClosureCompilerServiceApiUrl, commonExternsDependencies, CreateCompilationOptions()); InnerMinify(asset, commonExternsDependencies, closureCompiler); return asset; }
private void InnerMinify(IAsset asset, DependencyCollection commonExternsDependencies, ClosureRemoteJsCompiler closureCompiler) { string newContent; string assetUrl = asset.Url; DependencyCollection assetExternsDependencies = GetAssetExternsDependencies(asset); try { newContent = closureCompiler.Compile(asset.Content, assetUrl, assetExternsDependencies); } catch (ClosureCompilingException e) { throw new AssetMinificationException( string.Format(CoreStrings.Minifiers_MinificationSyntaxError, CODE_TYPE, assetUrl, MINIFIER_NAME, e.Message)); } catch (Exception e) { throw new AssetMinificationException( string.Format(CoreStrings.Minifiers_MinificationFailed, CODE_TYPE, assetUrl, MINIFIER_NAME, e.Message)); } asset.Content = newContent; asset.Minified = true; FillAssetVirtualPathDependencies(asset, commonExternsDependencies, assetExternsDependencies); }
/// <summary> /// Produces a code minifiction of JS-assets by using Google Closure Compiler Service API /// </summary> /// <param name="assets">Set of JS-assets</param> /// <returns>Set of JS-assets with minified text content</returns> public override IList<IAsset> Minify(IList<IAsset> assets) { if (assets == null) { throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "assets"); } if (assets.Count == 0) { return assets; } var assetsToProcessing = assets.Where(a => a.IsScript && !a.Minified).ToList(); if (assetsToProcessing.Count == 0) { return assets; } if (string.IsNullOrWhiteSpace(ClosureCompilerServiceApiUrl)) { throw new EmptyValueException(Strings.Minifiers_ClosureCompilerServiceApiUrlNotSpecified); } DependencyCollection commonExternsDependencies = GetCommonExternsDependencies(); var closureCompiler = new ClosureRemoteJsCompiler(ClosureCompilerServiceApiUrl, commonExternsDependencies, CreateCompilationOptions()); foreach (var asset in assetsToProcessing) { InnerMinify(asset, commonExternsDependencies, closureCompiler); } return assets; }