// Transpiles JavaScript and TypeScript code to Dart using ts2dart. var ts2dart = require('ts2dart'); var rundartpackage = require('../build/rundartpackage.js'); module.exports = { 'preprocessor:ts2dart': ['factory', createTs2DartPreprocessor] }; function createTs2DartPreprocessor(logger, basePath, config, emitter) { var log = logger.create('ts2dart'); return function(content, file, done) { try { var moduleName = config.resolveModuleName(file.originalPath); file.path = config.transformPath(file.originalPath); var transpiler = new ts2dart.Transpiler( {failFast: false, generateLibraryName: true, generateSourceMap: true}); var transpiledContent = transpiler.translateFile(file.originalPath, moduleName); // TODO(martinprobst): Source maps. done(null, transpiledContent); } catch (errors) { var errorString; if (errors.forEach) { errors.forEach(function(error) { log.error(error); }); errorString = errors.join('\n'); } else { log.error(errors); errorString = errors; } done(new Error('ts2dart compile errors:\n' + errorString)); } }; } createTs2DartPreprocessor .$inject = ['logger', 'config.basePath', 'config.ts2dartPreprocessor', 'emitter'];