Skip to content

tsuchikazu/coffeelint-no-accessor-existential-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

CoffeeLint plugin for prohibiting accessor with existential operator.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published