33 * https://github.com/WordPress/gutenberg/blob/%40wordpress/eslint-plugin%4014.1.0/packages/eslint-plugin/configs/recommended.js
44 */
55
6- const TsEsLintPlugin = require ( '@typescript-eslint/eslint-plugin' ) ;
76const TsEsLintParser = require ( '@typescript-eslint/parser' ) ;
87const JsDoc = require ( 'eslint-plugin-jsdoc' ) ;
8+ const tseslint = require ( 'typescript-eslint' ) ;
9+
10+ const files = [ '**/*.ts' , '**/*.tsx' , '**/*.mts' , '**/*.cts' ] ;
11+
12+ /**
13+ * @param {import('eslint').Linter.Config } config
14+ * @returns {import('eslint').Linter.Config }
15+ */
16+ const addFiles = config => {
17+ if ( ! config . files ) {
18+ config . files = files ;
19+ }
20+
21+ return config ;
22+ } ;
23+
24+ const tsEslintTypeChecked = tseslint . configs . recommendedTypeChecked . map ( addFiles ) ;
25+ const tsEslintStrict = tseslint . configs . strict . map ( addFiles ) ; // Already includes `recommended`
926
1027/** @type import('eslint').Linter.Config[] */
1128module . exports = [
29+ ...tsEslintTypeChecked ,
30+ ...tsEslintStrict ,
1231 {
1332 ignores : [ '**/*.d.ts' , '**/*.d.cts' , '**/*.d.mts' ] ,
14- files : [ '**/*.ts' , '**/*.tsx' , '**/*.cts' , '**/*.mts' ] ,
33+ files,
1534 languageOptions : {
1635 parser : TsEsLintParser ,
1736 parserOptions : {
@@ -20,14 +39,9 @@ module.exports = [
2039 } ,
2140 plugins : {
2241 '@automattic/wpvip' : require ( '../plugin' ) ,
23- '@typescript-eslint' : TsEsLintPlugin ,
2442 jsdoc : JsDoc ,
2543 } ,
2644 rules : {
27- ...TsEsLintPlugin . configs [ 'eslint-recommended' ] . rules ,
28- ...TsEsLintPlugin . configs [ 'recommended-requiring-type-checking' ] . rules ,
29- ...TsEsLintPlugin . configs . strict . rules ,
30-
3145 // Ensures NestJS route prefixes are correctly formatted.
3246 '@automattic/wpvip/nestjs-route-prefix' : 'error' ,
3347
0 commit comments