@@ -451,152 +451,34 @@ async fn after_code_generation(
451451 let hooks = RsdoctorPlugin :: get_compilation_hooks ( compilation. id ( ) ) ;
452452 let module_graph = compilation. get_module_graph ( ) ;
453453 let modules = module_graph. modules ( ) ;
454-
455- // 1. Collect Module Graph (Moved from optimize_chunk_modules)
456- if self . has_module_graph_feature ( RsdoctorPluginModuleGraphFeature :: ModuleGraph ) {
457- let mut rsd_modules = HashMap :: default ( ) ;
458- let mut rsd_dependencies = HashMap :: default ( ) ;
459-
460- let chunk_graph = & compilation. chunk_graph ;
461- let chunk_by_ukey = & compilation. chunk_by_ukey ;
462-
463- // 1.1 collect modules
464- rsd_modules. extend ( collect_modules (
465- & modules,
466- & module_graph,
467- chunk_graph,
468- & compilation. options . context ,
469- ) ) ;
470-
471- {
472- let mut module_ukey_map = MODULE_UKEY_MAP
473- . get_mut ( & compilation. id ( ) )
474- . expect ( "should have module ukey map" ) ;
475- for ( module_id, module) in rsd_modules. iter ( ) {
476- module_ukey_map. insert ( * module_id, module. ukey ) ;
477- }
478- }
479-
480- let module_ukey_map = MODULE_UKEY_MAP
454+ let rsd_module_original_sources = collect_module_original_sources (
455+ & modules,
456+ & MODULE_UKEY_MAP
481457 . get ( & compilation. id ( ) )
482- . expect ( "should have module ukey map" ) ;
483- // 1.2 collect concatenate children
484- let ( child_map, parent_map) = collect_concatenated_modules ( & modules) ;
485- for ( module_id, children) in child_map {
486- if let Some ( rsd_module) = rsd_modules. get_mut ( & module_id) {
487- rsd_module. modules . extend (
488- children
489- . iter ( )
490- . filter_map ( |i| module_ukey_map. get ( i) . copied ( ) )
491- . collect :: < HashSet < _ > > ( ) ,
492- ) ;
493- }
494- }
495-
496- // 1.3 collect concatenate parents
497- for ( module_id, parents) in parent_map {
498- if let Some ( rsd_module) = rsd_modules. get_mut ( & module_id) {
499- rsd_module. belong_modules . extend (
500- parents
501- . iter ( )
502- . filter_map ( |i| module_ukey_map. get ( i) . copied ( ) )
503- . collect :: < HashSet < _ > > ( ) ,
504- ) ;
505- }
506- }
507-
508- // 1.4 collect module dependencies
509- let dependency_infos = collect_module_dependencies ( & modules, & module_ukey_map, & module_graph) ;
510- for ( origin_module_id, dependencies) in dependency_infos {
511- for ( dep_module_id, ( dep_id, dependency) ) in dependencies {
512- if let Some ( rsd_module) = rsd_modules. get_mut ( & dep_module_id) {
513- rsd_module. imported . insert ( dependency. module ) ;
514- }
515- if let Some ( rsd_module) = rsd_modules. get_mut ( & origin_module_id) {
516- rsd_module. dependencies . insert ( dependency. ukey ) ;
517- }
518- rsd_dependencies. insert ( dep_id, dependency) ;
519- }
520- }
521-
522- // 1.5 Rsdoctor module add issuer_path
523- for ( module_id, _) in modules. iter ( ) {
524- let mut issuer_path = Vec :: new ( ) ;
525- let mut current_issuer = module_graph. get_issuer ( module_id) ;
526-
527- while let Some ( i) = current_issuer {
528- if let Some ( rsd_module) = rsd_modules. get_mut ( & i. identifier ( ) ) {
529- let module_ukey = rsd_module. ukey ;
530-
531- issuer_path. push ( RsdoctorStatsModuleIssuer {
532- ukey : Some ( module_ukey) ,
533- } ) ;
534- }
535-
536- current_issuer = module_graph. get_issuer ( & i. identifier ( ) ) ;
537- }
538-
539- if let Some ( rsd_module) = rsd_modules. get_mut ( module_id) {
540- rsd_module. issuer_path = Some ( issuer_path) ;
541- let bailout_reason = module_graph. get_optimization_bailout ( module_id) ;
542- rsd_module. bailout_reason = bailout_reason. iter ( ) . map ( |s| s. to_string ( ) ) . collect ( ) ;
543- }
544- }
458+ . expect ( "should have module ukey map" ) ,
459+ module_graph,
460+ compilation,
461+ ) ;
545462
546- // 1.6 collect chunk modules
547- let chunk_modules =
548- collect_chunk_modules ( chunk_by_ukey, & module_ukey_map, chunk_graph, & module_graph) ;
549-
550- let module_graph_hook = hooks. clone ( ) ;
551- tokio:: spawn ( async move {
552- match module_graph_hook
553- . borrow ( )
554- . module_graph
555- . call ( & mut RsdoctorModuleGraph {
556- modules : rsd_modules. into_values ( ) . collect :: < Vec < _ > > ( ) ,
557- dependencies : rsd_dependencies. into_values ( ) . collect :: < Vec < _ > > ( ) ,
558- chunk_modules,
559- } )
560- . await
561- {
562- Ok ( _) => { }
563- Err ( e) => panic ! ( "rsdoctor send module graph failed: {e}" ) ,
564- } ;
565- } ) ;
566- }
463+ let json_module_sizes = JSON_MODULE_SIZE_MAP
464+ . get ( & compilation. id ( ) )
465+ . map ( |map| map. clone ( ) )
466+ . unwrap_or_default ( ) ;
567467
568- // 2. Collect Module Sources
569- if self . has_module_graph_feature ( RsdoctorPluginModuleGraphFeature :: ModuleSources ) {
570- let rsd_module_original_sources = collect_module_original_sources (
571- & modules,
572- & MODULE_UKEY_MAP
573- . get ( & compilation. id ( ) )
574- . expect ( "should have module ukey map" ) ,
575- & module_graph,
576- compilation,
577- ) ;
578-
579- let json_module_sizes = JSON_MODULE_SIZE_MAP
580- . get ( & compilation. id ( ) )
581- . map ( |map| map. clone ( ) )
582- . unwrap_or_default ( ) ;
583-
584- let module_sources_hook = hooks. clone ( ) ;
585- tokio:: spawn ( async move {
586- match module_sources_hook
587- . borrow ( )
588- . module_sources
589- . call ( & mut RsdoctorModuleSourcesPatch {
590- module_original_sources : rsd_module_original_sources,
591- json_module_sizes,
592- } )
593- . await
594- {
595- Ok ( _) => { }
596- Err ( e) => panic ! ( "rsdoctor send module sources failed: {e}" ) ,
597- } ;
598- } ) ;
599- }
468+ tokio:: spawn ( async move {
469+ match hooks
470+ . borrow ( )
471+ . module_sources
472+ . call ( & mut RsdoctorModuleSourcesPatch {
473+ module_original_sources : rsd_module_original_sources,
474+ json_module_sizes,
475+ } )
476+ . await
477+ {
478+ Ok ( _) => { }
479+ Err ( e) => panic ! ( "rsdoctor send module sources failed: {e}" ) ,
480+ } ;
481+ } ) ;
600482
601483 Ok ( ( ) )
602484}
@@ -612,17 +494,24 @@ async fn after_process_assets(
612494 }
613495
614496 let hooks = RsdoctorPlugin :: get_compilation_hooks ( compilation. id ( ) ) ;
615-
497+ let assets = compilation . assets ( ) ;
616498 let chunk_by_ukey = & compilation. chunk_by_ukey ;
617499 let chunk_group_by_ukey = & compilation. chunk_group_by_ukey ;
618- let rsd_assets = collect_assets ( compilation. assets ( ) , chunk_by_ukey) ;
619- let rsd_chunk_assets = collect_chunk_assets ( chunk_by_ukey, & rsd_assets) ;
620- let rsd_entrypoint_assets = collect_entrypoint_assets (
500+
501+ // 1. collect assets
502+ let rsd_assets = collect_assets ( assets, chunk_by_ukey) ;
503+
504+ // 2. collect chunk assets
505+ let chunk_assets = collect_chunk_assets ( chunk_by_ukey, & rsd_assets) ;
506+
507+ // 3. collect entrypoint assets
508+ let entrypoint_ukey_map = ENTRYPOINT_UKEY_MAP
509+ . get ( & compilation. id ( ) )
510+ . expect ( "should have entrypoint ukey map" ) ;
511+ let entrypoint_assets = collect_entrypoint_assets (
621512 & compilation. entrypoints ,
622513 & rsd_assets,
623- & ENTRYPOINT_UKEY_MAP
624- . get ( & compilation. id ( ) )
625- . expect ( "should have entrypoint ukey map" ) ,
514+ & entrypoint_ukey_map,
626515 chunk_group_by_ukey,
627516 chunk_by_ukey,
628517 ) ;
@@ -633,8 +522,8 @@ async fn after_process_assets(
633522 . assets
634523 . call ( & mut RsdoctorAssetPatch {
635524 assets : rsd_assets. into_values ( ) . collect :: < Vec < _ > > ( ) ,
636- chunk_assets : rsd_chunk_assets ,
637- entrypoint_assets : rsd_entrypoint_assets ,
525+ chunk_assets,
526+ entrypoint_assets,
638527 } )
639528 . await
640529 {
0 commit comments