2017-03-01 16:06:15 +03:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const merge = require('deepmerge');
|
|
|
|
const lintBase = require('neutrino-lint-base');
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
const CWD = process.cwd();
|
|
|
|
const UI = path.join(CWD, 'ui');
|
|
|
|
|
|
|
|
module.exports = neutrino => {
|
|
|
|
lintBase(neutrino);
|
|
|
|
neutrino.config.module
|
|
|
|
.rule('lint')
|
|
|
|
.include(UI)
|
|
|
|
.test(/\.jsx?$/)
|
|
|
|
.loader('eslint', props => merge(props, {
|
|
|
|
options: {
|
|
|
|
plugins: ['react'],
|
|
|
|
envs: ['browser', 'es6', 'node'],
|
|
|
|
parserOptions: {
|
|
|
|
sourceType: 'script',
|
|
|
|
ecmaFeatures: {
|
|
|
|
es6: true,
|
|
|
|
jsx: true,
|
|
|
|
impliedStrict: false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
extends: 'eslint:recommended',
|
2017-07-21 20:59:52 +03:00
|
|
|
rules: {
|
|
|
|
'arrow-body-style': ['error', 'as-needed', {
|
|
|
|
requireReturnForObjectLiteral: false,
|
|
|
|
}],
|
|
|
|
'arrow-parens': ['error', 'as-needed', {
|
|
|
|
requireForBlockBody: true,
|
|
|
|
}],
|
|
|
|
'arrow-spacing': ['error', { before: true, after: true }],
|
2017-03-01 16:06:15 +03:00
|
|
|
'accessor-pairs': 'error',
|
2017-07-21 20:59:52 +03:00
|
|
|
'block-spacing': ['error', 'always'],
|
2017-06-05 18:36:32 +03:00
|
|
|
'comma-spacing': 'error',
|
2017-03-01 16:06:15 +03:00
|
|
|
'comma-style': 'error',
|
2017-08-23 17:43:53 +03:00
|
|
|
'curly': ['error', 'multi-line', 'consistent'],
|
2017-03-01 16:06:15 +03:00
|
|
|
'eol-last': 'error',
|
|
|
|
'eqeqeq': 'error',
|
|
|
|
'guard-for-in': 'error',
|
|
|
|
'indent': ['error', 4, {
|
|
|
|
'SwitchCase': 1
|
|
|
|
}],
|
2017-08-23 17:43:53 +03:00
|
|
|
'key-spacing': ['error', {
|
|
|
|
beforeColon: false,
|
|
|
|
afterColon: true
|
|
|
|
}],
|
2017-03-01 16:06:15 +03:00
|
|
|
'keyword-spacing': 'error',
|
|
|
|
'linebreak-style': 'error',
|
|
|
|
'new-cap': 'error',
|
|
|
|
'new-parens': 'error',
|
|
|
|
'no-array-constructor': 'error',
|
|
|
|
'no-bitwise': 'error',
|
|
|
|
'no-caller': 'error',
|
|
|
|
'no-div-regex': 'error',
|
|
|
|
'no-else-return': 'error',
|
|
|
|
'no-empty-pattern': 'error',
|
|
|
|
'no-eval': 'error',
|
|
|
|
'no-extend-native': 'error',
|
|
|
|
'no-extra-bind': 'error',
|
|
|
|
'no-floating-decimal': 'error',
|
|
|
|
'no-implied-eval': 'error',
|
|
|
|
'no-iterator': 'error',
|
|
|
|
'no-label-var': 'error',
|
|
|
|
'no-labels': 'error',
|
|
|
|
'no-lone-blocks': 'error',
|
|
|
|
'no-lonely-if': 'error',
|
|
|
|
'no-multi-spaces': 'error',
|
|
|
|
'no-multi-str': 'error',
|
|
|
|
'no-native-reassign': 'error',
|
|
|
|
'no-new': 'error',
|
|
|
|
'no-new-func': 'error',
|
|
|
|
'no-new-object': 'error',
|
|
|
|
'no-new-wrappers': 'error',
|
|
|
|
'no-octal-escape': 'error',
|
|
|
|
'no-proto': 'error',
|
|
|
|
'no-return-assign': 'error',
|
|
|
|
'no-script-url': 'error',
|
|
|
|
'no-self-compare': 'error',
|
|
|
|
'no-sequences': 'error',
|
|
|
|
'no-shadow-restricted-names': 'error',
|
|
|
|
'no-spaced-func': 'error',
|
|
|
|
'no-trailing-spaces': 'error',
|
|
|
|
'no-undef-init': 'error',
|
2017-04-07 16:53:32 +03:00
|
|
|
'no-undef': 'error',
|
2017-03-01 16:06:15 +03:00
|
|
|
'no-unexpected-multiline': 'error',
|
2017-07-31 16:37:25 +03:00
|
|
|
'no-unneeded-ternary': 'error',
|
2017-03-01 16:06:15 +03:00
|
|
|
'no-unused-expressions': 'error',
|
2017-05-30 17:59:51 +03:00
|
|
|
'no-unused-vars': 'error',
|
2017-03-01 16:06:15 +03:00
|
|
|
'no-useless-call': 'error',
|
|
|
|
'no-void': 'error',
|
|
|
|
'no-with': 'error',
|
2017-08-23 17:43:53 +03:00
|
|
|
'object-curly-spacing': ['error', 'always'],
|
2017-03-01 16:06:15 +03:00
|
|
|
'semi': 'error',
|
2017-05-30 18:12:13 +03:00
|
|
|
'space-before-blocks': 'error',
|
2017-05-30 18:06:11 +03:00
|
|
|
'space-before-function-paren': ['error', {
|
|
|
|
anonymous: 'always',
|
|
|
|
named: 'never',
|
|
|
|
asyncArrow: 'always'
|
|
|
|
}],
|
2017-03-01 16:06:15 +03:00
|
|
|
'strict': ['error', 'global'],
|
2017-08-23 17:43:53 +03:00
|
|
|
'quote-props': ['error', 'as-needed', {
|
|
|
|
keywords: false,
|
|
|
|
unnecessary: true,
|
|
|
|
numbers: false
|
|
|
|
}],
|
2017-03-01 16:06:15 +03:00
|
|
|
'yoda': 'error'
|
|
|
|
},
|
2017-04-07 16:53:32 +03:00
|
|
|
globals: ['angular', '$', '_', 'treeherder', 'perf',
|
2017-03-01 16:06:15 +03:00
|
|
|
'treeherderApp', 'failureViewerApp', 'logViewerApp',
|
|
|
|
'userguideApp', 'admin', 'Mousetrap', 'jQuery', 'React',
|
2017-07-21 19:15:59 +03:00
|
|
|
'hawk', 'jsonSchemaDefaults', 'SERVICE_DOMAIN', 'numeral',
|
|
|
|
'metrics-graphics'
|
2017-03-01 16:06:15 +03:00
|
|
|
]
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
};
|