You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
6.1 KiB
186 lines
6.1 KiB
module.exports = { |
|
env: { |
|
es6: true |
|
}, |
|
parserOptions: { |
|
ecmaVersion: 6, |
|
sourceType: 'module', |
|
ecmaFeatures: { |
|
generators: false, |
|
objectLiteralDuplicateProperties: false |
|
} |
|
}, |
|
|
|
rules: { |
|
// enforces no braces where they can be omitted |
|
// https://eslint.org/docs/rules/arrow-body-style |
|
// TODO: enable requireReturnForObjectLiteral? |
|
'arrow-body-style': ['error', 'as-needed', { |
|
requireReturnForObjectLiteral: false, |
|
}], |
|
|
|
// require parens in arrow function arguments |
|
// https://eslint.org/docs/rules/arrow-parens |
|
'arrow-parens': ['error', 'always'], |
|
|
|
// require space before/after arrow function's arrow |
|
// https://eslint.org/docs/rules/arrow-spacing |
|
'arrow-spacing': ['error', { before: true, after: true }], |
|
|
|
// verify super() callings in constructors |
|
'constructor-super': 'error', |
|
|
|
// enforce the spacing around the * in generator functions |
|
// https://eslint.org/docs/rules/generator-star-spacing |
|
'generator-star-spacing': ['error', { before: false, after: true }], |
|
|
|
// disallow modifying variables of class declarations |
|
// https://eslint.org/docs/rules/no-class-assign |
|
'no-class-assign': 'error', |
|
|
|
// disallow arrow functions where they could be confused with comparisons |
|
// https://eslint.org/docs/rules/no-confusing-arrow |
|
'no-confusing-arrow': ['error', { |
|
allowParens: true, |
|
}], |
|
|
|
// disallow modifying variables that are declared using const |
|
'no-const-assign': 'error', |
|
|
|
// disallow duplicate class members |
|
// https://eslint.org/docs/rules/no-dupe-class-members |
|
'no-dupe-class-members': 'error', |
|
|
|
// disallow importing from the same path more than once |
|
// https://eslint.org/docs/rules/no-duplicate-imports |
|
// replaced by https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-duplicates.md |
|
'no-duplicate-imports': 'off', |
|
|
|
// disallow symbol constructor |
|
// https://eslint.org/docs/rules/no-new-symbol |
|
'no-new-symbol': 'error', |
|
|
|
// Disallow specified names in exports |
|
// https://eslint.org/docs/rules/no-restricted-exports |
|
// TODO enable, semver-minor, once eslint v7 is required (which is major) |
|
'no-restricted-exports': ['off', { |
|
restrictedNamedExports: [ |
|
'default', // use `export default` to provide a default export |
|
'then', // this will cause tons of confusion when your module is dynamically `import()`ed |
|
], |
|
}], |
|
|
|
// disallow specific imports |
|
// https://eslint.org/docs/rules/no-restricted-imports |
|
'no-restricted-imports': ['off', { |
|
paths: [], |
|
patterns: [] |
|
}], |
|
|
|
// disallow to use this/super before super() calling in constructors. |
|
// https://eslint.org/docs/rules/no-this-before-super |
|
'no-this-before-super': 'error', |
|
|
|
// disallow useless computed property keys |
|
// https://eslint.org/docs/rules/no-useless-computed-key |
|
'no-useless-computed-key': 'error', |
|
|
|
// disallow unnecessary constructor |
|
// https://eslint.org/docs/rules/no-useless-constructor |
|
'no-useless-constructor': 'error', |
|
|
|
// disallow renaming import, export, and destructured assignments to the same name |
|
// https://eslint.org/docs/rules/no-useless-rename |
|
'no-useless-rename': ['error', { |
|
ignoreDestructuring: false, |
|
ignoreImport: false, |
|
ignoreExport: false, |
|
}], |
|
|
|
// require let or const instead of var |
|
'no-var': 'error', |
|
|
|
// require method and property shorthand syntax for object literals |
|
// https://eslint.org/docs/rules/object-shorthand |
|
'object-shorthand': ['error', 'always', { |
|
ignoreConstructors: false, |
|
avoidQuotes: true, |
|
}], |
|
|
|
// suggest using arrow functions as callbacks |
|
'prefer-arrow-callback': ['error', { |
|
allowNamedFunctions: false, |
|
allowUnboundThis: true, |
|
}], |
|
|
|
// suggest using of const declaration for variables that are never modified after declared |
|
'prefer-const': ['error', { |
|
destructuring: 'any', |
|
ignoreReadBeforeAssign: true, |
|
}], |
|
|
|
// Prefer destructuring from arrays and objects |
|
// https://eslint.org/docs/rules/prefer-destructuring |
|
'prefer-destructuring': ['error', { |
|
VariableDeclarator: { |
|
array: false, |
|
object: true, |
|
}, |
|
AssignmentExpression: { |
|
array: true, |
|
object: false, |
|
}, |
|
}, { |
|
enforceForRenamedProperties: false, |
|
}], |
|
|
|
// disallow parseInt() in favor of binary, octal, and hexadecimal literals |
|
// https://eslint.org/docs/rules/prefer-numeric-literals |
|
'prefer-numeric-literals': 'error', |
|
|
|
// suggest using Reflect methods where applicable |
|
// https://eslint.org/docs/rules/prefer-reflect |
|
'prefer-reflect': 'off', |
|
|
|
// use rest parameters instead of arguments |
|
// https://eslint.org/docs/rules/prefer-rest-params |
|
'prefer-rest-params': 'error', |
|
|
|
// suggest using the spread operator instead of .apply() |
|
// https://eslint.org/docs/rules/prefer-spread |
|
'prefer-spread': 'error', |
|
|
|
// suggest using template literals instead of string concatenation |
|
// https://eslint.org/docs/rules/prefer-template |
|
'prefer-template': 'error', |
|
|
|
// disallow generator functions that do not have yield |
|
// https://eslint.org/docs/rules/require-yield |
|
'require-yield': 'error', |
|
|
|
// enforce spacing between object rest-spread |
|
// https://eslint.org/docs/rules/rest-spread-spacing |
|
'rest-spread-spacing': ['error', 'never'], |
|
|
|
// import sorting |
|
// https://eslint.org/docs/rules/sort-imports |
|
'sort-imports': ['off', { |
|
ignoreCase: false, |
|
ignoreDeclarationSort: false, |
|
ignoreMemberSort: false, |
|
memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'], |
|
}], |
|
|
|
// require a Symbol description |
|
// https://eslint.org/docs/rules/symbol-description |
|
'symbol-description': 'error', |
|
|
|
// enforce usage of spacing in template strings |
|
// https://eslint.org/docs/rules/template-curly-spacing |
|
'template-curly-spacing': 'error', |
|
|
|
// enforce spacing around the * in yield* expressions |
|
// https://eslint.org/docs/rules/yield-star-spacing |
|
'yield-star-spacing': ['error', 'after'] |
|
} |
|
};
|
|
|