aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@babel/plugin-proposal-decorators/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/plugin-proposal-decorators/README.md')
-rw-r--r--node_modules/@babel/plugin-proposal-decorators/README.md126
1 files changed, 126 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-proposal-decorators/README.md b/node_modules/@babel/plugin-proposal-decorators/README.md
new file mode 100644
index 00000000..b5bf1a1b
--- /dev/null
+++ b/node_modules/@babel/plugin-proposal-decorators/README.md
@@ -0,0 +1,126 @@
+# @babel/plugin-proposal-decorators
+
+> Compile class and object decorators to ES5
+
+## Example
+
+(examples are from proposal)
+
+### Simple class decorator
+
+```js
+@annotation
+class MyClass { }
+
+function annotation(target) {
+ target.annotated = true;
+}
+```
+
+### Class decorator
+
+```js
+@isTestable(true)
+class MyClass { }
+
+function isTestable(value) {
+ return function decorator(target) {
+ target.isTestable = value;
+ }
+}
+```
+
+### Class function decorator
+
+```js
+class C {
+ @enumerable(false)
+ method() { }
+}
+
+function enumerable(value) {
+ return function (target, key, descriptor) {
+ descriptor.enumerable = value;
+ return descriptor;
+ }
+}
+```
+
+## Installation
+
+```sh
+npm install --save-dev @babel/plugin-proposal-decorators
+```
+
+## Usage
+
+Add the following line to your .babelrc file:
+
+```json
+{
+ "plugins": ["@babel/plugin-proposal-decorators"]
+}
+```
+
+### Via CLI
+
+```sh
+babel --plugins @babel/plugin-proposal-decorators script.js
+```
+
+### Via Node API
+
+```javascript
+require("@babel/core").transform("code", {
+ plugins: ["@babel/plugin-proposal-decorators"]
+});
+```
+
+## Options
+
+### `legacy`
+
+`boolean`, defaults to `false`.
+
+Use the legacy (stage 1) decorators syntax and behavior.
+
+#### NOTE: Compatibility with `@babel/plugin-proposal-class-properties`
+
+If you are including your plugins manually and using `@babel/plugin-proposal-class-properties`, make sure that `@babel/plugin-proposal-decorators` comes *before* `@babel/plugin-proposal-class-properties`.
+
+When using the `legacy: true` mode, `@babel/plugin-proposal-class-properties` must be used in `loose` mode to support the `@babel/plugin-proposal-decorators`.
+
+Wrong:
+
+```json
+{
+ "plugins": [
+ "@babel/plugin-proposal-class-properties",
+ "@babel/plugin-proposal-decorators"
+ ]
+}
+```
+
+Right:
+
+```json
+{
+ "plugins": [
+ "@babel/plugin-proposal-decorators",
+ "@babel/plugin-proposal-class-properties"
+ ]
+}
+```
+
+```json
+{
+ "plugins": [
+ ["@babel/plugin-proposal-decorators", { "legacy": true }],
+ ["@babel/plugin-proposal-class-properties", { "loose" : true }]
+ ]
+}
+```
+
+## References
+
+* [Proposal: JavaScript Decorators](https://github.com/wycats/javascript-decorators/blob/master/README.md)