88 rcfile:: Rcfile ,
99 specifier:: Specifier ,
1010 } ,
11- ignore :: { overrides :: OverrideBuilder , WalkBuilder } ,
11+ glob :: glob ,
1212 log:: debug,
1313 serde:: Deserialize ,
1414 serde_json:: Value ,
@@ -35,7 +35,6 @@ impl Packages {
3535 /// Get every package.json file matched by the user's source patterns
3636 pub fn from_config ( config : & Config ) -> Self {
3737 let file_paths = get_file_paths ( config) ;
38- debug ! ( "Found file paths: {file_paths:?}" ) ;
3938 let mut packages = Self :: new ( ) ;
4039 file_paths. iter ( ) . for_each ( |file_path| {
4140 if let Some ( package_json) = PackageJson :: from_file ( file_path) {
@@ -178,18 +177,25 @@ pub fn normalize_pattern(pattern: String) -> String {
178177/// Resolve every source glob pattern into their absolute file paths of
179178/// package.json files
180179fn get_file_paths ( config : & Config ) -> Vec < PathBuf > {
181- let cwd = & config. cli . cwd ;
182- let source_patterns = get_source_patterns ( config) ;
183- let mut glob_filters = OverrideBuilder :: new ( cwd) ;
184- for source_pattern in source_patterns {
185- glob_filters. add ( & source_pattern) . unwrap ( ) ;
186- }
187- WalkBuilder :: new ( cwd)
188- . overrides ( glob_filters. build ( ) . unwrap ( ) )
189- . build ( )
190- . filter_map ( Result :: ok)
191- . filter ( |entry| entry. file_type ( ) . is_some_and ( |ft| ft. is_file ( ) ) )
192- . map ( |entry| entry. into_path ( ) )
180+ get_source_patterns ( config)
181+ . iter ( )
182+ . map ( |pattern| {
183+ if PathBuf :: from ( pattern) . is_absolute ( ) {
184+ pattern. clone ( )
185+ } else {
186+ config. cli . cwd . join ( pattern) . to_str ( ) . unwrap ( ) . to_string ( )
187+ }
188+ } )
189+ . flat_map ( |pattern| glob ( & pattern) . ok ( ) )
190+ . flat_map ( |paths| {
191+ paths
192+ . filter_map ( Result :: ok)
193+ . filter ( |path| !path. to_string_lossy ( ) . contains ( "node_modules" ) )
194+ . fold ( vec ! [ ] , |mut paths, path| {
195+ paths. push ( path. clone ( ) ) ;
196+ paths
197+ } )
198+ } )
193199 . collect ( )
194200}
195201
@@ -230,10 +236,6 @@ fn get_source_patterns(config: &Config) -> Vec<String> {
230236 } )
231237 } )
232238 . map ( |patterns| patterns. into_iter ( ) . map ( normalize_pattern) . collect ( ) )
233- . map ( |patterns| {
234- debug ! ( "Found patterns: {patterns:?}" ) ;
235- patterns
236- } )
237239 . or_else ( get_default_patterns)
238240 . unwrap ( )
239241}
0 commit comments