Beispiel #1
0
        /// <summary>
        /// Actualizes a vendor prefixes in CSS assets by using Andrey Sitnik's Autoprefixer
        /// </summary>
        /// <param name="assets">Set of CSS assets</param>
        /// <returns>Set of processed CSS assets</returns>
        public override IList <IAsset> PostProcess(IList <IAsset> assets)
        {
            if (assets == null)
            {
                throw new ArgumentNullException(
                          nameof(assets),
                          string.Format(CoreStrings.Common_ArgumentIsNull, nameof(assets))
                          );
            }

            if (assets.Count == 0)
            {
                return(assets);
            }

            var assetsToProcessing = assets.Where(a => a.IsStylesheet).ToList();

            if (assetsToProcessing.Count == 0)
            {
                return(assets);
            }

            AutoprefixingOptions options = CreateAutoprefixingOptions();

            using (var cssAutoprefixer = new CssAutoprefixer(_createJsEngineInstance, _virtualFileSystemWrapper, options))
            {
                foreach (var asset in assetsToProcessing)
                {
                    InnerPostProcess(asset, cssAutoprefixer);
                }
            }

            return(assets);
        }
Beispiel #2
0
        private void InnerPostProcess(IAsset asset, CssAutoprefixer cssAutoprefixer)
        {
            string         newContent;
            string         assetUrl = asset.Url;
            IList <string> dependencies;

            try
            {
                AutoprefixingResult result = cssAutoprefixer.Process(asset.Content, asset.Url);
                newContent   = result.ProcessedContent;
                dependencies = result.IncludedFilePaths;
            }
            catch (CssAutoprefixingException e)
            {
                throw new AssetPostProcessingException(
                          string.Format(CoreStrings.PostProcessors_PostprocessingSyntaxError,
                                        CODE_TYPE, assetUrl, POSTPROCESSOR_NAME, e.Message));
            }
            catch (Exception e)
            {
                throw new AssetPostProcessingException(
                          string.Format(CoreStrings.PostProcessors_PostprocessingFailed,
                                        CODE_TYPE, assetUrl, POSTPROCESSOR_NAME, e.Message), e);
            }

            asset.Content = newContent;
            asset.VirtualPathDependencies = asset.VirtualPathDependencies.Union(dependencies).ToList();
        }
        /// <summary>
        /// Actualizes a vendor prefixes in CSS asset by using Andrey Sitnik's Autoprefixer
        /// </summary>
        /// <param name="asset">CSS asset</param>
        /// <returns>Processed CSS asset</returns>
        public override IAsset PostProcess(IAsset asset)
        {
            if (asset == null)
            {
                throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "asset");
            }

            AutoprefixingOptions options = CreateAutoprefixingOptions();

            using (var cssAutoprefixer = new CssAutoprefixer(_createJsEngineInstance, _virtualFileSystemWrapper, options))
            {
                InnerPostProcess(asset, cssAutoprefixer);
            }

            return(asset);
        }
Beispiel #4
0
        /// <summary>
        /// Actualizes a vendor prefixes in CSS asset by using Andrey Sitnik's Autoprefixer
        /// </summary>
        /// <param name="asset">CSS asset</param>
        /// <returns>Processed CSS asset</returns>
        public override IAsset PostProcess(IAsset asset)
        {
            if (asset == null)
            {
                throw new ArgumentNullException(
                          nameof(asset),
                          string.Format(CoreStrings.Common_ArgumentIsNull, nameof(asset))
                          );
            }

            AutoprefixingOptions options = CreateAutoprefixingOptions();

            using (var cssAutoprefixer = new CssAutoprefixer(_createJsEngineInstance, _virtualFileSystemWrapper, options))
            {
                InnerPostProcess(asset, cssAutoprefixer);
            }

            return(asset);
        }
		private void InnerPostProcess(IAsset asset, CssAutoprefixer cssAutoprefixer)
		{
			string newContent;
			string assetUrl = asset.Url;

			try
			{
				newContent = cssAutoprefixer.Process(asset.Content, asset.Url);
			}
			catch (CssAutoprefixingException e)
			{
				throw new AssetPostProcessingException(
					string.Format(CoreStrings.PostProcessors_PostprocessingSyntaxError,
						CODE_TYPE, assetUrl, POSTPROCESSOR_NAME, e.Message));
			}
			catch (Exception e)
			{
				throw new AssetPostProcessingException(
					string.Format(CoreStrings.PostProcessors_PostprocessingFailed,
						CODE_TYPE, assetUrl, POSTPROCESSOR_NAME, e.Message), e);
			}

			asset.Content = newContent;
		}
		/// <summary>
		/// Actualizes a vendor prefixes in CSS-assets by using Andrey Sitnik's Autoprefixer
		/// </summary>
		/// <param name="assets">Set of CSS-assets</param>
		/// <returns>Set of processed CSS-assets</returns>
		public override IList<IAsset> PostProcess(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.IsStylesheet).ToList();
			if (assetsToProcessing.Count == 0)
			{
				return assets;
			}

			AutoprefixingOptions options = CreateAutoprefixingOptions();

			using (var cssAutoprefixer = new CssAutoprefixer(_createJsEngineInstance, options))
			{
				foreach (var asset in assetsToProcessing)
				{
					InnerPostProcess(asset, cssAutoprefixer);
				}
			}

			return assets;
		}
		/// <summary>
		/// Actualizes a vendor prefixes in CSS-asset by using Andrey Sitnik's Autoprefixer
		/// </summary>
		/// <param name="asset">CSS-asset</param>
		/// <returns>Processed CSS-asset</returns>
		public override IAsset PostProcess(IAsset asset)
		{
			if (asset == null)
			{
				throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "asset");
			}

			AutoprefixingOptions options = CreateAutoprefixingOptions();

			using (var cssAutoprefixer = new CssAutoprefixer(_createJsEngineInstance, options))
			{
				InnerPostProcess(asset, cssAutoprefixer);
			}

			return asset;
		}