Conteúdos
  1. 1. core-decorators
  2. 2. lodash-decorators
  3. 3. express-decorators
  4. 4. hapi-decorators
  5. 5. koa-router-decorators
  6. 6. async-decorators
  7. 7. react-mixin
  8. 8. angular-decorators

Você sabe o que é um decorator? De maneira resumida, decorator é um design pattern que permite que você adicione funcionalidades a um objeto! A Wikipedia tem um artigo sobre o decorator pattern que pode te ajudar a entender o que é o padrão.

E você sabia que o ES7/ES2016 possui decorators em sua especificação? Pois é, já é possível usar decorators no JavaScript a partir de transpilers como o Babel, que podem ser usados, por exemplo, para tornar classes singletons, ou adicionar debounce à métodos.

Mas espera, eu li na descrição dos decorators que eles adicionam funcionalidades à um objeto individual sem alterar os outros da mesma classe, qual é que é essa aí de tornar uma classe um singleton? Isso não faz sentido!

Caso você tenha tido a reação acima, talvez você tenha se esquecido (ou não saiba) que classes/funções em JavaScript são instâncias de Function ;)

Este post não visa ensinar o que são decorators, nem como usá-los no JavaScript, o post do Addy Osmani sobre ES2016 decorators pode fazer isso muito melhor do que eu! O que vim fazer aqui é simplesmente te indicar bons pacotes de decorators para usar com JavaScript/NodeJS.

core-decorators

Este pacote possui vários decorators inspirados em decorators e annotations que já vem built-in em algumas linguagens, como @deprecate, @autobind, @debounce, entre outros.

lodash-decorators

E aí, o que acha de ter diversas funções do lodash em forma de decorators? Bom, né? É justamente isso que este pacote vai te permitir.

express-decorators

Se o seu app é feito usando o express, ter decorators que te permitem linkar classes ES6 à funcionalidades do mesmo (transformar uma classe em um controller, um método em um handler de rota, ou em um middleware, por exemplo), o pacotre express-decorator pode te ajudar bastante.

hapi-decorators

Mas se o seu negócio é usar o hapi ao invés do express, o hapi-decorator é uma escolha para você, ele é baseado nos decorators para express. :)

koa-router-decorators

E se seu app é feito usando o koa e tem o roteamento feito com o koa-router, também existe uma opção como as anteriores para você.

async-decorators

Já está usando async/await em seus códigos? O async-decorators possui alguns decorators que podem te ajudar, como o o @memoize e o @serialize.

react-mixin

Se você usava React antes usando o React.createClass e agora usa classes do ES6 já deve saber que usar mixins como usava antes não é possível com as classes, certo? Com o react-mixin você vai ser capaz de usar mixins no React normalmente, mesmo com classes, usando decorators tanto para métodos quanto para classes.

angular-decorators

E por último, se o seu app é feito com Angular também existem decorators que melhoram a sintaxe que você vai usar na hora de criar modules, providers, services, entre outras ngCoisas.

Bom, estas foram minhas dicas de decorators, espero que sejam úteis para vocês. E se você sabe mais algum decorator (ou coleções deles) para serem adicionadas nesta lista, pode comentar ali em baixo!

Conteúdos
  1. 1. core-decorators
  2. 2. lodash-decorators
  3. 3. express-decorators
  4. 4. hapi-decorators
  5. 5. koa-router-decorators
  6. 6. async-decorators
  7. 7. react-mixin
  8. 8. angular-decorators