kenyk7 / babel-preset-joinnus

A babel preset for transforming your JavaScript for Airbnb

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

babel-preset-joinnus

A babel preset for transforming your JavaScript for Joinnus.

Currently contains transforms for all standard syntax that is stage 4 (ES2018) or stage 3, except for the following:

  • generators: regenerator-runtime is too heavyweight for our use.
  • async/await: regenerator-runtime is too heavyweight for our use, and async-to-promises is not yet complete enough to be safely used.
  • async iterators: depends on both generators and async functions
  • lifted template literal restrictions: we do not use tagged template literals, nor implement custom DSLs, otherwise we would enable this.

Install

$ npm install --save-dev babel-preset-joinnus

Usage

Via .babelrc (Recommended)

.babelrc

{
  "presets": ["joinnus"]
}

Via CLI

$ babel script.js --presets joinnus

Via Node API

require("babel-core").transform("code", {
  presets: ["joinnus"]
});

Targeting Environments

This module uses babel-preset-env to target specific environments.

Please refer to babel-preset-env#targets for a list of available options.

For a list of browsers please see browserlist.

You may override our default list of targets by providing your own targets key.

{
  "presets": [["joinnus", {
    "targets": {
      "chrome": 50,
      "explorer": 11,
      "firefox": 45
    }
  }]]
}

The following transpiles only for Node v6.

{
  "presets": [["joinnus", {
    "targets": {
      "node": 6
    }
  }]]
}

If you wish, you can also inherit our default list of browsers and extend them using additionalTargets.

{
  "presets": [["joinnus", {
    "additionalTargets": {
      "chrome": 42,
      "explorer": 8
    }
  }]]
}

You may override our default debug option by providing your own debug key.

{
  "presets": [["joinnus", {
    "debug": true
  }]]
}

React PropTypes removal

This preset can be configured to remove propTypes using babel-plugin-transform-react-remove-prop-types with the following default options:

To enable this transformation with the default options, set the removePropTypes option to true:

{
  "presets": [["joinnus", {
    "removePropTypes": true
  }]]
}

The default options that will be used are:

{
  mode: 'wrap',
  additionalLibraries: ['airbnb-prop-types'],
  ignoreFilenames: ['node_modules'],
}

Default options can be overridden using the removePropTypes option. These options will be shallow-merged with the defaults:

{
  "presets": [["joinnus", {
    "removePropTypes": {
      "mode": "remove"
    }
  }]]
}

For example, if you are using this plugin in a deployable app, you might want to use the remove mode for your production build (and disable this transform entirely in development for optimal build speeds).

About

A babel preset for transforming your JavaScript for Airbnb


Languages

Language:JavaScript 100.0%