123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- 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
- 'no-restricted-exports': ['error', {
- restrictedNamedExports: [
- 'default', // use `export default` to provide a default export
- 'then', // this will cause tons of confusion when your module is dynamically `import()`ed, and will break in most node ESM versions
- ],
- }],
- // 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 syntax 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']
- }
- };
|