
Note: karma with dart is still not working because of how `karma-dart` loads `package:…` dependencies. Usage: ``` karma start karma-js.conf.js karma start karma-dart.conf.js ``` Make sure to set `DARTIUM_BIN` env variable. Refactors `js2dart`: - live outside of the traceur module (`tools/js2dart/index.js`) so it can be reused by gulp and karma - automatically build the sources in memory, so that `js2dart` can be used without running `gulp build` first - provide a way to specify the moduleName of a compilation run independently of the input filename. This helps error messages and source maps (not yet enabled) to report the correct file name Changes project setup: - add module `test_lib` that contains the primitives for tests (e.g. `describe`, `it`, …) - clean up some sources that had errors in them - module names in transpiled js and dart files don’t contain `lib`, `test` nor `src` any more (e.g. `di/di`).
38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
var js2dart = require('./index.js');
|
|
|
|
module.exports = {
|
|
'preprocessor:traceur': ['factory', createJs2DartPreprocessor]
|
|
};
|
|
|
|
function createJs2DartPreprocessor(logger, basePath, config) {
|
|
var log = logger.create('traceur');
|
|
|
|
return function(content, file, done) {
|
|
|
|
try {
|
|
var moduleName = config.resolveModuleName(file.originalPath);
|
|
if (config.transformPath) {
|
|
file.path = config.transformPath(file.originalPath);
|
|
}
|
|
done(null, js2dart.compile(config.options, {
|
|
inputPath: file.originalPath,
|
|
moduleName: moduleName
|
|
}, content));
|
|
} 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('TRACEUR COMPILE ERRORS\n' + errorString));
|
|
}
|
|
};
|
|
}
|
|
|
|
createJs2DartPreprocessor.$inject = ['logger', 'config.basePath', 'config.traceurPreprocessor'];
|