UNPKG

chrome-devtools-frontend

Version:
167 lines (164 loc) 5.7 kB
// Copyright 2020 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. // clang-format off const path = require('path'); const rulesDirPlugin = require('eslint-plugin-rulesdir'); rulesDirPlugin.RULES_DIR = path.join(__dirname, '..', 'scripts', 'eslint_rules', 'lib'); module.exports = { 'rules': { // L10n rules are only relevant in 'front_end'. 'rulesdir/l10n_filename_matches': [ 2, { rootFrontendDirectory: __dirname, } ], 'rulesdir/l10n_i18nString_call_only_with_uistrings': 2, 'rulesdir/l10n_no_i18nString_calls_module_instantiation': 2, 'rulesdir/l10n_no_locked_or_placeholder_only_phrase': 2, 'rulesdir/l10n_no_uistrings_export': 2, 'rulesdir/l10n_no_unused_message': 2, 'rulesdir/custom_element_definitions_location': [2, { rootFrontendDirectory: __dirname, }], 'rulesdir/custom_element_component_definition': 2, }, 'overrides': [ { 'files': ['*.ts'], 'rules': { '@typescript-eslint/explicit-function-return-type': 2, 'rulesdir/no_importing_images_from_src': 2, 'rulesdir/enforce_bound_render_for_schedule_render': 2, 'rulesdir/enforce_custom_event_names': 2, 'rulesdir/set_data_type_reference': 2, 'rulesdir/no_bound_component_methods': 2, 'rulesdir/lit_html_data_as_type': 2, 'rulesdir/lit_no_style_interpolation': 2, 'rulesdir/ban_literal_devtools_component_tag_names': 2, 'rulesdir/ban_self_closing_custom_element_tagnames': 2, 'rulesdir/ban_style_tags_in_lit_html': 2, 'rulesdir/ban_a_tags_in_lit_html': 2, 'rulesdir/check_component_naming': 2, 'rulesdir/check_css_import': 2, 'rulesdir/check_enumerated_histograms': 2, 'rulesdir/check_was_shown_methods': 2, 'rulesdir/static_custom_event_names': 2, 'rulesdir/lit_html_host_this': 2, 'rulesdir/lit_html_no_attribute_quotes': 2, 'rulesdir/lit_template_result_or_nothing': 2, 'rulesdir/inject_checkbox_styles': 2, '@typescript-eslint/naming-convention': [ 'error', { 'selector': ['property', 'parameterProperty'], 'format': ['camelCase'], }, { 'selector': 'property', 'modifiers': ['public'], 'format': ['camelCase'], 'leadingUnderscore': 'allow', }, { 'selector': 'classProperty', 'modifiers': ['static', 'readonly'], 'format': ['UPPER_CASE', 'camelCase'], }, { 'selector': 'method', 'format': ['camelCase'], }, { 'selector': 'function', 'format': ['camelCase'], }, { 'selector': 'variable', 'filter': { // Ignore localization variables. 'regex': '^(UIStrings|str_)$', 'match': false }, 'format': ['camelCase'], }, { // We are using camelCase, PascalCase and UPPER_CASE for top-level constants, allow the for now. 'selector': 'variable', 'modifiers': ['const'], 'filter': { // Ignore localization variables. 'regex': '^(UIStrings|str_)$', 'match': false }, 'format': ['camelCase', 'UPPER_CASE', 'PascalCase'], }, { // Public methods are currently in transition and may still have leading underscores. 'selector': 'method', 'modifiers': ['public'], 'format': ['camelCase'], 'leadingUnderscore': 'allow', }, { // Object literals may be constructed as arguments to external libraries which follow different styles. 'selector': ['objectLiteralMethod', 'objectLiteralProperty'], 'modifiers': ['public'], 'format': null, }, { 'selector': 'accessor', 'format': ['camelCase'], }, { 'selector': 'enumMember', 'format': ['PascalCase', 'UPPER_CASE'], }, { 'selector': ['typeLike'], 'format': ['PascalCase'], }, { 'selector': 'parameter', 'format': ['camelCase'], 'leadingUnderscore': 'allow', }, { // Ignore type properties that require quotes 'selector': ['typeProperty', 'enumMember'], 'format': null, 'modifiers': ['requiresQuotes'] } ] } }, { 'files': ['*-meta.ts'], 'rules': { '@typescript-eslint/naming-convention': [ 'error', { 'selector': 'parameter', 'format': ['camelCase', 'PascalCase'], 'leadingUnderscore': 'allow', } ] } }, { 'files': ['panels/**/components/*.ts', 'ui/components/**/*.ts', 'entrypoints/**/*.ts'], 'rules': { 'rulesdir/use_private_class_members': 2, } }, // TODO(crbug/1402569): Remove once LitElement is fully adopted. { 'files': ['panels/recorder/**/*.ts'], 'rules': { 'rulesdir/check_component_naming': 0, 'rulesdir/ban_literal_devtools_component_tag_names': 0, // TODO(crbug/1402569): Reenable once https://github.com/microsoft/TypeScript/issues/48885 is closed. 'rulesdir/use_private_class_members': 0, } } ] }; // clang-format on