Babel
  • Docs
  • Setup
  • Try it out
  • Videos
  • Blog
  • Donate
  • Team
  • GitHub

›Tooling

Guides

  • What is Babel?
  • Usage Guide
  • Configure Babel
  • Learn ES2015
  • Upgrade to Babel 7
  • Upgrade to Babel 7 (API)

General

  • Editors
  • Plugins
  • Presets
  • Caveats
  • FAQ
  • Roadmap

Usage

  • Options
  • Config Files
  • cli
  • polyfill
  • transform-runtime
  • register

Presets

  • env
  • flow
  • react
  • typescript

Tooling

  • parser
  • core
  • generator
  • code-frame
  • helpers
  • runtime
  • template
  • traverse
  • types
Edit

@babel/helpers

Install

npm install --save-dev @babel/helpers

Usage

Direct:

import * as helpers from '@babel/helpers';
import * as t from '@babel/types';

const typeofHelper = helpers.get('typeof');

t.isExpressionStatement(typeofHelper);
// true

Inside a plugin:

export default {
  visitor: {
    UnaryExpression(path) {
      // The .addHelper function adds, if needed, the helper to the file
      // and returns an expression which references the helper
      const typeofHelper = this.addHelper("typeof");
      t.isExpression(typeofHelper); // true
  }
};

Defining Helpers

NOTE: This package is only meant to be used by the packages included in this repository. There is currently no way for third-party plugins to define a helper.

Helpers are defined in the src/helpers.js file, and they must be valid modules which follow these guidelines:

  • They must have a default export, which is their entry-point.
  • They can import other helpers, exclusively by using default imports.
  • They can't have named exports.
helpers.customHelper = defineHelper(`
  import dep from "dependency";

  const foo = 2;

  export default function getFooTimesDepPlusX(x) {
    return foo * dep() + x;
  }
`);
← code-frameruntime →
  • Install
  • Usage
  • Defining Helpers
Babel
Docs
Learn ES2015
Community
VideosUser ShowcaseStack OverflowSlack ChannelTwitter
More
BlogGitHub OrgGitHub RepoWebsite RepoOld 6.x SiteOld 5.x Site