[Prettier] Add Prettier dependency, to format web files (#15932)

* Add prettier

* Integrate prettier with presubmit format checks.

* Use the usual presubmit diff for Prettier to support --files option.

* Disable prettier presubmit check.

---------

Co-authored-by: Aleksey Khoroshilov <akhoroshilov@brave.com>
This commit is contained in:
Jay Harris
2023-02-16 10:07:55 -08:00
committed by GitHub
co-authored by Aleksey Khoroshilov
parent 9cf5ef2925
commit 4a256f79e8
5 changed files with 139 additions and 17 deletions
+35 -1
View File
@@ -7,9 +7,10 @@ import copy
import os
import sys
import import_inline
import brave_node
import chromium_presubmit_overrides
import git_cl
import import_inline
import override_utils
USE_PYTHON3 = True
@@ -54,6 +55,39 @@ def CheckPatchFormatted(input_api, output_api):
is_format_required = git_cl_format_code == 2
if not is_format_required or input_api.PRESUBMIT_FIX:
# Use Prettier to format other file types.
files_to_check = (
# Enable when files will be formatted.
# r'.+\.js$',
# r'.+\.ts$',
# r'.+\.tsx$',
)
files_to_skip = input_api.DEFAULT_FILES_TO_SKIP
file_filter = lambda f: input_api.FilterSourceFile(
f, files_to_check=files_to_check, files_to_skip=files_to_skip)
affected_files = input_api.AffectedFiles(file_filter=file_filter,
include_deletes=False)
files_to_format = [f.AbsoluteLocalPath() for f in affected_files]
node_args = [
brave_node.PathInNodeModules('prettier', 'bin-prettier'),
'--write' if input_api.PRESUBMIT_FIX else '--check',
]
files_per_command = 25 if input_api.is_windows else 1000
for i in range(0, len(files_to_format), files_per_command):
args = node_args + files_to_format[i:i + files_per_command]
try:
brave_node.RunNode(args)
except RuntimeError as err:
if 'Forgot to run Prettier?' in str(err):
is_format_required = True
break
# Raise on unexpected output. Could be node or prettier issues.
raise
if is_format_required:
if input_api.PRESUBMIT_FIX:
raise RuntimeError('--fix was passed, but format has failed')