eslint-config-aftership
Version:
AfterShip ESLint config (modified from Airbnb)
62 lines (48 loc) • 1.75 kB
JavaScript
const eslintRestrictedGlobals = require('eslint-restricted-globals');
const allows = ['name', 'history', 'status', 'location', 'event'];
const restrictedGlobals = eslintRestrictedGlobals.filter(g => !allows.includes(g));
module.exports = {
rules: {
// enforce or disallow variable initializations at definition
'init-declarations': 'off',
// disallow the catch clause parameter name being the same as a variable in the outer scope
'no-catch-shadow': 'off',
// disallow deletion of variables
'no-delete-var': 'error',
// disallow labels that share a name with a variable
// http://eslint.org/docs/rules/no-label-var
'no-label-var': 'error',
// disallow specific globals
'no-restricted-globals': ['error'].concat(restrictedGlobals),
// disallow declaration of variables already declared in the outer scope
'no-shadow': ['error', {
builtinGlobals: true,
allow: allows,
}],
// disallow shadowing of names such as arguments
'no-shadow-restricted-names': 'error',
// disallow use of undeclared variables unless mentioned in a /*global */ block
'no-undef': 'error',
// disallow use of undefined when initializing variables
'no-undef-init': 'error',
// disallow use of undefined variable
// http://eslint.org/docs/rules/no-undefined
// TODO: enable?
'no-undefined': 'off',
// disallow declaration of variables that are not used in the code
'no-unused-vars': ['error', {
vars: 'all',
args: 'after-used',
ignoreRestSiblings: true,
'argsIgnorePattern': '^_.+',
}],
// disallow use of variables before they are defined
// but enable function hoist
'no-use-before-define': ['error', {
functions: false,
classes: true,
variables: true,
}],
},
};
;