2.0.0 • Published 5 years ago

babel-plugin-auto-symbol-description v2.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Auto Symbol Description Build Status npm

A Babel plugin to automatically set Symbol descriptions.

Note: Babel 7 is supported in version 2.0+.

Note: Babel 6 is supported in version 1.0+. Keep using version 0.0.1 for Babel 5 support.

Use Cases

Redux

Very useful with Redux if you use Symbols for action types:

In:

// TodoActions.js
export const CREATE = Symbol();
export const CREATE_SUCCESS = Symbol();
export const CREATE_FAILURE = Symbol();

Out (something like this):

// TodoActions.js
export const CREATE = Symbol('TodoActions.CREATE');
export const CREATE_SUCCESS = Symbol('TodoActions.CREATE_SUCCESS');
export const CREATE_FAILURE = Symbol('TodoActions.CREATE_FAILURE');

Then use these constants in a reducer:

// TodoReducer.js
import * as TodoActions from '../actions/TodoActions';

export function TodoReducer(state, action) {
  switch (action) {
  case TodoActions.CREATE:
    // Handle create
    break;
  case TodoActions.CREATE_SUCCESS:
    // Handle create success
    break;
  case TodoActions.CREATE_FAILURE:
    // Handle create failure
    break;
  default:
    return state;
  }
}

Symbol descriptions are only useful for debugging, so idealy you would only include this transformation in development.

Installation

npm install -D babel-plugin-auto-symbol-description

.babelrc:

{
  "env": {
    "development": {
      "plugins": ["auto-symbol-description"]
    }
  }
}

Notes

This plugin won't transform any Symbol calls with an argument, and it only works for assignments and variable declarations for now. Let me know if there is demand for the transformation when setting an object property or any other use cases.