Skip to content

Instantly share code, notes, and snippets.

@jarek-foksa
Created December 18, 2013 17:32
Show Gist options
  • Select an option

  • Save jarek-foksa/8026452 to your computer and use it in GitHub Desktop.

Select an option

Save jarek-foksa/8026452 to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
var fs = require('fs');
var path = require('path');
var traceur = require('./traceur-compiler');
traceur.options.sourceMaps = true;
traceur.options.deferredFunctions = true;
traceur.options.blockBinding = true;
traceur.options.modules = true; // 'nodejs'
['a.js', , 'b.js'].forEach( function(relPath) {
var BASE_PATH = path.resolve(__dirname);
var fileName = relPath.substring(relPath.lastIndexOf('/') + 1, relPath.length);
var fullPath = BASE_PATH + '/' + relPath;
var content = fs.readFileSync(fullPath, 'utf-8');
var ErrorReporter = traceur.util.ErrorReporter;
var SourceFile = traceur.syntax.SourceFile;
var Parser = traceur.syntax.Parser;
var FromOptionsTransformer = traceur.codegeneration.FromOptionsTransformer;
var TreeWriter = traceur.outputgeneration.TreeWriter;
var errorReporter = new ErrorReporter();
var sourceFile = new SourceFile(relPath, content);
var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({file: relPath});
var parser = new Parser(errorReporter, sourceFile);
var tree = parser.parseModule();
tree.url = relPath;
var transformer = new FromOptionsTransformer(errorReporter);
var transformed = transformer.transform(tree);
var options = {sourceMapGenerator: sourceMapGenerator};
var contentAfter = TreeWriter.write(transformed, options);
var sourceMap = options.sourceMap;
//contentAfter = 'module("./' + relPath.substring(0, relPath.length-3) + '", ' + contentAfter.substring(7, contentAfter.length);
fs.writeFileSync(BASE_PATH + '/' + 'es5-' + relPath, contentAfter, 'utf8');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment