Example #1
0
        /// <summary>
        /// Converts a language spec enum value to code
        /// </summary>
        /// <param name="languageSpec">Language spec enum value</param>
        /// <returns>Language spec code</returns>
        internal static string ConvertLanguageSpecEnumValueToCode(LanguageSpec languageSpec)
        {
            string code;

            switch (languageSpec)
            {
            case LanguageSpec.EcmaScript3:
                code = "ECMASCRIPT3";
                break;

            case LanguageSpec.EcmaScript5:
                code = "ECMASCRIPT5";
                break;

            case LanguageSpec.EcmaScript5Strict:
                code = "ECMASCRIPT5_STRICT";
                break;

            default:
                throw new InvalidCastException(string.Format(CoreStrings.Common_EnumValueToCodeConversionFailed,
                                                             languageSpec.ToString(), typeof(LanguageSpec)));
            }

            return(code);
        }
		/// <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 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>
        /// Converts a compilation options to form items
        /// </summary>
        /// <param name="options">Compilation options</param>
        /// <returns>Form items</returns>
        private static IList <FormItem> ConvertCompilationOptionsToFormItems(RemoteJsCompilationOptions options)
        {
            int          severity       = options.Severity;
            LanguageSpec languageInput  = options.Language;
            LanguageSpec languageOutput = (options.LanguageOutput != LanguageSpec.None) ?
                                          options.LanguageOutput : languageInput;

            var formItems = new List <FormItem>();

            formItems.Add(new FormItem("output_format", "json"));
            formItems.Add(new FormItem("output_info", "compiled_code"));
            formItems.Add(new FormItem("output_info", "errors"));
            if (!string.IsNullOrWhiteSpace(options.Charset))
            {
                formItems.Add(new FormItem("charset", options.Charset));
            }
            formItems.Add(new FormItem("compilation_level", ConvertCompilationLevelEnumValueToCode(options.CompilationLevel)));
            formItems.Add(new FormItem("exclude_default_externs", options.ExcludeDefaultExterns.ToString().ToLowerInvariant()));
            if (languageInput != LanguageSpec.None)
            {
                formItems.Add(new FormItem("language", ConvertLanguageSpecEnumValueToCode(languageInput)));
            }
            if (languageOutput != LanguageSpec.None)
            {
                formItems.Add(new FormItem("language_out", ConvertLanguageSpecEnumValueToCode(languageOutput)));
            }
            if (options.PrettyPrint)
            {
                formItems.Add(new FormItem("formatting", "PRETTY_PRINT"));
            }
            formItems.Add(new FormItem("use_types_for_optimization", options.UseTypesForOptimization.ToString().ToLowerInvariant()));
            if (severity > 0)
            {
                formItems.Add(new FormItem("output_info", "warnings"));

                switch (severity)
                {
                case 1:
                    formItems.Add(new FormItem("warning_level", "QUIET"));
                    break;

                case 2:
                    formItems.Add(new FormItem("warning_level", "DEFAULT"));
                    break;

                case 3:
                    formItems.Add(new FormItem("warning_level", "VERBOSE"));
                    break;
                }
            }

            return(formItems);
        }
Example #5
0
        public LanguageSpecification(ILaunchSettingsProvider _launchSettingsProvider)
        {
            var languageSpecFile = _launchSettingsProvider.LaunchSettings.LanguageSpec;

            if (!File.Exists(languageSpecFile))
            {
                throw new FileNotFoundException();
            }

            var json = File.ReadAllText(languageSpecFile);

            _langSpec = JsonConvert.DeserializeObject <LanguageSpec>(json);
        }
		/// <summary>
		/// Constructs a instance of the remote JavaScript compilation options
		/// </summary>
		public RemoteJsCompilationOptions()
		{
			ExcludeDefaultExterns = false;
			Language = LanguageSpec.EcmaScript3;
		}
		/// <summary>
		/// Converts a language spec enum value to code
		/// </summary>
		/// <param name="languageSpec">Language spec enum value</param>
		/// <returns>Language spec code</returns>
		internal static string ConvertLanguageSpecEnumValueToCode(LanguageSpec languageSpec)
		{
			string code;

			switch (languageSpec)
			{
				case LanguageSpec.EcmaScript3:
					code = "ECMASCRIPT3";
					break;
				case LanguageSpec.EcmaScript5:
					code = "ECMASCRIPT5";
					break;
				case LanguageSpec.EcmaScript5Strict:
					code = "ECMASCRIPT5_STRICT";
					break;
				default:
					throw new InvalidCastException(string.Format(CoreStrings.Common_EnumValueToCodeConversionFailed,
						languageSpec.ToString(), typeof(LanguageSpec)));
			}

			return code;
		}
Example #8
0
 /// <summary>
 /// Constructs a instance of the remote JS compilation options
 /// </summary>
 public RemoteJsCompilationOptions()
 {
     ExcludeDefaultExterns = false;
     Language       = LanguageSpec.EcmaScript3;
     LanguageOutput = LanguageSpec.None;
 }