| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Checks for new additions of JS (rather than TS) files.""" |
| |
| |
| def AddedJsFilesCheck(input_api, output_api, file_filter=lambda f: True): |
| results = [] |
| |
| def AddedJsFilesFilter(affected_file): |
| # Fastest way to see if a file has a .js extension. |
| return affected_file.LocalPath().endswith('.js') |
| |
| # Call AddedJsFilesFilter first because it is a cheap filter that will reject |
| # most files, thus reducing the number of calls to file_filter which might be |
| # expensive. |
| wrapped_filter = lambda f: AddedJsFilesFilter(f) and file_filter(f) |
| added_js_files = input_api.AffectedFiles( |
| include_deletes=False, file_filter=wrapped_filter |
| ) |
| |
| for f in added_js_files: |
| results += [ |
| output_api.PresubmitError( |
| 'Disallowed JS file found \'%s\'. New WebUI files must be written ' |
| 'in TypeScript instead.' % f.LocalPath() |
| ) |
| ] |
| |
| return results |