You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | const { ESLint } = require('eslint'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const removeIgnoredFiles = async files => { | 
					
						
							|  |  |  |   const eslint = new ESLint(); | 
					
						
							|  |  |  |   const isIgnored = await Promise.all( | 
					
						
							|  |  |  |     files.map(file => { | 
					
						
							|  |  |  |       return eslint.isPathIgnored(file); | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |   ); | 
					
						
							|  |  |  |   const filteredFiles = files.filter((_, i) => !isIgnored[i]); | 
					
						
							|  |  |  |   return filteredFiles.join(' '); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const buildFormatCommand = async files => { | 
					
						
							|  |  |  |   const filesToLint = await removeIgnoredFiles(files); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (!filesToLint || !filesToLint.length) { | 
					
						
							|  |  |  |     return ''; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const results = filesToLint.map(f => path.relative(process.cwd(), f)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return results.length | 
					
						
							|  |  |  |     ? `prettier --ignore-unknown --list-different --write ${results.join(' ')}` | 
					
						
							|  |  |  |     : ''; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const buildLintCommand = async files => { | 
					
						
							|  |  |  |   const filesToLint = await removeIgnoredFiles(files); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (!filesToLint || !filesToLint.length) { | 
					
						
							|  |  |  |     return ''; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const results = filesToLint.map(f => path.relative(process.cwd(), f)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return results.length ? `eslint --cache ${results.join(' ')}` : ''; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = { | 
					
						
							|  |  |  |   '*.{css,js,json,scss,ts,tsx}': [buildFormatCommand, buildLintCommand], | 
					
						
							|  |  |  | }; |