JSPM

babel-to-estree

0.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q70821F
  • License MIT

Translate a Babel AST to an ESTree-compliant AST. A "fork" of babel-eslint/babylon-to-espree.

Package Exports

  • babel-to-estree

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (babel-to-estree) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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.