Socket
Book a DemoInstallSign in
Socket

@typhonjs/babel-parser

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@typhonjs/babel-parser

Provides a front end for Javascript / Typescript AST generation by Babel parser with TyphonJS plugin support.

latest
Source
npmnpm
Version
0.2.0
Version published
Weekly downloads
2.5K
61.85%
Maintainers
1
Weekly downloads
 
Created
Source

@typhonjs/babel-parser

NPM Code Style License Gitter

Build Status Coverage Dependency Status

Provides a front end for Javascript / Typescript AST generation by Babel parser with TyphonJS plugin support. By default all Babel parser plugins are enabled except for flow and there is a handy override mechanism to change relevant defaults without having to provide a full set of options to the parser.

This NPM module can be installed as a dependency in package.json as follows:

"dependencies": {
  "@typhonjs/babel-parser": "^0.2.0"
}

Please see Babel Parser Docs for specific plugin information. By default babel-parser enables all plugins except for flow as it is incompatible with the typescript plugin. Also by default the decorators plugins is enabled and not compatible with decorators-legacy.

The default Babel parser options is as follows:

const s_DEFAULT_BABELPARSER_OPTIONS =
{
   plugins: ['asyncGenerators', 'bigInt', 'classProperties', 'classPrivateProperties', 'classPrivateMethods',
    ['decorators', { decoratorsBeforeExport: false }], 'doExpressions', 'dynamicImport',
     'exportDefaultFrom', 'exportNamespaceFrom',  'functionBind', 'functionSent', 'importMeta',
      'jsx', 'logicalAssignment', 'nullishCoalescingOperator', 'numericSeparator', 'objectRestSpread',
       'optionalCatchBinding', 'optionalChaining', ['pipelineOperator', { proposal: 'minimal' }], 'throwExpressions',
        'typescript']
};

There is a way to provide additional override directives to babel-parser which modifies the default babel parser options above. This only activates when no manual parser options are provided. A third parameter can be passed into parse which will modify the default parameters above. For example Flow is supported by passing in { flow: true } as the override object. This allows flow to be enabled and typescript to be disabled without providing the full babel parser options manually. A few other optional overrides are available:

{
   decoratorsBeforeExport: <boolean>,   // Sets the associated configuration value
   decoratorsLegacy: true,              // Removes the proposal decorators plugin for `decorators-legacy`
   flow: true,                          // Enables flow / disables typescript plugins
   pipelineOperatorProposal: <string>   // Sets the proposal field of pipelineOperator plugin
}

An ES6 example follows:

import BabelParser from '@typhonjs/babel-parser';

// Basic usage to parse text / source code with default options.
const ast = BabelParser.parse(`<some JS or Typescript source code>`);

// Providing custom options
const parserOptions = { plugins: [<any parser options desired to be enabled>] };
const ast = BabelParser.parse(`<some JS or Typescript source code>`, parserOptions);

// Basic usage with default options, but with an override to disable Typescript and enable Flow plugins
const ast = BabelParser.parse(`<some JS w/ Flow typing>`, void 0, { flow: true });

@typhonjs/babel-parser may be loaded as a TyphonJS plugin with typhonjs-plugin-manager and if an eventbus is associated the following event categories are registered:

typhonjs:babel:parser:parse - invokes BabelParser.parse

Keywords

typhonjs

FAQs

Package last updated on 19 Dec 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts