/// <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); }
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; }
/// <summary> /// Constructs a instance of the remote JS compilation options /// </summary> public RemoteJsCompilationOptions() { ExcludeDefaultExterns = false; Language = LanguageSpec.EcmaScript3; LanguageOutput = LanguageSpec.None; }