@@ -413,14 +413,13 @@ def add_rsc_dependencies
413413 GeneratorMessages . add_info ( rsc_dependency_pin_info ) if used_version_pins
414414 return if add_packages ( rsc_packages )
415415
416- manual_install_packages = rsc_packages
417416 GeneratorMessages . add_warning ( rsc_dependency_pin_failed_warning ) if used_version_pins
418417
419418 GeneratorMessages . add_warning ( <<~MSG . strip )
420419 ⚠️ Failed to add React Server Components dependencies.
421420
422421 You can install them manually by running:
423- #{ manual_add_packages_command ( manual_install_packages ) }
422+ #{ manual_add_packages_command ( rsc_packages ) }
424423 MSG
425424 rescue StandardError => e
426425 manual_install_packages = rsc_packages_with_pin
@@ -613,18 +612,15 @@ def fallback_package_manager
613612 end
614613
615614 def build_install_args ( package_manager , dev , packages )
616- base_commands = {
617- "npm" => %w[ npm install --save-exact ] ,
618- "yarn" => %w[ yarn add --exact ] ,
619- "pnpm" => %w[ pnpm add --save-exact ] ,
620- "bun" => %w[ bun add --exact ]
621- }
622-
623- base_args = base_commands . fetch ( package_manager ) . dup
615+ base_args = package_manager_commands ( package_manager ) . fetch ( :install ) . dup
624616 base_args << dev_flag_for ( package_manager ) if dev
625617 base_args + packages
626618 end
627619
620+ def build_remove_args ( package_manager , packages )
621+ package_manager_commands ( package_manager ) . fetch ( :remove ) + packages
622+ end
623+
628624 def manual_add_packages_command ( packages , dev : false )
629625 build_install_args ( fallback_package_manager , dev , packages ) . join ( " " )
630626 end
@@ -634,14 +630,28 @@ def manual_install_dependencies_command
634630 end
635631
636632 def manual_remove_packages_command ( packages )
637- base_commands = {
638- "npm" => %w[ npm uninstall ] ,
639- "yarn" => %w[ yarn remove ] ,
640- "pnpm" => %w[ pnpm remove ] ,
641- "bun" => %w[ bun remove ]
642- }
643-
644- ( base_commands . fetch ( fallback_package_manager ) . dup + packages ) . join ( " " )
633+ build_remove_args ( fallback_package_manager , packages ) . join ( " " )
634+ end
635+
636+ def package_manager_commands ( package_manager )
637+ {
638+ "npm" => {
639+ install : %w[ npm install --save-exact ] ,
640+ remove : %w[ npm uninstall ]
641+ } ,
642+ "yarn" => {
643+ install : %w[ yarn add --exact ] ,
644+ remove : %w[ yarn remove ]
645+ } ,
646+ "pnpm" => {
647+ install : %w[ pnpm add --save-exact ] ,
648+ remove : %w[ pnpm remove ]
649+ } ,
650+ "bun" => {
651+ install : %w[ bun add --exact ] ,
652+ remove : %w[ bun remove ]
653+ }
654+ } . fetch ( package_manager )
645655 end
646656
647657 def dev_flag_for ( package_manager )
0 commit comments