presubmit_support.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # Copyright 2017 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. from . import css_checker
  5. from . import html_checker
  6. from . import js_checker
  7. from . import resource_checker
  8. def IsResource(f):
  9. return f.LocalPath().endswith(('.html', '.css', '.js', '.ts'))
  10. def CheckStyle(input_api, output_api, file_filter=lambda f: True):
  11. apis = input_api, output_api
  12. wrapped_filter = lambda f: file_filter(f) and IsResource(f)
  13. checkers = [
  14. css_checker.CSSChecker(*apis, file_filter=wrapped_filter),
  15. html_checker.HtmlChecker(*apis, file_filter=wrapped_filter),
  16. js_checker.JSChecker(*apis, file_filter=wrapped_filter),
  17. resource_checker.ResourceChecker(*apis, file_filter=wrapped_filter),
  18. ]
  19. results = []
  20. for checker in checkers:
  21. results.extend(checker.RunChecks())
  22. return results
  23. def CheckStyleESLint(input_api, output_api):
  24. should_check = lambda f: f.LocalPath().endswith(('.js', '.ts'))
  25. files_to_check = input_api.AffectedFiles(file_filter=should_check,
  26. include_deletes=False)
  27. if not files_to_check:
  28. return []
  29. return js_checker.JSChecker(input_api,
  30. output_api).RunEsLintChecks(files_to_check)
  31. def DisallowIncludes(input_api, output_api, msg):
  32. return resource_checker.ResourceChecker(
  33. input_api, output_api, file_filter=IsResource).DisallowIncludes(msg)