@@ -521,11 +521,11 @@ private bool CheckValidCommandTarget(DependencyNode node) {
521521 return true ;
522522 }
523523
524- public async System . Threading . Tasks . Task InstallMissingModules ( ) {
524+ private async System . Threading . Tasks . Task RunNpmCommand ( Func < INpmCommander , System . Threading . Tasks . Task > impl ) {
525525 DoPreCommandActions ( ) ;
526526 try {
527527 using ( var commander = NpmController . CreateNpmCommander ( ) ) {
528- await commander . Install ( ) ;
528+ await impl ( commander ) ;
529529 }
530530 } catch ( NpmNotFoundException nnfe ) {
531531 ErrorHelper . ReportNpmNotInstalled ( null , nnfe ) ;
@@ -534,6 +534,10 @@ public async System.Threading.Tasks.Task InstallMissingModules() {
534534 }
535535 }
536536
537+ public System . Threading . Tasks . Task InstallMissingModules ( ) {
538+ return RunNpmCommand ( commander => commander . Install ( ) ) ;
539+ }
540+
537541 public async System . Threading . Tasks . Task InstallMissingModule ( DependencyNode node ) {
538542 if ( ! CheckValidCommandTarget ( node ) ) {
539543 return ;
@@ -552,41 +556,27 @@ public async System.Threading.Tasks.Task InstallMissingModule(DependencyNode nod
552556 var package = node . Package ;
553557 var dep = root . PackageJson . AllDependencies [ package . Name ] ;
554558
555- DoPreCommandActions ( ) ;
556- try {
557- using ( var commander = NpmController . CreateNpmCommander ( ) ) {
558- await commander . InstallPackageByVersionAsync (
559- package . Name ,
560- null == dep ? "*" : dep . VersionRangeText ,
561- DependencyType . Standard ,
562- false ) ;
563- }
564- } catch ( NpmNotFoundException nnfe ) {
565- ErrorHelper . ReportNpmNotInstalled ( null , nnfe ) ;
566- } finally {
567- AllowCommands ( ) ;
568- }
569- }
570-
571- internal async System . Threading . Tasks . Task UpdateModules ( IList < HierarchyNode > nodes ) {
572- DoPreCommandActions ( ) ;
573- try {
574- using ( var commander = NpmController . CreateNpmCommander ( ) ) {
575- if ( nodes . Count == 1 && nodes [ 0 ] == this ) {
576- await commander . UpdatePackagesAsync ( ) ;
577- } else {
578- var valid = nodes . OfType < DependencyNode > ( ) . Where ( CheckValidCommandTarget ) . ToList ( ) ;
579- var list = valid . Select ( node => node . Package ) . ToList ( ) ;
580- if ( list . Count > 0 ) {
581- await commander . UpdatePackagesAsync ( list ) ;
582- }
559+ await RunNpmCommand ( async commander => {
560+ await commander . InstallPackageByVersionAsync (
561+ package . Name ,
562+ null == dep ? "*" : dep . VersionRangeText ,
563+ DependencyType . Standard ,
564+ false ) ;
565+ } ) ;
566+ }
567+
568+ internal System . Threading . Tasks . Task UpdateModules ( IList < HierarchyNode > nodes ) {
569+ return RunNpmCommand ( async commander => {
570+ if ( nodes . Count == 1 && nodes [ 0 ] == this ) {
571+ await commander . UpdatePackagesAsync ( ) ;
572+ } else {
573+ var valid = nodes . OfType < DependencyNode > ( ) . Where ( CheckValidCommandTarget ) . ToList ( ) ;
574+ var list = valid . Select ( node => node . Package ) . ToList ( ) ;
575+ if ( list . Count > 0 ) {
576+ await commander . UpdatePackagesAsync ( list ) ;
583577 }
584578 }
585- } catch ( NpmNotFoundException nnfe ) {
586- ErrorHelper . ReportNpmNotInstalled ( null , nnfe ) ;
587- } finally {
588- AllowCommands ( ) ;
589- }
579+ } ) ;
590580 }
591581
592582 public void UpdateModules ( ) {
@@ -597,48 +587,29 @@ public async System.Threading.Tasks.Task UpdateModule(DependencyNode node) {
597587 if ( ! CheckValidCommandTarget ( node ) ) {
598588 return ;
599589 }
600- DoPreCommandActions ( ) ;
601- try {
602- using ( var commander = NpmController . CreateNpmCommander ( ) ) {
603- await commander . UpdatePackagesAsync ( new [ ] { node . Package } ) ;
604- }
605- } catch ( NpmNotFoundException nnfe ) {
606- ErrorHelper . ReportNpmNotInstalled ( null , nnfe ) ;
607- } finally {
608- AllowCommands ( ) ;
609- }
590+ await RunNpmCommand ( async commander => {
591+ await commander . UpdatePackagesAsync ( new [ ] { node . Package } ) ;
592+ } ) ;
610593 }
611594
612- public async System . Threading . Tasks . Task UninstallModules ( ) {
613- DoPreCommandActions ( ) ;
614- try {
615- var selected = _projectNode . GetSelectedNodes ( ) ;
616- using ( var commander = NpmController . CreateNpmCommander ( ) ) {
617- foreach ( var node in selected . OfType < DependencyNode > ( ) . Where ( CheckValidCommandTarget ) ) {
618- await commander . UninstallPackageAsync ( node . Package . Name ) ;
619- }
595+
596+ public System . Threading . Tasks . Task UninstallModules ( ) {
597+ var selected = _projectNode . GetSelectedNodes ( ) ;
598+ return RunNpmCommand ( async commander => {
599+ foreach ( var node in selected . OfType < DependencyNode > ( ) . Where ( CheckValidCommandTarget ) ) {
600+ await commander . UninstallPackageAsync ( node . Package . Name ) ;
620601 }
621- } catch ( NpmNotFoundException nnfe ) {
622- ErrorHelper . ReportNpmNotInstalled ( null , nnfe ) ;
623- } finally {
624- AllowCommands ( ) ;
625- }
602+ } ) ;
626603 }
627604
628605 public async System . Threading . Tasks . Task UninstallModule ( DependencyNode node ) {
629606 if ( ! CheckValidCommandTarget ( node ) ) {
630607 return ;
631608 }
632- DoPreCommandActions ( ) ;
633- try {
634- using ( var commander = NpmController . CreateNpmCommander ( ) ) {
635- await commander . UninstallPackageAsync ( node . Package . Name ) ;
636- }
637- } catch ( NpmNotFoundException nnfe ) {
638- ErrorHelper . ReportNpmNotInstalled ( null , nnfe ) ;
639- } finally {
640- AllowCommands ( ) ;
641- }
609+
610+ await RunNpmCommand ( async commander => {
611+ await commander . UninstallPackageAsync ( node . Package . Name ) ;
612+ } ) ;
642613 }
643614
644615 #endregion
0 commit comments