es6-arrow-function
Version:
Shorthand arrow functions compiled to ES5.
43 lines (34 loc) • 1.14 kB
JavaScript
/**
* We pull in example files from test/examples/*.js. Write your assertions in
* the file alongside the ES6 class "setup" code. The node `assert` library
* will already be in the context.
*/
Error.stackTraceLimit = 20;
var arrowFn = require('../lib');
var recast = require('recast');
var fs = require('fs');
var path = require('path');
var RESULTS = 'test/results';
if (!fs.existsSync(RESULTS)) {
fs.mkdirSync(RESULTS);
}
require('example-runner').runCLI(process.argv.slice(2), {
context: {
normalize: function(source) {
var ast = recast.parse(source);
return recast.prettyPrint(ast).code;
}
},
transform: function(source, testName, filename) {
var recastOptions = {
sourceFileName: filename,
sourceMapName: filename + '.map'
};
var ast = recast.parse(source, recastOptions);
ast = arrowFn.transform(ast);
var result = recast.print(ast, recastOptions);
fs.writeFileSync(path.join(RESULTS, testName + '.js'), result.code, 'utf8');
fs.writeFileSync(path.join(RESULTS, testName + '.js.map'), JSON.stringify(result.map), 'utf8');
return result.code;
}
});