es-decorate

1.0.0 • Public • Published

es-decorate

ES7 decorators for CoffeeScript

Why

Libraries such as Angular and Aurelia are starting to use decorators according to the API proposed in https://github.com/wycats/javascript-decorators which is supported in Babel 5+ and TypeScript 1.5

On the other hand, it seems CoffeeScript won't be adding decorators any time soon:

es-decorate fills the syntactic gap providing a helper function that can apply decorators compliant with the proposed decorator API.

Install

npm install --save es-decorate

Usage

Following the examples in https://github.com/wycats/javascript-decorators:

decorate = require 'es-decorate'
 
# Class decorator must be assigned to variable or property. 
Foo = decorate F('color')Gclass #  Class name is optional in CoffeeScript 
 
  # Method with redundant name 
  bar: decorate 'bar'@F('color')G->
 
  # Or just... 
  decorate 'baz'@F('color')G->
  #  ...if no code analyzer will miss the explicit method declaration 

Multiline declaration:

Foo = decorate [
  F 'color'
  G
  H
  I 123
  J
  ]class Foo

Less dumb example, using Angular 2:

decorate = require 'es-decorate'
{ComponentView} = require 'angular2/angular2'
 
AppComponent = decorate [
  Component selector: 'my-app'
  View template: '<h1>My first Angular 2 App</h1>'
]class AppComponent
  constructor: ->

Package Sidebar

Install

npm i es-decorate

Weekly Downloads

31

Version

1.0.0

License

MIT

Last publish

Collaborators

  • rstuven