@@ -3,7 +3,7 @@ const parser = require('@solidity-parser/parser')
33const glob = require ( 'glob' )
44const ignore = require ( 'ignore' )
55const astParents = require ( 'ast-parents' )
6- const { applyExtends } = require ( './config/config-file' )
6+ const { applyExtends, loadConfigForFile } = require ( './config/config-file' )
77const Reporter = require ( './reporter' )
88const TreeListener = require ( './tree-listener' )
99const checkers = require ( './rules/index' )
@@ -51,20 +51,21 @@ function processStr(inputStr, config = {}, fileName = '') {
5151 return reporter
5252}
5353
54- function processFile ( file , config ) {
55- const report = processStr ( fs . readFileSync ( file ) . toString ( ) , config , file )
54+ // Si se pasa config explícita, úsala. Si no, usa la jerárquica (.solhint.json)
55+ function processFile ( file , config , rootDir = process . cwd ( ) ) {
56+ const finalConfig = config !== undefined ? config : loadConfigForFile ( file , rootDir )
57+ const report = processStr ( fs . readFileSync ( file ) . toString ( ) , finalConfig , file )
5658 report . file = file
57-
5859 return report
5960}
6061
61- function processPath ( path , config ) {
62- const ignoreFilter = ignore ( { allowRelativePaths : true } ) . add ( config . excludedFiles )
63-
64- const allFiles = glob . sync ( path , { nodir : true } )
62+ function processPath ( pattern , config , rootDir = process . cwd ( ) ) {
63+ const ignoreFilter = ignore ( { allowRelativePaths : true } ) . add (
64+ ( config && config . excludedFiles ) || [ ]
65+ )
66+ const allFiles = glob . sync ( pattern , { nodir : true } )
6567 const files = ignoreFilter . filter ( allFiles )
66-
67- return files . map ( ( curFile ) => processFile ( curFile , config ) )
68+ return files . map ( ( curFile ) => processFile ( curFile , config , rootDir ) )
6869}
6970
7071module . exports = { processPath, processFile, processStr }
0 commit comments