mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
WIP: runtime api for node modules
This commit is contained in:
@@ -38,7 +38,7 @@ function checkBuild() {
|
||||
}
|
||||
}
|
||||
|
||||
var RED = {
|
||||
module.exports = {
|
||||
init: function(httpServer,userSettings) {
|
||||
server = httpServer;
|
||||
|
||||
@@ -79,12 +79,12 @@ var RED = {
|
||||
})
|
||||
},
|
||||
nodes: runtime.api,
|
||||
events: runtime.events,
|
||||
log: runtime.log,
|
||||
comms: api.comms,
|
||||
settings:runtime.settings,
|
||||
util: runtime.util,
|
||||
version: runtime.version,
|
||||
|
||||
comms: api.comms,
|
||||
library: api.library,
|
||||
auth: api.auth,
|
||||
|
||||
@@ -93,5 +93,3 @@ var RED = {
|
||||
get httpNode() { return nodeApp },
|
||||
get server() { return server }
|
||||
};
|
||||
|
||||
module.exports = RED;
|
||||
|
@@ -66,7 +66,7 @@ function start() {
|
||||
}
|
||||
log.info(log._("runtime.version",{component:"Node.js ",version:process.version}));
|
||||
log.info(log._("server.loading"));
|
||||
redNodes.init(settings,storage);
|
||||
redNodes.init(runtime);
|
||||
return redNodes.load().then(function() {
|
||||
|
||||
var i;
|
||||
|
@@ -64,11 +64,11 @@ function createNode(node,def) {
|
||||
}
|
||||
}
|
||||
|
||||
function init(_settings,storage) {
|
||||
settings = _settings;
|
||||
credentials.init(storage);
|
||||
flows.init(_settings,storage);
|
||||
registry.init(_settings);
|
||||
function init(runtime) {
|
||||
settings = runtime.settings;
|
||||
credentials.init(runtime.storage);
|
||||
flows.init(runtime.settings,runtime.storage);
|
||||
registry.init(runtime);
|
||||
}
|
||||
|
||||
function disableNode(id) {
|
||||
|
@@ -25,11 +25,11 @@ var installer = require("./installer");
|
||||
|
||||
var settings;
|
||||
|
||||
function init(_settings) {
|
||||
settings = _settings;
|
||||
installer.init(settings);
|
||||
loader.init(settings);
|
||||
registry.init(settings,loader);
|
||||
function init(runtime) {
|
||||
settings = runtime.settings;
|
||||
installer.init(runtime.settings);
|
||||
loader.init(runtime);
|
||||
registry.init(runtime.settings,loader);
|
||||
}
|
||||
|
||||
function addModule(module) {
|
||||
|
@@ -19,23 +19,25 @@ var fs = require("fs");
|
||||
var path = require("path");
|
||||
var semver = require("semver");
|
||||
|
||||
var events = require("../../events");
|
||||
|
||||
var localfilesystem = require("./localfilesystem");
|
||||
var registry = require("./registry");
|
||||
|
||||
var RED;
|
||||
var settings;
|
||||
var runtime;
|
||||
|
||||
var i18n = require("../../i18n");
|
||||
function registerMessageCatalog(info) {
|
||||
runtime.i18n.registerMessageCatalog(info.namespace,info.dir,info.file);
|
||||
}
|
||||
|
||||
events.on("node-locales-dir", function(info) {
|
||||
i18n.registerMessageCatalog(info.namespace,info.dir,info.file);
|
||||
});
|
||||
|
||||
function init(_settings) {
|
||||
settings = _settings;
|
||||
localfilesystem.init(settings);
|
||||
function init(_runtime) {
|
||||
runtime = _runtime;
|
||||
settings = runtime.settings;
|
||||
localfilesystem.init(runtime);
|
||||
if (runtime.events) {
|
||||
runtime.events.removeListener("node-locales-dir", registerMessageCatalog);
|
||||
runtime.events.on("node-locales-dir", registerMessageCatalog);
|
||||
}
|
||||
RED = require('../../../red');
|
||||
}
|
||||
|
||||
@@ -55,7 +57,7 @@ function loadNodeFiles(nodeFiles) {
|
||||
/* istanbul ignore else */
|
||||
if (nodeFiles.hasOwnProperty(module)) {
|
||||
if (nodeFiles[module].redVersion &&
|
||||
!semver.satisfies(RED.version().replace("-git",""), nodeFiles[module].redVersion)) {
|
||||
!semver.satisfies(runtime.version().replace("-git",""), nodeFiles[module].redVersion)) {
|
||||
//TODO: log it
|
||||
continue;
|
||||
}
|
||||
@@ -195,7 +197,7 @@ function loadNodeConfig(fileInfo) {
|
||||
fs.stat(path.join(path.dirname(file),"locales"),function(err,stat) {
|
||||
if (!err) {
|
||||
node.namespace = node.id;
|
||||
i18n.registerMessageCatalog(node.id,
|
||||
runtime.i18n.registerMessageCatalog(node.id,
|
||||
path.join(path.dirname(file),"locales"),
|
||||
path.basename(file,".js")+".json")
|
||||
.then(function() {
|
||||
@@ -211,20 +213,6 @@ function loadNodeConfig(fileInfo) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//function getAPIForNode(node) {
|
||||
// var red = {
|
||||
// nodes: RED.nodes,
|
||||
// library: RED.library,
|
||||
// credentials: RED.credentials,
|
||||
// events: RED.events,
|
||||
// log: RED.log,
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
|
||||
/**
|
||||
* Loads the specified node into the runtime
|
||||
* @param node a node info object - see loadNodeConfig
|
||||
|
@@ -18,15 +18,18 @@ var when = require("when");
|
||||
var fs = require("fs");
|
||||
var path = require("path");
|
||||
|
||||
var events = require("../../events");
|
||||
var log = require("../../log");
|
||||
var events;
|
||||
var log;
|
||||
|
||||
var settings;
|
||||
var defaultNodesDir = path.resolve(path.join(__dirname,"..","..","..","..","nodes"));
|
||||
var disableNodePathScan = false;
|
||||
|
||||
function init(_settings,_defaultNodesDir,_disableNodePathScan) {
|
||||
settings = _settings;
|
||||
function init(runtime,_defaultNodesDir,_disableNodePathScan) {
|
||||
settings = runtime.settings;
|
||||
events = runtime.events;
|
||||
log = runtime.log;
|
||||
|
||||
if (_disableNodePathScan) {
|
||||
disableNodePathScan = _disableNodePathScan;
|
||||
}
|
||||
|
Reference in New Issue
Block a user