/// <summary>
		/// Constructs a instance of Closure Remote JS-minifier
		/// </summary>
		/// <param name="virtualFileSystemWrapper">Virtual file system wrapper</param>
		/// <param name="closureConfig">Configuration settings of Closure Minifier</param>
		public ClosureRemoteJsMinifier(IVirtualFileSystemWrapper virtualFileSystemWrapper,
			ClosureSettings closureConfig)
			: base(virtualFileSystemWrapper, closureConfig)
		{
			RemoteJsMinifierSettings remoteJsMinifierConfig = closureConfig.Js.Remote;
			MapCommonSettings(this, remoteJsMinifierConfig);
			ClosureCompilerServiceApiUrl = remoteJsMinifierConfig.ClosureCompilerServiceApiUrl;
			ExcludeDefaultExterns = remoteJsMinifierConfig.ExcludeDefaultExterns;
			Language = remoteJsMinifierConfig.Language;
		}
Пример #2
0
        /// <summary>
        /// Constructs a instance of Closure Local JS minifier
        /// </summary>
        /// <param name="virtualFileSystemWrapper">Virtual file system wrapper</param>
        /// <param name="closureConfig">Configuration settings of Closure Minifier</param>
        /// <param name="tempFilesDirectoryPath">Absolute path to directory that contains temporary files</param>
        public ClosureLocalJsMinifier(IVirtualFileSystemWrapper virtualFileSystemWrapper,
                                      ClosureSettings closureConfig,
                                      string tempFilesDirectoryPath)
            : base(virtualFileSystemWrapper, closureConfig)
        {
            _tempFilesDirectoryPath = tempFilesDirectoryPath;

            LocalJsMinifierSettings localJsMinifierConfig = closureConfig.Js.Local;

            MapCommonSettings(this, localJsMinifierConfig);
            AcceptConstKeyword             = localJsMinifierConfig.AcceptConstKeyword;
            AllowEs6Output                 = localJsMinifierConfig.AllowEs6Output;
            AngularPass                    = localJsMinifierConfig.AngularPass;
            ClosureCompilerApplicationPath = localJsMinifierConfig.ClosureCompilerApplicationPath;
            DefinitionList                 = localJsMinifierConfig.DefinitionList;
            ErrorList = localJsMinifierConfig.ErrorList;
            ExportLocalPropertyDefinitions = localJsMinifierConfig.ExportLocalPropertyDefinitions;
            ExtraAnnotationNameList        = localJsMinifierConfig.ExtraAnnotationNameList;
            GenerateExports          = localJsMinifierConfig.GenerateExports;
            JavaVirtualMachinePath   = localJsMinifierConfig.JavaVirtualMachinePath;
            LanguageInput            = localJsMinifierConfig.LanguageInput;
            LanguageOutput           = localJsMinifierConfig.LanguageOutput;
            ProcessClosurePrimitives = localJsMinifierConfig.ProcessClosurePrimitives;
            ProcessJqueryPrimitives  = localJsMinifierConfig.ProcessJqueryPrimitives;
            SingleQuotes             = localJsMinifierConfig.SingleQuotes;
            ThirdParty              = localJsMinifierConfig.ThirdParty;
            TranspileOnly           = localJsMinifierConfig.TranspileOnly;
            TurnOffWarningClassList = localJsMinifierConfig.TurnOffWarningClassList;
            UseOnlyCustomExterns    = localJsMinifierConfig.UseOnlyCustomExterns;
            WarningList             = localJsMinifierConfig.WarningList;

            string javaVirtualMachinePath = JavaVirtualMachinePath;

            if (string.IsNullOrWhiteSpace(javaVirtualMachinePath))
            {
                throw new EmptyValueException(Strings.Minifiers_JavaVirtualMachinePathNotSpecified);
            }
            if (!File.Exists(javaVirtualMachinePath))
            {
                throw new FileNotFoundException(
                          string.Format(Strings.Minifiers_JavaVirtualMachineNotFound, javaVirtualMachinePath));
            }

            string closureCompilerApplicationPath = ClosureCompilerApplicationPath;

            if (string.IsNullOrWhiteSpace(closureCompilerApplicationPath))
            {
                throw new EmptyValueException(Strings.Minifiers_ClosureCompilerApplicationPathNotSpecified);
            }
            if (!File.Exists(closureCompilerApplicationPath))
            {
                throw new FileNotFoundException(
                          string.Format(Strings.Minifiers_ClosureCompilerApplicationNotFound, closureCompilerApplicationPath));
            }
        }
        /// <summary>
        /// Constructs a instance of Closure Remote JS minifier
        /// </summary>
        /// <param name="virtualFileSystemWrapper">Virtual file system wrapper</param>
        /// <param name="closureConfig">Configuration settings of Closure Minifier</param>
        public ClosureRemoteJsMinifier(IVirtualFileSystemWrapper virtualFileSystemWrapper,
                                       ClosureSettings closureConfig)
            : base(virtualFileSystemWrapper, closureConfig)
        {
            RemoteJsMinifierSettings remoteJsMinifierConfig = closureConfig.Js.Remote;

            MapCommonSettings(this, remoteJsMinifierConfig);
            ClosureCompilerServiceApiUrl = remoteJsMinifierConfig.ClosureCompilerServiceApiUrl;
            ExcludeDefaultExterns        = remoteJsMinifierConfig.ExcludeDefaultExterns;
            Language = remoteJsMinifierConfig.Language;
        }
        /// <summary>
        /// Constructs a instance of Closure JS minifier
        /// </summary>
        /// <param name="virtualFileSystemWrapper">Virtual file system wrapper</param>
        /// <param name="closureConfig">Configuration settings of Closure Minifier</param>
        protected ClosureJsMinifierBase(IVirtualFileSystemWrapper virtualFileSystemWrapper,
                                        ClosureSettings closureConfig)
        {
            _virtualFileSystemWrapper = virtualFileSystemWrapper;

            CommonExternsFilePaths = closureConfig.Js.CommonExternsFiles
                                     .Cast <CommonJsExternsFileRegistration>()
                                     .Select(f => f.ExternsFilePath)
                                     .ToList()
            ;
            ExternsFileMappings = closureConfig.Js.ExternMappings
                                  .Cast <JsExternsFileMappingRegistration>()
                                  .Select(m =>
                                          new JsExternsFileMapping(m.ScriptFilePath,
                                                                   Utils.ConvertToStringCollection(m.ExternsFilePaths, ',',
                                                                                                   trimItemValues: true, removeEmptyItems: true).ToList()
                                                                   )
                                          )
                                  .ToList()
            ;
        }
		/// <summary>
		/// Constructs a instance of Closure Local JS-minifier
		/// </summary>
		/// <param name="virtualFileSystemWrapper">Virtual file system wrapper</param>
		/// <param name="closureConfig">Configuration settings of Closure Minifier</param>
		/// <param name="tempFilesDirectoryPath">Absolute path to directory that contains temporary files</param>
		public ClosureLocalJsMinifier(IVirtualFileSystemWrapper virtualFileSystemWrapper,
			ClosureSettings closureConfig,
			string tempFilesDirectoryPath)
			: base(virtualFileSystemWrapper, closureConfig)
		{
			_tempFilesDirectoryPath = tempFilesDirectoryPath;

			LocalJsMinifierSettings localJsMinifierConfig = closureConfig.Js.Local;
			MapCommonSettings(this, localJsMinifierConfig);
			AcceptConstKeyword = localJsMinifierConfig.AcceptConstKeyword;
			AllowEs6Output = localJsMinifierConfig.AllowEs6Output;
			AngularPass = localJsMinifierConfig.AngularPass;
			ClosureCompilerApplicationPath = localJsMinifierConfig.ClosureCompilerApplicationPath;
			DefinitionList = localJsMinifierConfig.DefinitionList;
			ErrorList = localJsMinifierConfig.ErrorList;
			ExportLocalPropertyDefinitions = localJsMinifierConfig.ExportLocalPropertyDefinitions;
			ExtraAnnotationNameList = localJsMinifierConfig.ExtraAnnotationNameList;
			GenerateExports = localJsMinifierConfig.GenerateExports;
			JavaVirtualMachinePath = localJsMinifierConfig.JavaVirtualMachinePath;
			LanguageInput = localJsMinifierConfig.LanguageInput;
			LanguageOutput = localJsMinifierConfig.LanguageOutput;
			ProcessClosurePrimitives = localJsMinifierConfig.ProcessClosurePrimitives;
			ProcessJqueryPrimitives = localJsMinifierConfig.ProcessJqueryPrimitives;
			SingleQuotes = localJsMinifierConfig.SingleQuotes;
			ThirdParty = localJsMinifierConfig.ThirdParty;
			TranspileOnly = localJsMinifierConfig.TranspileOnly;
			TurnOffWarningClassList = localJsMinifierConfig.TurnOffWarningClassList;
			UseOnlyCustomExterns = localJsMinifierConfig.UseOnlyCustomExterns;
			WarningList = localJsMinifierConfig.WarningList;

			string javaVirtualMachinePath = JavaVirtualMachinePath;
			if (string.IsNullOrWhiteSpace(javaVirtualMachinePath))
			{
				throw new EmptyValueException(Strings.Minifiers_JavaVirtualMachinePathNotSpecified);
			}
			if (!File.Exists(javaVirtualMachinePath))
			{
				throw new FileNotFoundException(
					string.Format(Strings.Minifiers_JavaVirtualMachineNotFound, javaVirtualMachinePath));
			}

			string closureCompilerApplicationPath = ClosureCompilerApplicationPath;
			if (string.IsNullOrWhiteSpace(closureCompilerApplicationPath))
			{
				throw new EmptyValueException(Strings.Minifiers_ClosureCompilerApplicationPathNotSpecified);
			}
			if (!File.Exists(closureCompilerApplicationPath))
			{
				throw new FileNotFoundException(
					string.Format(Strings.Minifiers_ClosureCompilerApplicationNotFound, closureCompilerApplicationPath));
			}
		}
		/// <summary>
		/// Constructs a instance of Closure JS-minifier
		/// </summary>
		/// <param name="virtualFileSystemWrapper">Virtual file system wrapper</param>
		/// <param name="closureConfig">Configuration settings of Closure Minifier</param>
		protected ClosureJsMinifierBase(IVirtualFileSystemWrapper virtualFileSystemWrapper,
			ClosureSettings closureConfig)
		{
			_virtualFileSystemWrapper = virtualFileSystemWrapper;

			CommonExternsFilePaths = closureConfig.Js.CommonExternsFiles
				.Cast<CommonJsExternsFileRegistration>()
				.Select(f => f.ExternsFilePath)
				.ToList()
				;
			ExternsFileMappings = closureConfig.Js.ExternMappings
				.Cast<JsExternsFileMappingRegistration>()
				.Select(m =>
					new JsExternsFileMapping(m.ScriptFilePath,
						Utils.ConvertToStringCollection(m.ExternsFilePaths, ',',
							trimItemValues: true, removeEmptyItems: true).ToList()
						)
				)
				.ToList()
				;
		}