babel-to-estree
Translate a Babel AST to an ESTree-compliant AST. A "fork" of babel-eslint/babylon-to-espree.
Last updated 8 years ago by rattrayalex .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install babel-to-estree 
SYNC missed versions from official npm registry.

babel-to-estree

Translates a "Babel AST" to an "ESTree AST". Intended for cases when an AST must be consumed by an ESTree-compliant consumer after a babel-plugin traversal.

If you only need a babylon-parsed AST, and do not need traversal, try the "estree" plugin that babylon now offers instead.

Usage

import { transform } from 'babel-core'
import { toEstree } from 'babel-to-estree'
import myPlugin from './my-babel-plugin'

const source = 'code("here");'

const { ast, code } = transform(source, { plugins: [myPlugin] })

// mutates `ast` input
toEstree(ast, source);

// contains Literal, not StringLiteral
console.log(ast.body[0].expression.arguments[0])

// Node {
//   type: 'Literal',
//   start: 5,
//   end: 11,
//   loc: SourceLocation {
//     start: Position { line: 1, column: 5 },
//     end: Position { line: 1, column: 11 } },
//   extra: { rawValue: 'here', raw: '"here"' },
//   value: 'here',
//   range: [ 5, 11 ],
//   _babelType: 'StringLiteral',
//   raw: '"here"'
// }

Deviations Addressed

The Babel AST format is based on ESTree spec with the following deviations:

AST for JSX code is based on Facebook JSX AST with the addition of one node type:

  • JSXText

History

Based on the babylon-to-espree module of babel-eslint, which was in turn based on acorn-to-esprima.

Current Tags

  • 0.0.3                                ...           latest (8 years ago)

3 Versions

  • 0.0.3                                ...           8 years ago
  • 0.0.2                                ...           9 years ago
  • 0.0.1                                ...           9 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (3)
Dev Dependencies (7)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |