123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- // Copyright 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- module.exports = {
- 'root': true,
- 'env': {
- 'browser': true,
- 'es2020': true,
- },
- 'parserOptions': {
- 'ecmaVersion': 2020,
- 'sourceType': 'module',
- },
- 'rules': {
- // Enabled checks.
- 'brace-style': ['error', '1tbs'],
- // https://google.github.io/styleguide/jsguide.html#features-arrays-trailing-comma
- // https://google.github.io/styleguide/jsguide.html#features-objects-use-trailing-comma
- 'comma-dangle': ['error', 'always-multiline'],
- 'curly': ['error', 'multi-line', 'consistent'],
- 'new-parens': 'error',
- 'no-array-constructor': 'error',
- 'no-console': ['error', {allow: ['info', 'warn', 'error', 'assert']}],
- 'no-extra-boolean-cast': 'error',
- 'no-extra-semi': 'error',
- 'no-new-wrappers': 'error',
- 'no-restricted-properties': [
- 'error',
- {
- 'property': '__lookupGetter__',
- 'message': 'Use Object.getOwnPropertyDescriptor',
- },
- {
- 'property': '__lookupSetter__',
- 'message': 'Use Object.getOwnPropertyDescriptor',
- },
- {
- 'property': '__defineGetter__',
- 'message': 'Use Object.defineProperty',
- },
- {
- 'property': '__defineSetter__',
- 'message': 'Use Object.defineProperty',
- },
- {
- 'object': 'cr',
- 'property': 'exportPath',
- 'message': 'Use ES modules or cr.define() instead',
- },
- ],
- 'no-throw-literal': 'error',
- 'no-trailing-spaces': 'error',
- 'no-var': 'error',
- 'prefer-const': 'error',
- 'quotes': ['error', 'single', {allowTemplateLiterals: true}],
- 'semi': ['error', 'always'],
- // https://google.github.io/styleguide/jsguide.html#features-one-variable-per-declaration
- 'one-var': ['error', {
- let: 'never',
- const: 'never',
- }],
- // TODO(dpapad): Add more checks according to our styleguide.
- },
- 'overrides': [{
- 'files': ['**/*.ts'],
- 'parser': './third_party/node/node_modules/@typescript-eslint/parser',
- 'plugins': [
- '@typescript-eslint',
- ],
- 'rules': {
- 'no-unused-vars': 'off',
- '@typescript-eslint/no-unused-vars': [
- 'error', {
- argsIgnorePattern: '^_',
- varsIgnorePattern: '^_',
- }
- ],
- 'semi': 'off',
- '@typescript-eslint/semi': ['error'],
- // https://google.github.io/styleguide/tsguide.html#arrayt-type
- '@typescript-eslint/array-type': ['error', {
- default: 'array-simple',
- }],
- // https://google.github.io/styleguide/tsguide.html#type-assertions-syntax
- '@typescript-eslint/consistent-type-assertions': ['error', {
- assertionStyle: 'as',
- }],
- // https://google.github.io/styleguide/tsguide.html#interfaces-vs-type-aliases
- "@typescript-eslint/consistent-type-definitions": ['error', 'interface'],
- // https://google.github.io/styleguide/jsguide.html#naming
- '@typescript-eslint/naming-convention': [
- 'error',
- {
- selector: ['class', 'interface', 'typeAlias', 'enum', 'typeParameter'],
- format: ['PascalCase'],
- },
- {
- selector: 'enumMember',
- format: ['UPPER_CASE'],
- },
- {
- selector: 'classMethod',
- format: ['camelCase'],
- modifiers: ['public'],
- },
- {
- selector: 'classMethod',
- format: ['camelCase'],
- modifiers: ['private'],
- trailingUnderscore: 'allow',
- },
- {
- selector: 'classProperty',
- format: ['UPPER_CASE'],
- modifiers: ['private', 'static', 'readonly'],
- },
- {
- selector: 'classProperty',
- format: ['UPPER_CASE'],
- modifiers: ['public', 'static', 'readonly'],
- },
- {
- selector: 'classProperty',
- format: ['camelCase'],
- modifiers: ['public'],
- },
- {
- selector: 'classProperty',
- format: ['camelCase'],
- modifiers: ['private'],
- trailingUnderscore: 'allow',
- },
- {
- selector: 'parameter',
- format: ['camelCase'],
- leadingUnderscore: 'allow',
- },
- {
- selector: 'function',
- format: ['camelCase'],
- },
- ],
- '@typescript-eslint/member-delimiter-style': ['error', {
- multiline: {
- delimiter: 'comma',
- requireLast: true,
- },
- singleline: {
- delimiter: 'comma',
- requireLast: false,
- },
- overrides: {
- interface: {
- multiline: {
- delimiter: 'semi',
- requireLast: true,
- },
- singleline: {
- delimiter: 'semi',
- requireLast: false,
- },
- },
- },
- }],
- // https://google.github.io/styleguide/tsguide.html#wrapper-types
- '@typescript-eslint/ban-types': ['error', {
- extendDefaults: false,
- types: {
- String: {
- message: 'Use string instead',
- fixWith: 'string',
- },
- Boolean: {
- message: 'Use boolean instead',
- fixWith: 'boolean',
- },
- Number: {
- message: 'Use number instead',
- fixWith: 'number',
- },
- Symbol: {
- message: 'Use symbol instead',
- fixWith: 'symbol',
- },
- BigInt: {
- message: 'Use bigint instead',
- fixWith: 'bigint',
- },
- }
- }],
- }
- }]
- };
|