fs.readFile(path.resolve(files_dir, file), "utf-8", function(err, src){ if(err) return next(err); console.log("testing: " + path.basename(file)); var out = generator(parser(src, {filename: file})); var expected = _.filter(src.split("\n"), function(line){ return line.trim().indexOf("//") !== 0; }).join("\n").trim(); if(out === expected){ console.log(" ...passed"); next(); }else{ console.log(); console.log(diff(expected, out, {n_surrounding: 3})); console.log(); console.log("testing: " + path.basename(file)); next(new Error("see diff")); } });
module.exports = function (input, options) { options = options || {} var src = _.isString(input) ? input : null var toLoc = src ? EStreeLoc(src, options.filepath) : _.noop var ast = src ? parser(src, options.parser_options) : input var compiled = compile(ast, { toLoc: toLoc }) var out = escodegen.generate({ 'loc': toLoc(0, src.length - 1), 'type': 'Program', 'body': compiled.body }, { format: { quotes: 'double', indent: { style: ' ' } }, sourceMap: true, sourceContent: src, sourceMapWithCode: true }) var r = { code: out.code, warnings: compiled.warnings } if (options.inline_source_map) { r.code += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(out.map.toString()) + '\n' } return r }