Small fixes and fix that some nodes changed incoming data

This commit is contained in:
Jan Oberhauser 2019-08-01 18:22:48 +02:00
parent fc4952f022
commit a8f1f9c0ba
10 changed files with 30 additions and 30 deletions

View file

@ -1,4 +1,4 @@
## n8n - Workflow Automation
# n8n - Workflow Automation
![n8n.io - Workflow Automation](https://raw.githubusercontent.com/n8n-io/n8n/master/docs/images/n8n-logo.png)

View file

@ -254,7 +254,7 @@ export function getNodeWebhookUrl(name: string, workflow: Workflow, node: INode,
return undefined;
}
return NodeHelpers.getNodeWebhookUrl(baseUrl, workflow.id!, node, path);
return NodeHelpers.getNodeWebhookUrl(baseUrl, workflow.id!, node, path.toString());
}

View file

@ -123,7 +123,7 @@ export default mixins(nodeBase, workflowHelpers).extend({
},
nodeSubtitle (): string | undefined {
if (this.nodeType !== null && this.nodeType.subtitle !== undefined) {
return this.workflow.getSimpleParameterValue(this.data as INode, this.nodeType.subtitle);
return this.workflow.getSimpleParameterValue(this.data as INode, this.nodeType.subtitle) as string | undefined;
}
if (this.data.parameters.operation !== undefined) {

View file

@ -466,7 +466,6 @@ export default mixins(
}
}
Vue.set(this.nodeValues, 'parameters', JSON.parse(JSON.stringify(this.node.parameters)));
} else {
this.nodeValid = false;

View file

@ -92,10 +92,8 @@ export class ExecuteCommand implements INodeType {
items = [items[0]];
}
let item: INodeExecutionData;
const returnItems: INodeExecutionData[] = [];
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
item = items[itemIndex];
command = this.getNodeParameter('command', itemIndex) as string;
const {
@ -105,13 +103,17 @@ export class ExecuteCommand implements INodeType {
stderr,
} = await execPromise(command);
item.json = {
exitCode,
stderr,
stdout,
};
returnItems.push(
{
json: {
exitCode,
stderr,
stdout,
},
},
);
}
return this.prepareOutputData(items);
return this.prepareOutputData(returnItems);
}
}

View file

@ -129,10 +129,10 @@ export class HttpRequest implements INodeType {
name: 'String',
value: 'string'
},
{
name: 'XML (not implemented)',
value: 'xml'
},
// {
// name: 'XML (not implemented)',
// value: 'xml'
// },
],
default: 'json',
description: 'The format in which the data gets returned from the URL.',
@ -325,10 +325,6 @@ export class HttpRequest implements INodeType {
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const items = this.getInputData();
if (items.length === 0) {
items.push({json: {}});
}
// TODO: Should have a setting which makes clear that this parameter can not change for each item
const requestMethod = this.getNodeParameter('requestMethod', 0) as string;
const parametersAreJson = this.getNodeParameter('jsonParameters', 0) as boolean;
@ -362,6 +358,7 @@ export class HttpRequest implements INodeType {
},
};
const returnItems: INodeExecutionData[] = [];
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
item = items[itemIndex];
@ -431,14 +428,14 @@ export class HttpRequest implements INodeType {
const response = await this.helpers.request(requestOptions);
if (responseFormat === 'json') {
item.json = response;
} else if (responseFormat === 'xml') {
// TODO: Not implemented yet
returnItems.push({ json: response });
// } else if (responseFormat === 'xml') {
// // TODO: Not implemented yet
} else {
item.json.reponse = response;
returnItems.push({ json: { response } });
}
}
return this.prepareOutputData(items);
return this.prepareOutputData(returnItems);
}
}

View file

@ -14,6 +14,7 @@ export class Merge implements INodeType {
icon: 'fa:code-branch',
group: ['transform'],
version: 1,
subtitle: '={{$parameter["mode"]}}',
description: 'Merges data of multiple streams once data of both is available',
defaults: {
name: 'Merge',

View file

@ -515,6 +515,8 @@ export function getNodeWebhooks(workflow: Workflow, node: INode, additionalData:
continue;
}
nodeWebhookPath = nodeWebhookPath.toString();
if (nodeWebhookPath.charAt(0) === '/') {
nodeWebhookPath = nodeWebhookPath.slice(1);
}
@ -530,7 +532,7 @@ export function getNodeWebhooks(workflow: Workflow, node: INode, additionalData:
}
returnData.push({
httpMethod: httpMethod as WebhookHttpMethod,
httpMethod: httpMethod.toString() as WebhookHttpMethod,
node: node.name,
path,
webhookDescription,

View file

@ -688,7 +688,7 @@ export class Workflow {
* @returns {(string | undefined)}
* @memberof Workflow
*/
getSimpleParameterValue(node: INode, parameterValue: string | undefined, defaultValue?: string): string | undefined {
getSimpleParameterValue(node: INode, parameterValue: string | undefined, defaultValue?: boolean | number | string): boolean | number | string | undefined {
if (parameterValue === undefined) {
// Value is not set so return the default
return defaultValue;
@ -704,7 +704,7 @@ export class Workflow {
}
};
return this.getParameterValue(parameterValue, runData, runIndex, itemIndex, node.name, connectionInputData) as string | undefined;
return this.getParameterValue(parameterValue, runData, runIndex, itemIndex, node.name, connectionInputData) as boolean | number | string | undefined;
}

View file

@ -102,7 +102,6 @@ let nodeTypesInstance: NodeTypesClass | undefined;
export function NodeTypes(): NodeTypesClass {
if (nodeTypesInstance === undefined) {
nodeTypesInstance = new NodeTypesClass();
nodeTypesInstance.init({});
}
return nodeTypesInstance;