| # 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 |