/// <summary> /// Initializes a new instance of the <see cref="JavaScriptCompiler"/> class. /// </summary> /// <param name="compilerOptions"> /// The compiler options. /// </param> /// <param name="compilationLevelHelper"> /// The compilation Level Helper. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when argument is null /// </exception> public JavaScriptCompiler(CompilerOptions compilerOptions, ICompilationLevelHelper compilationLevelHelper) { Guard.ArgumentNotNull(() => compilerOptions, compilerOptions); Guard.ArgumentNotNull(() => compilationLevelHelper, compilationLevelHelper); this.compilerOptions = compilerOptions; this.compilationLevelHelper = compilationLevelHelper; }
/// <summary> /// Run the compilation /// </summary> /// <returns> /// The <see cref="CompilerResults" />. /// </returns> public ICompilerResults Run() { Log.Info(string.Format("Requesting compile of {0} from {1}...", this.fileName, this.compilerUrl)); Log.Info(string.Empty); // Setup compiler dependencies var inputStream = new StreamReader(this.fileName); var request = WebRequest.Create(this.compilerUrl); var compilerOptions = new CompilerOptions(inputStream, request, this.compilationLevel); var compilationLevelHelper = new CompilationLevelHelper(); var compiler = new JavaScriptCompiler(compilerOptions, compilationLevelHelper); var responseFromServer = compiler.Compile(); var deserializer = new ResultsDeserializer(new JavaScriptSerializer()); var compilerResults = deserializer.DeserializeCompilerResults(responseFromServer, this.fileName); compilerResults.SupressWarningsFrom(this.suppressedWarnings); compilerResults.Emit(this.resultsEmitters); return compilerResults; }