coffeelint-no-accessor-existential-operator

1.0.1 • Public • Published

coffeelint-no-accessor-existential-operator

CoffeeLint plugin for prohibiting accessor with existential operator.

When coffeescript transpile to ES2015(ES6) by transpiler(decaf, decaffeinate), accessor with existential operator is transpiled complex code.

Example:

# coffeescript sample using accessor with existential operator 
hoge?.fuga?.piyo()
 
# transpiled JS by decaf 
var ref;
typeof hoge !== "undefined" && hoge !== null ? ((ref = hoge.fuga) != null ? ref.piyo() : void 0) : void 0;

I recommend fix coffeescript before transpile.

Install

$ npm install --save-dev coffeelint-no-accessor-existential-operator

Usage

Put this in your coffeelint config

{
  "no_accessor_existential_operator": {
    "module": "coffeelint-no-accessor-existential-operator"
  }
}

Examples

# Bad 
hoge?.fuga
doit() if hoge?.fuga?
 
# Good (Note that following code not equals completely) 
hoge.fuga if hoge?
doit() if hoge && hoge.fuga?

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Package Sidebar

Install

npm i coffeelint-no-accessor-existential-operator

Weekly Downloads

9

Version

1.0.1

License

MIT

Last publish

Collaborators

  • tsuchikazu