Tim van der Lippe | 33543ac | 2020-12-14 14:37:45 | [diff] [blame] | 1 | // Copyright 2020 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
Ergün Erdoğmuş | 5f638ba | 2022-05-05 09:30:21 | [diff] [blame] | 5 | // clang-format off |
Tim van der Lippe | 406249f | 2020-12-14 14:59:10 | [diff] [blame] | 6 | const path = require('path'); |
| 7 | const rulesDirPlugin = require('eslint-plugin-rulesdir'); |
| 8 | rulesDirPlugin.RULES_DIR = path.join(__dirname, '..', 'scripts', 'eslint_rules', 'lib'); |
| 9 | |
Tim van der Lippe | 33543ac | 2020-12-14 14:37:45 | [diff] [blame] | 10 | module.exports = { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 11 | rules: { |
Simon Zünd | f6afbca | 2021-03-02 06:11:14 | [diff] [blame] | 12 | // L10n rules are only relevant in 'front_end'. |
Jack Franklin | 18c7191 | 2021-12-01 14:58:00 | [diff] [blame] | 13 | 'rulesdir/l10n_filename_matches': [ |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 14 | 'error', { |
Jack Franklin | 18c7191 | 2021-12-01 14:58:00 | [diff] [blame] | 15 | rootFrontendDirectory: __dirname, |
| 16 | } |
| 17 | ], |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 18 | 'rulesdir/l10n_i18nString_call_only_with_uistrings': 'error', |
| 19 | 'rulesdir/l10n_no_i18nString_calls_module_instantiation': 'error', |
| 20 | 'rulesdir/l10n_no_locked_or_placeholder_only_phrase': 'error', |
| 21 | 'rulesdir/l10n_no_uistrings_export': 'error', |
| 22 | 'rulesdir/l10n_no_unused_message': 'error', |
Simon Zünd | f6afbca | 2021-03-02 06:11:14 | [diff] [blame] | 23 | }, |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 24 | overrides: [ |
Sigurd Schneider | c8702c9 | 2021-02-12 10:10:05 | [diff] [blame] | 25 | { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 26 | files: ['*.ts'], |
| 27 | rules: { |
Danil Somsikov | acd635c | 2024-02-09 12:56:51 | [diff] [blame] | 28 | '@typescript-eslint/explicit-function-return-type': [ |
| 29 | 'error', { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 30 | allowExpressions: true, |
| 31 | allowConciseArrowFunctionExpressionsStartingWithVoid: true, |
| 32 | allowIIFEs:true, |
Danil Somsikov | acd635c | 2024-02-09 12:56:51 | [diff] [blame] | 33 | }, |
| 34 | ], |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 35 | 'rulesdir/no_importing_images_from_src': 'error', |
| 36 | 'rulesdir/enforce_bound_render_for_schedule_render': 'error', |
| 37 | 'rulesdir/enforce_custom_event_names': 'error', |
| 38 | 'rulesdir/set_data_type_reference': 'error', |
| 39 | 'rulesdir/no_bound_component_methods': 'error', |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 40 | 'rulesdir/lit_no_style_interpolation': 'error', |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 41 | 'rulesdir/ban_self_closing_custom_element_tagnames': 'error', |
| 42 | 'rulesdir/ban_style_tags_in_lit_html': 'error', |
| 43 | 'rulesdir/ban_a_tags_in_lit_html': 'error', |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 44 | 'rulesdir/check_css_import': 'error', |
Paul Irish | fa68c09 | 2024-07-12 21:24:07 | [diff] [blame] | 45 | 'rulesdir/enforce-optional-properties-last': 'error', |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 46 | 'rulesdir/check_enumerated_histograms': 'error', |
| 47 | 'rulesdir/check_was_shown_methods': 'error', |
| 48 | 'rulesdir/static_custom_event_names': 'error', |
| 49 | 'rulesdir/lit_html_host_this': 'error', |
| 50 | 'rulesdir/lit_html_no_attribute_quotes': 'error', |
| 51 | 'rulesdir/lit_template_result_or_nothing': 'error', |
| 52 | 'rulesdir/inject_checkbox_styles': 'error', |
Danil Somsikov | 08ac973 | 2024-08-06 19:45:07 | [diff] [blame] | 53 | 'rulesdir/jslog_context_list': 'error', |
Sigurd Schneider | c8702c9 | 2021-02-12 10:10:05 | [diff] [blame] | 54 | } |
| 55 | }, |
| 56 | { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 57 | files: ['*-meta.ts'], |
| 58 | rules: { |
Sigurd Schneider | c8702c9 | 2021-02-12 10:10:05 | [diff] [blame] | 59 | '@typescript-eslint/naming-convention': [ |
| 60 | 'error', { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 61 | selector: 'parameter', |
| 62 | format: ['camelCase', 'PascalCase'], |
| 63 | leadingUnderscore: 'allow', |
Sigurd Schneider | c8702c9 | 2021-02-12 10:10:05 | [diff] [blame] | 64 | } |
| 65 | ] |
| 66 | } |
Tim van der Lippe | db15a5f | 2021-12-15 14:33:27 | [diff] [blame] | 67 | }, |
| 68 | { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 69 | files: ['*.test.ts', '**/testing/*.ts'], |
| 70 | rules: { |
Benedikt Meurer | 8274407 | 2024-02-20 07:52:37 | [diff] [blame] | 71 | '@typescript-eslint/explicit-function-return-type': 'off', |
Benedikt Meurer | 8274407 | 2024-02-20 07:52:37 | [diff] [blame] | 72 | }, |
| 73 | }, |
| 74 | { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 75 | files: ['panels/**/components/*.ts', 'ui/components/**/*.ts', 'entrypoints/**/*.ts'], |
| 76 | rules: { |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 77 | 'rulesdir/use_private_class_members': 'error', |
Tim van der Lippe | db15a5f | 2021-12-15 14:33:27 | [diff] [blame] | 78 | } |
Alex Rudenko | 128c7b3 | 2023-05-03 11:03:43 | [diff] [blame] | 79 | }, |
| 80 | // TODO(crbug/1402569): Remove once LitElement is fully adopted. |
| 81 | { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 82 | files: ['panels/recorder/**/*.ts', 'panels/protocol_monitor/**/*.ts', 'ui/components/suggestion_input/*.ts'], |
| 83 | rules: { |
Alex Rudenko | 128c7b3 | 2023-05-03 11:03:43 | [diff] [blame] | 84 | // TODO(crbug/1402569): Reenable once https://github.com/microsoft/TypeScript/issues/48885 is closed. |
Nikolay Vitkov | c62f5c5 | 2024-01-17 13:23:34 | [diff] [blame] | 85 | 'rulesdir/use_private_class_members': 'off', |
Alex Rudenko | 128c7b3 | 2023-05-03 11:03:43 | [diff] [blame] | 86 | } |
Danil Somsikov | 1a6d02a | 2024-08-27 15:21:01 | [diff] [blame] | 87 | }, |
| 88 | { |
Jack Franklin | 2d72d76 | 2024-09-23 11:05:05 | [diff] [blame] | 89 | files: ['generated/SupportedCSSProperties.js'], |
| 90 | rules: { |
Danil Somsikov | 1a6d02a | 2024-08-27 15:21:01 | [diff] [blame] | 91 | 'rulesdir/jslog_context_list': 'error', |
| 92 | } |
Tim van der Lippe | 33543ac | 2020-12-14 14:37:45 | [diff] [blame] | 93 | } |
Sigurd Schneider | c8702c9 | 2021-02-12 10:10:05 | [diff] [blame] | 94 | ] |
Tim van der Lippe | 33543ac | 2020-12-14 14:37:45 | [diff] [blame] | 95 | }; |
Ergün Erdoğmuş | 5f638ba | 2022-05-05 09:30:21 | [diff] [blame] | 96 | // clang-format on |