예제 #1
0
        public async System.Threading.Tasks.Task InstallMissingModule(DependencyNode node)
        {
            if (!CheckValidCommandTarget(node))
            {
                return;
            }

            var root = _npmController.RootPackage;

            if (null == root)
            {
                return;
            }

            var pkgJson = root.PackageJson;

            if (null == pkgJson)
            {
                return;
            }

            var package = node.Package;
            var dep     = root.PackageJson.AllDependencies[package.Name];

            DoPreCommandActions();
            try {
                using (var commander = NpmController.CreateNpmCommander()) {
                    if (node.GetPropertiesObject().IsGlobalInstall)
                    {
                        //  I genuinely can't see a way this would ever happen but, just to be on the safe side...
                        await commander.InstallGlobalPackageByVersionAsync(
                            package.Name,
                            null == dep? "*" : dep.VersionRangeText);
                    }
                    else
                    {
                        await commander.InstallPackageByVersionAsync(
                            package.Name,
                            null == dep? "*" : dep.VersionRangeText,
                            DependencyType.Standard,
                            false);
                    }
                }
            } catch (NpmNotFoundException nnfe) {
                ErrorHelper.ReportNpmNotInstalled(null, nnfe);
            } finally {
                AllowCommands();
            }
        }
예제 #2
0
        private bool CheckValidCommandTarget(DependencyNode node)
        {
            if (null == node)
            {
                return(false);
            }
            var props = node.GetPropertiesObject();

            if (null == props || props.IsSubPackage)
            {
                return(false);
            }
            var package = node.Package;

            if (null == package)
            {
                return(false);
            }
            return(true);
        }
예제 #3
0
 public async System.Threading.Tasks.Task UninstallModule(DependencyNode node)
 {
     if (!CheckValidCommandTarget(node))
     {
         return;
     }
     DoPreCommandActions();
     try {
         using (var commander = NpmController.CreateNpmCommander()) {
             if (node.GetPropertiesObject().IsGlobalInstall)
             {
                 await commander.UninstallGlobalPackageAsync(node.Package.Name);
             }
             else
             {
                 await commander.UninstallPackageAsync(node.Package.Name);
             }
         }
     } catch (NpmNotFoundException nnfe) {
         ErrorHelper.ReportNpmNotInstalled(null, nnfe);
     } finally {
         AllowCommands();
     }
 }
예제 #4
0
 public async System.Threading.Tasks.Task UninstallModule(DependencyNode node) {
     if (!CheckValidCommandTarget(node)) {
         return;
     }
     DoPreCommandActions();
     try {
         using (var commander = NpmController.CreateNpmCommander()) {
             if (node.GetPropertiesObject().IsGlobalInstall) {
                 await commander.UninstallGlobalPackageAsync(node.Package.Name);
             } else {
                 await commander.UninstallPackageAsync(node.Package.Name);
             }
         }
     } catch (NpmNotFoundException nnfe) {
         ErrorHelper.ReportNpmNotInstalled(null, nnfe);
     } finally {
         AllowCommands();
     }
 }
예제 #5
0
        public async System.Threading.Tasks.Task InstallMissingModule(DependencyNode node) {
            if (!CheckValidCommandTarget(node)) {
                return;
            }

            var root = _npmController.RootPackage;
            if (null == root) {
                return;
            }

            var pkgJson = root.PackageJson;
            if (null == pkgJson) {
                return;
            }

            var package = node.Package;
            var dep = root.PackageJson.AllDependencies[package.Name];

            DoPreCommandActions();
            try {
                using (var commander = NpmController.CreateNpmCommander()) {
                    if (node.GetPropertiesObject().IsGlobalInstall) {
                        //  I genuinely can't see a way this would ever happen but, just to be on the safe side...
                        await commander.InstallGlobalPackageByVersionAsync(
                            package.Name,
                            null == dep ? "*" : dep.VersionRangeText);
                    } else {
                        await commander.InstallPackageByVersionAsync(
                            package.Name,
                            null == dep ? "*" : dep.VersionRangeText,
                            DependencyType.Standard,
                            false);
                    }
                }
            } catch (NpmNotFoundException nnfe) {
                ErrorHelper.ReportNpmNotInstalled(null, nnfe);
            } finally {
                AllowCommands();
            }
        }
예제 #6
0
 private bool CheckValidCommandTarget(DependencyNode node) {
     if (null == node) {
         return false;
     }
     var props = node.GetPropertiesObject();
     if (null == props || props.IsSubPackage) {
         return false;
     }
     var package = node.Package;
     if (null == package) {
         return false;
     }
     return true;
 }