示例#1
0
 /**
  * Compiles TypeScript code into Closure-compiler-ready JS.
  */
 function toClosureJS(options, fileNames, settings, writeFile) {
     var compilerHost = ts.createCompilerHost(options);
     var program = ts.createProgram(fileNames, options, compilerHost);
     var transformerHost = {
         shouldSkipTsickleProcessing: function (fileName) {
             return fileNames.indexOf(fileName) === -1;
         },
         shouldIgnoreWarningsForPath: function (fileName) { return false; },
         pathToModuleName: cliSupport.pathToModuleName,
         fileNameToModuleId: function (fileName) { return fileName; },
         es5Mode: true,
         googmodule: true,
         prelude: '',
         transformDecorators: true,
         transformTypesToClosure: true,
         typeBlackListPaths: new Set(),
         untyped: false,
         logWarning: function (warning) { return console.error(tsickle.formatDiagnostics([warning])); },
         options: options,
         host: compilerHost,
     };
     var diagnostics = ts.getPreEmitDiagnostics(program);
     if (diagnostics.length > 0) {
         return {
             diagnostics: diagnostics,
             modulesManifest: new tsickle_1.ModulesManifest(),
             externs: {},
             emitSkipped: true,
             emittedFiles: [],
         };
     }
     return tsickle.emitWithTsickle(program, transformerHost, compilerHost, options, undefined, writeFile);
 }
示例#2
0
 /**
  * Compiles TypeScript code into Closure-compiler-ready JS.
  */
 function toClosureJS(options, fileNames, settings, writeFile) {
     // Use absolute paths to determine what files to process since files may be imported using
     // relative or absolute paths
     var absoluteFileNames = fileNames.map(function (i) { return path.resolve(i); });
     var compilerHost = ts.createCompilerHost(options);
     var program = ts.createProgram(fileNames, options, compilerHost);
     var filesToProcess = new Set(absoluteFileNames);
     var rootModulePath = options.rootDir || util_1.getCommonParentDirectory(absoluteFileNames);
     var transformerHost = {
         shouldSkipTsickleProcessing: function (fileName) {
             return !filesToProcess.has(path.resolve(fileName));
         },
         shouldIgnoreWarningsForPath: function (fileName) { return false; },
         pathToModuleName: cliSupport.pathToModuleName.bind(null, rootModulePath),
         fileNameToModuleId: function (fileName) { return path.relative(rootModulePath, fileName); },
         es5Mode: true,
         googmodule: true,
         transformDecorators: true,
         transformTypesToClosure: true,
         typeBlackListPaths: new Set(),
         disableAutoQuoting: settings.disableAutoQuoting,
         untyped: false,
         logWarning: function (warning) { return console.error(ts.formatDiagnostics([warning], compilerHost)); },
         options: options,
         host: compilerHost,
     };
     var diagnostics = ts.getPreEmitDiagnostics(program);
     if (diagnostics.length > 0) {
         return {
             diagnostics: diagnostics,
             modulesManifest: new tsickle_1.ModulesManifest(),
             externs: {},
             emitSkipped: true,
             emittedFiles: [],
         };
     }
     return tsickle.emitWithTsickle(program, transformerHost, compilerHost, options, undefined, writeFile);
 }