Code coverage report for 6to5/lib/6to5/transformation/transform.js

Statements: 78.26% (18 / 23)      Branches: 100% (2 / 2)      Functions: 75% (3 / 4)      Lines: 78.26% (18 / 23)      Ignored: none     

All files » 6to5/lib/6to5/transformation/ » transform.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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 1031   1 1 1 1   1 400 399     1                 1 1602 52 52 1         1   1                     1                                                                                                                 40    
module.exports = transform;
 
var Transformer = require("./transformer");
var File        = require("../file");
var util        = require("../util");
var _           = require("lodash");
 
function transform(code, opts) {
  var file = new File(opts);
  return file.parse(code);
}
 
transform.fromAst = function (ast, code, opts) {
  ast = util.normaliseAst(ast);
 
  var file = new File(opts);
  file.addCode(code);
  file.transform(ast);
  return file.generate();
};
 
transform._ensureTransformerNames = function (type, keys) {
  for (var i in keys) {
    var key = keys[i];
    if (!_.has(transform.transformers, key)) {
      throw new ReferenceError("unknown transformer " + key + " specified in " + type);
    }
  }
};
 
transform.transformers = {};
 
transform.moduleFormatters = {
  commonStrict: require("./modules/common-strict"),
  umdStrict:    require("./modules/umd-strict"),
  amdStrict:    require("./modules/amd-strict"),
  common:       require("./modules/common"),
  system:       require("./modules/system"),
  ignore:       require("./modules/ignore"),
  amd:          require("./modules/amd"),
  umd:          require("./modules/umd")
};
 
_.each({
  specNoForInOfAssignment:   require("./transformers/spec-no-for-in-of-assignment"),
  specSetters:               require("./transformers/spec-setters"),
 
  // playground
  methodBinding:             require("./transformers/playground-method-binding"),
  memoizationOperator:       require("./transformers/playground-memoization-operator"),
  objectGetterMemoization:   require("./transformers/playground-object-getter-memoization"),
 
  asyncToGenerator:          require("./transformers/optional-async-to-generator"),
  bluebirdCoroutines:        require("./transformers/optional-bluebird-coroutines"),
 
  react:                     require("./transformers/react"),
  modules:                   require("./transformers/es6-modules"),
  propertyNameShorthand:     require("./transformers/es6-property-name-shorthand"),
  arrayComprehension:        require("./transformers/es7-array-comprehension"),
  generatorComprehension:    require("./transformers/es7-generator-comprehension"),
  arrowFunctions:            require("./transformers/es6-arrow-functions"),
  classes:                   require("./transformers/es6-classes"),
 
  objectSpread:              require("./transformers/es7-object-spread"),
  exponentiationOperator:    require("./transformers/es7-exponentiation-operator"),
  spread:                    require("./transformers/es6-spread"),
  templateLiterals:          require("./transformers/es6-template-literals"),
  propertyMethodAssignment:  require("./transformers/es6-property-method-assignment"),
  computedPropertyNames:     require("./transformers/es6-computed-property-names"),
  destructuring:             require("./transformers/es6-destructuring"),
  defaultParameters:         require("./transformers/es6-default-parameters"),
  forOf:                     require("./transformers/es6-for-of"),
  unicodeRegex:              require("./transformers/es6-unicode-regex"),
  abstractReferences:        require("./transformers/es7-abstract-references"),
 
  constants:                 require("./transformers/es6-constants"),
  letScoping:                require("./transformers/es6-let-scoping"),
 
  _blockHoist:               require("./transformers/_block-hoist"),
 
  generators:                require("./transformers/es6-generators"),
  restParameters:            require("./transformers/es6-rest-parameters"),
 
  protoToAssign:             require("./transformers/optional-proto-to-assign"),
 
  _declarations:             require("./transformers/_declarations"),
 
  // wrap up
  useStrict:                 require("./transformers/use-strict"),
  _aliasFunctions:           require("./transformers/_alias-functions"),
  _moduleFormatter:          require("./transformers/_module-formatter"),
 
  typeofSymbol:              require("./transformers/optional-typeof-symbol"),
  coreAliasing:              require("./transformers/optional-core-aliasing"),
  undefinedToVoid:           require("./transformers/optional-undefined-to-void"),
 
  // spec
  specPropertyLiterals:         require("./transformers/spec-property-literals"),
  specMemberExpressionLiterals: require("./transformers/spec-member-expression-literals")
}, function (transformer, key) {
  transform.transformers[key] = new Transformer(key, transformer);
});