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 loading code for Javascript / Typescript AST generation by Babel parser with TyphonJS plugin support.

Source
npmnpm
Version
0.1.0
Version published
Weekly downloads
2.5K
3.33%
Maintainers
1
Weekly downloads
 
Created
Source

@typhonjs/babel-parser

NPM Code Style License Gitter

Build Status Coverage Dependency Status

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

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

"dependencies": {
  "@typhonjs/babel-parser": "^0.1.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']
};

An ES6 example follows:

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

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

// Providing custom options
const parserOptions = { plugins: [<any parser options desired to be enabled>] };
const ast = BabelParser.parseSource(`<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.parseSource(`<some JS w/ Flow typing>`, void 0, { flow: true });


// A convenience method is available to load a file and parse it.
const ast = BabelParser.parseFile('./src/somelocalsource.js');

There is a way to provide additional override directives to babel-parser which modifies the default babel parser options above. Right now only 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. Other override directives may be defined in the future.

@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:file:parse - invokes BabelParser.parseFile

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

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