diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a8525a1b176..faafa8860e8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -64,10 +64,10 @@ repos: hooks: - id: eslint name: eslint - entry: bash -c 'cd superset-frontend && npm run eslint -- $(echo "$@" | sed "s|superset-frontend/||g")' - language: system + entry: ./scripts/eslint.sh + language: script pass_filenames: true - files: \.(js|jsx|ts|tsx)$ + files: ^superset-frontend\/.*\.(js|jsx|ts|tsx)$ - id: type-checking-frontend name: Type-Checking (Frontend) entry: ./scripts/check-type.js diff --git a/scripts/eslint.sh b/scripts/eslint.sh new file mode 100755 index 00000000000..d8593134136 --- /dev/null +++ b/scripts/eslint.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e + +script_dir="$(dirname "$(realpath "$0")")" +root_dir="$(dirname "$script_dir")" +frontend_dir=superset-frontend + +if [[ ! -d "$root_dir/$frontend_dir" ]]; then + echo "Error: $frontend_dir directory not found in $root_dir" >&2 + exit 1 +fi + +cd "$root_dir/$frontend_dir" +npm run eslint -- "${@//$frontend_dir\//}"