1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Add _path property to nodes and expose as node.path in Function node

This commit is contained in:
Nick O'Leary 2022-01-25 21:32:28 +00:00
parent c136d22382
commit 703c5adba7
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
4 changed files with 29 additions and 19 deletions

View File

@ -31,12 +31,12 @@ interface NodeStatus {
} }
declare class node { declare class node {
/** /**
* Send 1 or more messages asynchronously * Send 1 or more messages asynchronously
* @param {object | object[]} msg The msg object * @param {object | object[]} msg The msg object
* @param {Boolean} [clone=true] Flag to indicate the `msg` should be cloned. Default = `true` * @param {Boolean} [clone=true] Flag to indicate the `msg` should be cloned. Default = `true`
* @see node-red documentation [writing-functions: sending messages asynchronously](https://nodered.org/docs/user-guide/writing-functions#sending-messages-asynchronously) * @see node-red documentation [writing-functions: sending messages asynchronously](https://nodered.org/docs/user-guide/writing-functions#sending-messages-asynchronously)
*/ */
static send(msg:object|object[], clone?:Boolean): void; static send(msg:object|object[], clone?:Boolean): void;
/** Inform runtime this instance has completed its operation */ /** Inform runtime this instance has completed its operation */
static done(); static done();
@ -60,6 +60,8 @@ declare class node {
public readonly id:string; public readonly id:string;
/** the name of this node */ /** the name of this node */
public readonly name:string; public readonly name:string;
/** the path identifier for this node */
public readonly path:string;
/** the number of outputs of this node */ /** the number of outputs of this node */
public readonly outputCount:number; public readonly outputCount:number;
} }
@ -93,27 +95,27 @@ declare class context {
/** /**
* Set one or multiple values in context (synchronous). * Set one or multiple values in context (synchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
*/ */
static set(name: string | string[], value?: any | any[]); static set(name: string | string[], value?: any | any[]);
/** /**
* Set one or multiple values in context (asynchronous). * Set one or multiple values in context (asynchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param callback - (optional) Callback function (`(err) => {}`) * @param callback - (optional) Callback function (`(err) => {}`)
*/ */
static set(name: string | string[], value?: any | any[], callback?: Function); static set(name: string | string[], value?: any | any[], callback?: Function);
/** /**
* Set one or multiple values in context (synchronous). * Set one or multiple values in context (synchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param store - (optional) Name of context store * @param store - (optional) Name of context store
*/ */
static set(name: string | string[], value?: any | any[], store?: string); static set(name: string | string[], value?: any | any[], store?: string);
/** /**
* Set one or multiple values in context (asynchronous). * Set one or multiple values in context (asynchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param store - (optional) Name of context store * @param store - (optional) Name of context store
* @param callback - (optional) Callback function (`(err) => {}`) * @param callback - (optional) Callback function (`(err) => {}`)
*/ */
@ -158,27 +160,27 @@ declare class flow {
/** /**
* Set one or multiple values in context (synchronous). * Set one or multiple values in context (synchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
*/ */
static set(name: string | string[], value?: any | any[]); static set(name: string | string[], value?: any | any[]);
/** /**
* Set one or multiple values in context (asynchronous). * Set one or multiple values in context (asynchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param callback - (optional) Callback function (`(err) => {}`) * @param callback - (optional) Callback function (`(err) => {}`)
*/ */
static set(name: string | string[], value?: any | any[], callback?: Function); static set(name: string | string[], value?: any | any[], callback?: Function);
/** /**
* Set one or multiple values in context (synchronous). * Set one or multiple values in context (synchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param store - (optional) Name of context store * @param store - (optional) Name of context store
*/ */
static set(name: string | string[], value?: any | any[], store?: string); static set(name: string | string[], value?: any | any[], store?: string);
/** /**
* Set one or multiple values in context (asynchronous). * Set one or multiple values in context (asynchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param store - (optional) Name of context store * @param store - (optional) Name of context store
* @param callback - (optional) Callback function (`(err) => {}`) * @param callback - (optional) Callback function (`(err) => {}`)
*/ */
@ -225,32 +227,32 @@ declare class global {
/** /**
* Set one or multiple values in context (synchronous). * Set one or multiple values in context (synchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
*/ */
static set(name: string | string[], value?: any | any[]); static set(name: string | string[], value?: any | any[]);
/** /**
* Set one or multiple values in context (asynchronous). * Set one or multiple values in context (asynchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param callback - (optional) Callback function (`(err) => {}`) * @param callback - (optional) Callback function (`(err) => {}`)
*/ */
static set(name: string | string[], value?: any | any[], callback?: Function); static set(name: string | string[], value?: any | any[], callback?: Function);
/** /**
* Set one or multiple values in context (synchronous). * Set one or multiple values in context (synchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param store - (optional) Name of context store * @param store - (optional) Name of context store
*/ */
static set(name: string | string[], value?: any | any[], store?: string); static set(name: string | string[], value?: any | any[], store?: string);
/** /**
* Set one or multiple values in context (asynchronous). * Set one or multiple values in context (asynchronous).
* @param name - Name (or array of names) to set in context * @param name - Name (or array of names) to set in context
* @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed. * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
* @param store - (optional) Name of context store * @param store - (optional) Name of context store
* @param callback - (optional) Callback function (`(err) => {}`) * @param callback - (optional) Callback function (`(err) => {}`)
*/ */
static set(name: string | string[], value?: any | any[], store?: string, callback?: Function); static set(name: string | string[], value?: any | any[], store?: string, callback?: Function);
/** Get an array of the keys in the context store */ /** Get an array of the keys in the context store */
static keys(): Array<string>; static keys(): Array<string>;
/** Get an array of the keys in the context store */ /** Get an array of the keys in the context store */

View File

@ -112,6 +112,7 @@ module.exports = function(RED) {
"var node = {"+ "var node = {"+
"id:__node__.id,"+ "id:__node__.id,"+
"name:__node__.name,"+ "name:__node__.name,"+
"path:__node__.path,"+
"outputCount:__node__.outputCount,"+ "outputCount:__node__.outputCount,"+
"log:__node__.log,"+ "log:__node__.log,"+
"error:__node__.error,"+ "error:__node__.error,"+
@ -163,6 +164,7 @@ module.exports = function(RED) {
__node__: { __node__: {
id: node.id, id: node.id,
name: node.name, name: node.name,
path: node._path,
outputCount: node.outputs, outputCount: node.outputs,
log: function() { log: function() {
node.log.apply(node, arguments); node.log.apply(node, arguments);
@ -344,6 +346,7 @@ module.exports = function(RED) {
var node = { var node = {
id:__node__.id, id:__node__.id,
name:__node__.name, name:__node__.name,
path:__node__.path,
outputCount:__node__.outputCount, outputCount:__node__.outputCount,
log:__node__.log, log:__node__.log,
error:__node__.error, error:__node__.error,
@ -366,6 +369,7 @@ module.exports = function(RED) {
var node = { var node = {
id:__node__.id, id:__node__.id,
name:__node__.name, name:__node__.name,
path:__node__.path,
outputCount:__node__.outputCount, outputCount:__node__.outputCount,
log:__node__.log, log:__node__.log,
error:__node__.error, error:__node__.error,

View File

@ -85,6 +85,7 @@ function createNode(flow,config) {
try { try {
Object.defineProperty(conf,'_module', {value: typeRegistry.getNodeInfo(type), enumerable: false, writable: true }) Object.defineProperty(conf,'_module', {value: typeRegistry.getNodeInfo(type), enumerable: false, writable: true })
Object.defineProperty(conf,'_flow', {value: flow, enumerable: false, writable: true }) Object.defineProperty(conf,'_flow', {value: flow, enumerable: false, writable: true })
Object.defineProperty(conf,'_path', {value: `${flow.path}/${config._alias||config.id}`, enumerable: false, writable: true })
newNode = new nodeTypeConstructor(conf); newNode = new nodeTypeConstructor(conf);
} catch (err) { } catch (err) {
Log.log({ Log.log({

View File

@ -62,6 +62,9 @@ function Node(n) {
if (n._module) { if (n._module) {
Object.defineProperty(this,'_module', {value: n._module, enumerable: false, writable: true }) Object.defineProperty(this,'_module', {value: n._module, enumerable: false, writable: true })
} }
if (n._path) {
Object.defineProperty(this,'_path', {value: n._path, enumerable: false, writable: true })
}
this.updateWires(n.wires); this.updateWires(n.wires);
} }