Use the Chart.js shared ESLint config (#5112)

An ESLint shareable config has been created (from this repository) in the attempt to homogenize Chart.js hosted projects and plugins style. Rename `.eslintrc` files to `.eslintrc.yml` since the name has been deprecated.

Fix the CC badge (maintainability) and disable CodeClimate ESLint plugin because it doesn't support custom shareable config but also because it already executes relevant checks as part of the regular process.
This commit is contained in:
Simon Brunel
2018-01-06 23:59:13 +01:00
committed by Evert Timberg
parent 33c7d941f7
commit 9ddb449ad1
6 changed files with 20 additions and 240 deletions

View File

@@ -1,25 +1,19 @@
engines:
version: "2"
plugins:
duplication:
enabled: true
config:
languages:
- javascript
eslint:
enabled: true
channel: "eslint-4"
- javascript
fixme:
enabled: true
ratings:
paths:
- "src/**/*.js"
exclude_paths:
- '.github/'
- 'dist/'
- 'test/'
- 'docs/'
- 'samples/'
- 'scripts/'
- '**.md'
- '**.json'
- 'gulpfile.js'
- 'karma.conf.js'
exclude_patterns:
- "dist/"
- "docs/"
- "samples/"
- "scripts/"
- "test/"
- "*.js"
- "*.json"
- "*.md"
- ".*"

220
.eslintrc
View File

@@ -1,220 +0,0 @@
env:
amd: true
browser: true
es6: true
jquery: true
node: true
# http://eslint.org/docs/rules/
rules:
# Possible Errors
no-cond-assign: 2
no-console: [2, {allow: [warn, error]}]
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-empty: 2
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast: 2
no-extra-parens: [2, functions]
no-extra-semi: 2
no-func-assign: 2
no-inner-declarations: [2, functions]
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-negated-in-lhs: 2
no-obj-calls: 2
no-regex-spaces: 2
no-sparse-arrays: 2
no-unexpected-multiline: 2
no-unreachable: 2
use-isnan: 2
valid-jsdoc: 0
valid-typeof: 2
# Best Practices
accessor-pairs: 2
array-callback-return: 0
block-scoped-var: 0
complexity: [2, 10]
consistent-return: 0
curly: [2, all]
default-case: 2
dot-location: 0
dot-notation: 2
eqeqeq: 2
guard-for-in: 2
no-alert: 2
no-caller: 2
no-case-declarations: 2
no-div-regex: 2
no-else-return: 2
no-empty-pattern: 2
no-eq-null: 2
no-eval: 2
no-extend-native: 2
no-extra-bind: 2
no-fallthrough: 2
no-floating-decimal: 2
no-implicit-coercion: 0
no-implied-eval: 2
no-invalid-this: 0
no-iterator: 2
no-labels: 2
no-lone-blocks: 2
no-loop-func: 2
no-magic-number: 0
no-multi-spaces: [2, {ignoreEOLComments: true}]
no-multi-str: 2
no-native-reassign: 2
no-new-func: 2
no-new-wrappers: 2
no-new: 2
no-octal-escape: 2
no-octal: 2
no-proto: 2
no-redeclare: 2
no-return-assign: 2
no-script-url: 2
no-self-compare: 2
no-sequences: 2
no-throw-literal: 0
no-unused-expressions: 2
no-useless-call: 2
no-useless-concat: 2
no-void: 2
no-warning-comments: 0
no-with: 2
radix: 2
vars-on-top: 0
wrap-iife: 2
yoda: [1, never]
# Strict
strict: 0
# Variables
init-declarations: 0
no-catch-shadow: 2
no-delete-var: 2
no-label-var: 2
no-shadow-restricted-names: 2
no-shadow: 2
no-undef-init: 2
no-undef: 2
no-undefined: 0
no-unused-vars: 2
no-use-before-define: 2
# Node.js and CommonJS
callback-return: 2
global-require: 2
handle-callback-err: 2
no-mixed-requires: 0
no-new-require: 0
no-path-concat: 2
no-process-exit: 2
no-restricted-modules: 0
no-sync: 0
# Stylistic Issues
array-bracket-spacing: [2, never]
block-spacing: 0
brace-style: [2, 1tbs]
camelcase: 2
comma-dangle: [2, only-multiline]
comma-spacing: 2
comma-style: [2, last]
computed-property-spacing: [2, never]
consistent-this: [2, me]
eol-last: 2
func-call-spacing: 0
func-names: [2, never]
func-style: 0
id-length: 0
id-match: 0
indent: [2, tab, {flatTernaryExpressions: true}]
jsx-quotes: 0
key-spacing: 2
keyword-spacing: 2
linebreak-style: 0
lines-around-comment: 0
max-depth: 0
max-len: 0
max-lines: 0
max-nested-callbacks: 0
max-params: 0
max-statements-per-line: 0
max-statements: [2, 30]
multiline-ternary: 0
new-cap: 0
new-parens: 2
newline-after-var: 0
newline-before-return: 0
newline-per-chained-call: 0
no-array-constructor: 0
no-bitwise: 0
no-continue: 0
no-inline-comments: 0
no-lonely-if: 2
no-mixed-operators: 0
no-mixed-spaces-and-tabs: 2
no-multiple-empty-lines: [2, {max: 2}]
no-negated-condition: 0
no-nested-ternary: 0
no-new-object: 0
no-plusplus: 0
no-restricted-syntax: 0
no-spaced-func: 0
no-ternary: 0
no-trailing-spaces: 2
no-underscore-dangle: 0
no-unneeded-ternary: 0
no-whitespace-before-property: 2
object-curly-newline: 0
object-curly-spacing: [2, never]
object-property-newline: 0
one-var-declaration-per-line: 2
one-var: [2, {initialized: never}]
operator-assignment: 0
operator-linebreak: 0
padded-blocks: 0
quote-props: [2, as-needed]
quotes: [2, single, {avoidEscape: true}]
require-jsdoc: 0
semi-spacing: 2
semi: [2, always]
sort-keys: 0
sort-vars: 0
space-before-blocks: [2, always]
space-before-function-paren: [2, never]
space-in-parens: [2, never]
space-infix-ops: 2
space-unary-ops: [2, {words: true, nonwords: false}]
spaced-comment: [2, always]
unicode-bom: 0
wrap-regex: 2
# ECMAScript 6
arrow-body-style: 0
arrow-parens: 0
arrow-spacing: 0
constructor-super: 0
generator-star-spacing: 0
no-arrow-condition: 0
no-class-assign: 0
no-const-assign: 0
no-dupe-class-members: 0
no-this-before-super: 0
no-var: 0
object-shorthand: 0
prefer-arrow-callback: 0
prefer-const: 0
prefer-reflect: 0
prefer-spread: 0
prefer-template: 0
require-yield: 0

5
.eslintrc.yml Normal file
View File

@@ -0,0 +1,5 @@
extends: chartjs
env:
browser: true
node: true

View File

@@ -1,6 +1,6 @@
# Chart.js
[![travis](https://img.shields.io/travis/chartjs/Chart.js.svg?style=flat-square&maxAge=60)](https://travis-ci.org/chartjs/Chart.js) [![codeclimate](https://img.shields.io/codeclimate/github/chartjs/Chart.js.svg?style=flat-square&maxAge=600)](https://codeclimate.com/github/chartjs/Chart.js) [![coveralls](https://img.shields.io/coveralls/chartjs/Chart.js.svg?style=flat-square&maxAge=600)](https://coveralls.io/github/chartjs/Chart.js?branch=master) [![slack](https://img.shields.io/badge/slack-Chart.js-blue.svg?style=flat-square&maxAge=3600)](https://chart-js-automation.herokuapp.com/)
[![travis](https://img.shields.io/travis/chartjs/Chart.js.svg?style=flat-square&maxAge=60)](https://travis-ci.org/chartjs/Chart.js) [![coveralls](https://img.shields.io/coveralls/chartjs/Chart.js.svg?style=flat-square&maxAge=600)](https://coveralls.io/github/chartjs/Chart.js?branch=master) [![codeclimate](https://img.shields.io/codeclimate/maintainability/chartjs/Chart.js.svg?style=flat-square&maxAge=600)](https://codeclimate.com/github/chartjs/Chart.js) [![slack](https://img.shields.io/badge/slack-Chart.js-blue.svg?style=flat-square&maxAge=3600)](https://chart-js-automation.herokuapp.com/)
*Simple HTML5 Charts using the canvas element* [chartjs.org](http://www.chartjs.org)

View File

@@ -16,6 +16,7 @@
"child-process-promise": "^2.2.1",
"coveralls": "^3.0.0",
"eslint": "^4.9.0",
"eslint-config-chartjs": "git+https://github.com/chartjs/eslint-config-chartjs.git",
"gitbook-cli": "^2.3.2",
"gulp": "3.9.x",
"gulp-concat": "~2.6.x",