feat(dart): Use ts2dart for transpilation in Karma Dart.
This commit is contained in:
35
tools/transpiler/karma-ts2dart-preprocessor.js
Normal file
35
tools/transpiler/karma-ts2dart-preprocessor.js
Normal file
@ -0,0 +1,35 @@
|
||||
// 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();
|
||||
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'];
|
Reference in New Issue
Block a user