mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Add node installation from other than public site
This commit is contained in:
@@ -32,6 +32,7 @@ var paletteEditorEnabled = false;
|
||||
var settings;
|
||||
var moduleRe = /^(@[^/]+?[/])?[^/]+?$/;
|
||||
var slashRe = process.platform === "win32" ? /\\|[/]/ : /[/]/;
|
||||
var pkgurlRe = /^(https?|git(|\+https?|\+ssh|\+file)):\/\//;
|
||||
|
||||
function init(runtime) {
|
||||
events = runtime.events;
|
||||
@@ -76,14 +77,17 @@ function checkExistingModule(module,version) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function installModule(module,version) {
|
||||
function installModule(module,version,url) {
|
||||
activePromise = activePromise.then(() => {
|
||||
//TODO: ensure module is 'safe'
|
||||
return new Promise((resolve,reject) => {
|
||||
var installName = module;
|
||||
var isUpgrade = false;
|
||||
try {
|
||||
if (moduleRe.test(module)) {
|
||||
if (url && pkgurlRe.test(url)) {
|
||||
// Git remote url or Tarball url - check the valid package url
|
||||
installName = url;
|
||||
} else if (moduleRe.test(module)) {
|
||||
// Simple module name - assume it can be npm installed
|
||||
if (version) {
|
||||
installName += "@"+version;
|
||||
|
Reference in New Issue
Block a user