UNPKG

babel-core

Version:

Turn ES6 code into readable vanilla ES5 with source maps

59 lines (47 loc) 1.56 kB
"use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; exports.toEsprimaToken = toEsprimaToken; exports.toEsprimaAST = toEsprimaAST; var traverse = _interopRequire(require("../traversal")); var tokTypes = require("acorn-babel").tokTypes; var t = _interopRequire(require("../types")); function toEsprimaToken(token) { var type = token.type; if (type === tokTypes.name) { token.type = "Identifier"; } else if (type === tokTypes.semi || type === tokTypes.comma || type === tokTypes.parenL || type === tokTypes.parenR || type === tokTypes.braceL || type === tokTypes.braceR) { token.type = "Punctuator"; token.value = type.type; } return token; } function toEsprimaAST(ast) { traverse(ast, astTransformVisitor); } var astTransformVisitor = { noScope: true, enter: function enter(node) { if (t.isImportBatchSpecifier(node)) { node.type = "ImportNamespaceSpecifier"; node.id = node.name; delete node.name; } else if (t.isFunction(node)) { node.defaults = []; node.params = node.params.map(function (param) { if (t.isAssignmentPattern(param)) { node.defaults.push(param.right); return param.left; } else { node.defaults.push(null); return param; } }); if (t.isRestElement(node.params[node.params.length - 1])) { node.rest = node.params.pop(); } } else if (t.isClassProperty(node)) { this.remove(); } } }; exports.__esModule = true;