Decorators transform
Compile class and object decorators to ES5
Stage 2 decorators are in progress babel/babel#2645. Patches welcome!
In Babel 7, transform-decorators-legacy will be the default plugin in Stage-0.
Example
(examples are from proposal)
Simple class decorator
@annotation class MyClass { } function annotation(target) { target.annotated = true; }
Class decorator
@isTestable(true) class MyClass { } function isTestable(value) { return function decorator(target) { target.isTestable = value; } }
Class function decorator
class C { @enumerable(false) method() { } } function enumerable(value) { return function (target, key, descriptor) { descriptor.enumerable = value; return descriptor; } }
Installation
npm install --save-dev babel-plugin-transform-decorators
Usage
Via .babelrc
(Recommended)
.babelrc
{ "plugins": ["transform-decorators"] }
Via CLI
babel --plugins transform-decorators script.js
Via Node API
require("babel-core").transform("code", { plugins: ["transform-decorators"] });
References
© 2018 Sebastian McKenzie
Licensed under the MIT License.
http://babeljs.io/docs/plugins/transform-decorators/