Code coverage report for 6to5/file.js

Statements: 100% (40 / 40)      Branches: 90% (9 / 10)      Functions: 100% (7 / 7)      Lines: 100% (39 / 39)      Ignored: none     

All files » 6to5/ » file.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 771   1 1 1   1 141 141 140     1 141   141               141         141 141   140     1   140   140   140 139       1 139   139 139   139 2394     131   131 1     131 131   131     1 110 110   110 110 110 110    
module.exports = File;
 
var transform = require("./transform");
var util      = require("./util");
var _         = require("lodash");
 
function File(opts) {
  this.uids = {};
  this.opts = File.normaliseOptions(opts);
  this.ast  = {};
}
 
File.normaliseOptions = function (opts) {
  opts = opts || {};
 
  _.defaults(opts, {
    blacklist: [],
    whitelist: [],
    sourceMap: false,
    filename:  "unknown",
    format:    {}
  });
 
  _.defaults(opts, {
    sourceFileName: opts.filename,
    sourceMapName:  opts.filename
  });
 
  transform._ensureTransformerNames("blacklist", opts.blacklist);
  transform._ensureTransformerNames("whitelist", opts.whitelist);
 
  return opts;
};
 
File.prototype.parse = function (code) {
  // remove shebang
  code = code.replace(/^\#\!.*/, "");
 
  var self = this;
 
  return util.parse(this.opts, code, function (tree) {
    return self.transform(tree);
  });
};
 
File.prototype.transform = function (ast) {
  this.ast = ast;
 
  var self = this;
  var opts = this.opts;
 
  _.each(transform.transformers, function (transformer) {
    transformer.transform(self);
  });
 
  var result = util.generate(ast, opts);
 
  if (opts.sourceMap === "inline") {
    result.code += "\n" + util.sourceMapToComment(result.map);
  }
 
  result.map = result.map || null;
  result.ast = ast;
 
  return result;
};
 
File.prototype.generateUid = function (name) {
  var uids = this.uids;
  var i = uids[name] || 1;
 
  var id = name;
  if (i > 1) id += i;
  uids[name] = i + 1;
  return "_" + id;
};