Skip to content
This repository has been archived by the owner on Apr 1, 2022. It is now read-only.

Holds Casumo's base JS .eslintrc as an extensible shared config

License

Notifications You must be signed in to change notification settings

casumo-archive/eslint-config-casumo

Repository files navigation

eslint-config-casumo

ESLint shareable config for the Casumo JavaScript code style


Installation

npm install --save-dev eslint-config-casumo

Usage

Once the eslint-config-casumo package is installed, you can use it by specifying casumo in the extends section of your ESLint configuration.

{
  "extends": "casumo",
  "rules": {
    // Additional, per-project rules...
  }
}

Note: We omitted the eslint-config- prefix since it is automatically assumed by ESLint.

You can override settings from the shareable config by adding them directly into your .eslintrc file.

Configuration structure

  • casumo/rules/... - grouping for rules by category (f.ex eslint, mocha, etc.)
    • Each group ideally would have on/off.js configurations files which will be used for composing presets
  • causmo/configuration/... - composition of rules into 'presets'

Why on.js and off.js?

The idea is to always ship a complete list of ESLint rules and explicitly turn off rule groups which are not needed. This is mostly useful for when eslint-find-rules runs. In case any new rule is added the plugin will call out the missing rule.

For example if we want to completely ignore ecma-script-6 rules we just extend the configuration preset with /rules/eslint/ecma-script-6/off.js.

Full configurations

This package includes the following complete and ready to use configurations:

  • casumo - ES5 config
  • casumo/configurations/es5 - ES5 config
  • casumo/configurations/es5-browser - ES5 + browser
  • casumo/configurations/es5-node - ES5 + node
  • casumo/configurations/es5-test - ES5 + test
  • casumo/configurations/es6 - ES6 config
  • casumo/configurations/es6-browser - ES6 + browser
  • casumo/configurations/es6-node - ES6 + node
  • casumo/configurations/es6-test - ES6 + test
  • casumo/configurations/off - All rules disabled

NPM scripts

  • commit - use this if you do not have commitizen installed globally
  • lint - lints the current project
  • find-new-eslint-rules - checks for new (missing) rules
  • test - runs a couple of tests

Contributing

To contribute to the project, please follow these steps:

  1. File an issue with the idea you wish to put forward
  2. Fork the repo
  3. Make a branch for your change
  4. Run npm or yarn install
  5. Make your changes
  6. Run npm or yarn test
  7. Run git add -A to add your changes
  8. Run npm or yarn run commit (do not use git commit - unless you have commitizen installed globally)
  9. Push your changes
  10. Create the Pull Request
  11. Get merged and 🎉!

Thanks to