@@ -32,6 +32,9 @@ ESLINT ?= $(BIN_DIR)/eslint
3232# Define the path to the ESLint configuration file:
3333ESLINT_TS_CONF ?= $(CONFIG_DIR ) /eslint/.eslintrc.typescript.js
3434
35+ # Define the path to a TypeScript configuration file:
36+ TS_CONFIG ?= $(CONFIG_DIR ) /typescript/tsconfig.json
37+
3538# Define the path to the ESLint ignore file:
3639ESLINT_IGNORE ?= $(ROOT_DIR ) /.eslintignore
3740
@@ -74,13 +77,21 @@ ifeq ($(FAIL_FAST), true)
7477 $(QUIET) $(FIND_TYPESCRIPT_DECLARATIONS_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r file; do \
7578 echo ''; \
7679 echo "Linting file: $$file"; \
77- $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) $$file || exit 1; \
80+ DIR=`dirname $$file`; \
81+ LOCAL_TS_CONFIG=$$DIR/tsconfig.json; \
82+ cp $(TS_CONFIG) $$DIR; \
83+ $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) --parser-options=project:$$LOCAL_TS_CONFIG $$file || exit 1; \
84+ rm $$LOCAL_TS_CONFIG; \
7885 done
7986else
8087 $(QUIET) $(FIND_TYPESCRIPT_DECLARATIONS_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r file; do \
8188 echo ''; \
8289 echo "Linting file: $$file"; \
83- $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) $$file || echo 'Linting failed.'; \
90+ DIR=`dirname $$file`; \
91+ LOCAL_TS_CONFIG=$$DIR/tsconfig.json; \
92+ cp $(TS_CONFIG) $$DIR; \
93+ $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) --parser-options=project:$$LOCAL_TS_CONFIG $$file || echo 'Linting failed.'; \
94+ rm $$LOCAL_TS_CONFIG; \
8495 done
8596endif
8697
@@ -107,13 +118,21 @@ ifeq ($(FAIL_FAST), true)
107118 $(QUIET) $(FIND_TYPESCRIPT_DECLARATIONS_TESTS_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r file; do \
108119 echo ''; \
109120 echo "Linting file: $$file"; \
110- $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) $$file || exit 1; \
121+ DIR=`dirname $$file`; \
122+ LOCAL_TS_CONFIG=$$DIR/tsconfig.json; \
123+ cp $(TS_CONFIG) $$DIR; \
124+ $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) --parser-options=project:$$LOCAL_TS_CONFIG $$file || exit 1; \
125+ rm $$LOCAL_TS_CONFIG; \
111126 done
112127else
113128 $(QUIET) $(FIND_TYPESCRIPT_DECLARATIONS_TESTS_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r file; do \
114129 echo ''; \
115130 echo "Linting file: $$file"; \
116- $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) $$file || echo 'Linting failed.'; \
131+ DIR=`dirname $$file`; \
132+ LOCAL_TS_CONFIG=$$DIR/tsconfig.json; \
133+ cp $(TS_CONFIG) $$DIR; \
134+ $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) --parser-options=project:$$LOCAL_TS_CONFIG $$file || echo 'Linting failed.'; \
135+ rm $$LOCAL_TS_CONFIG; \
117136 done
118137endif
119138
@@ -138,13 +157,21 @@ ifeq ($(FAIL_FAST), true)
138157 $(QUIET) for file in $(FILES); do \
139158 echo ''; \
140159 echo "Linting file: $$file"; \
141- $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) $$file || exit 1; \
160+ DIR=`dirname $$file`; \
161+ LOCAL_TS_CONFIG=$$DIR/tsconfig.json; \
162+ cp $(TS_CONFIG) $$DIR; \
163+ $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) --parser-options=project:$$LOCAL_TS_CONFIG $$file || exit 1; \
164+ rm $$LOCAL_TS_CONFIG; \
142165 done
143166else
144167 $(QUIET) for file in $(FILES); do \
145168 echo ''; \
146169 echo "Linting file: $$file"; \
147- $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) $$file || echo 'Linting failed.'; \
170+ DIR=`dirname $$file`; \
171+ LOCAL_TS_CONFIG=$$DIR/tsconfig.json; \
172+ cp $(TS_CONFIG) $$DIR; \
173+ $(ESLINT) $(ESLINT_TS_FLAGS) --config $(ESLINT_TS_CONF) --parser-options=project:$$LOCAL_TS_CONFIG $$file || echo 'Linting failed.'; \
174+ rm $$LOCAL_TS_CONFIG; \
148175 done
149176endif
150177
0 commit comments