Merge pull request #17 from n8n-io/more-general-improvements
More general improvements
This commit is contained in:
		
				commit
				
					
						71f3e518d7
					
				
			
		
					 10 changed files with 66 additions and 145 deletions
				
			
		
							
								
								
									
										98
									
								
								.eslintrc.js
									
										
									
									
									
								
							
							
						
						
									
										98
									
								
								.eslintrc.js
									
										
									
									
									
								
							|  | @ -28,108 +28,24 @@ module.exports = { | ||||||
| 		{ | 		{ | ||||||
| 			files: ['package.json'], | 			files: ['package.json'], | ||||||
| 			plugins: ['eslint-plugin-n8n-nodes-base'], | 			plugins: ['eslint-plugin-n8n-nodes-base'], | ||||||
| 			rules: { | 			extends: ['plugin:n8n-nodes-base/community'], | ||||||
| 				'n8n-nodes-base/community-package-json-author-email-still-default': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-author-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-author-name-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-author-name-still-default': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-description-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-description-still-default': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-keywords-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-keywords-without-official-tag': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-license-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-license-not-default': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-n8n-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-n8n-nodes-empty': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-n8n-nodes-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-name-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-name-still-default': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-repository-url-still-default': 'error', |  | ||||||
| 				'n8n-nodes-base/community-package-json-version-missing': 'error', |  | ||||||
| 			}, |  | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			files: ['./credentials/**/*.ts'], | 			files: ['./credentials/**/*.ts'], | ||||||
| 			plugins: ['eslint-plugin-n8n-nodes-base'], | 			plugins: ['eslint-plugin-n8n-nodes-base'], | ||||||
|  | 			extends: ['plugin:n8n-nodes-base/credentials'], | ||||||
| 			rules: { | 			rules: { | ||||||
| 				'n8n-nodes-base/filesystem-wrong-cred-filename': 'error', | 				'n8n-nodes-base/cred-class-field-documentation-url-missing': 'off', | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			files: ['./nodes/**/*.ts'], | 			files: ['./nodes/**/*.ts'], | ||||||
| 			plugins: ['eslint-plugin-n8n-nodes-base'], | 			plugins: ['eslint-plugin-n8n-nodes-base'], | ||||||
|  | 			extends: ['plugin:n8n-nodes-base/nodes'], | ||||||
| 			rules: { | 			rules: { | ||||||
| 				'n8n-nodes-base/filesystem-wrong-node-filename': 'error', | 				'n8n-nodes-base/node-execute-block-missing-continue-on-fail': 'off', | ||||||
| 				'n8n-nodes-base/node-class-description-empty-string': 'error', | 				'n8n-nodes-base/node-resource-description-filename-against-convention': 'off', | ||||||
| 				'n8n-nodes-base/node-class-description-icon-not-svg': 'error', | 				'n8n-nodes-base/node-param-fixed-collection-type-unsorted-items': 'off', | ||||||
| 				'n8n-nodes-base/node-class-description-inputs-wrong-trigger-node': 'error', |  | ||||||
| 				'n8n-nodes-base/node-class-description-missing-subtitle': 'error', |  | ||||||
| 				'n8n-nodes-base/node-class-description-outputs-wrong': 'error', |  | ||||||
| 				'n8n-nodes-base/node-execute-block-double-assertion-for-items': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-collection-type-unsorted-items': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-missing': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-boolean': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-collection': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-fixed-collection': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-fixed-collection': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-multi-options': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-number': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-simplify': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-default-wrong-for-string': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-boolean-without-whether': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-comma-separated-hyphen': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-empty-string': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-excess-final-period': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-excess-inner-whitespace': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-identical-to-display-name': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-line-break-html-tag': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-lowercase-first-char': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-miscased-id': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-miscased-json': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-miscased-url': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-missing-final-period': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-missing-for-ignore-ssl-issues': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-missing-for-return-all': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-missing-for-simplify': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-missing-from-dynamic-options': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-missing-from-limit': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-unencoded-angle-brackets': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-unneeded-backticks': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-untrimmed': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-url-missing-protocol': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-weak': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-wrong-for-dynamic-multi-options': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-wrong-for-dynamic-options': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-wrong-for-ignore-ssl-issues': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-wrong-for-limit': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-wrong-for-return-all': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-wrong-for-simplify': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-description-wrong-for-upsert': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-excess-inner-whitespace': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-miscased': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-miscased-id': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-untrimmed': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-wrong-for-dynamic-multi-options': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-wrong-for-simplify': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-display-name-wrong-for-update-fields': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-min-value-wrong-for-limit': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-multi-options-type-unsorted-items': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-operation-without-no-data-expression': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-option-description-identical-to-name': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-option-name-containing-star': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-option-name-duplicate': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-option-name-wrong-for-get-all': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-option-name-wrong-for-upsert': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-option-value-duplicate': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-options-type-unsorted-items': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-placeholder-miscased-id': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-placeholder-missing-email': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-required-false': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-resource-with-plural-option': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-resource-without-no-data-expression': 'error', |  | ||||||
| 				'n8n-nodes-base/node-param-type-options-missing-from-limit': 'error', |  | ||||||
| 				'n8n-nodes-base/node-class-description-inputs-wrong-regular-node': 'error', |  | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	], | 	], | ||||||
|  |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| # n8n Contributor License Agreement |  | ||||||
| 
 |  | ||||||
| I give n8n permission to license my contributions on any terms they like.  I am giving them this license in order to make it possible for them to accept my contributions into their project. |  | ||||||
| 
 |  | ||||||
| ***As far as the law allows, my contributions come as is, without any warranty or condition, and I will not be liable to anyone for any damages related to this software or this license, under any kind of legal claim.*** |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| Copyright 2022 n8n GmbH | Copyright <YEAR> <COPYRIGHT HOLDER> | ||||||
| 
 | 
 | ||||||
| Permission is hereby granted, free of charge, to any person obtaining a copy of | Permission is hereby granted, free of charge, to any person obtaining a copy of | ||||||
| this software and associated documentation files (the "Software"), to deal in | this software and associated documentation files (the "Software"), to deal in | ||||||
|  |  | ||||||
|  | @ -1,22 +1,27 @@ | ||||||
| import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, NodePropertyTypes } from 'n8n-workflow'; | import { | ||||||
|  | 	IAuthenticateGeneric, | ||||||
|  | 	ICredentialTestRequest, | ||||||
|  | 	ICredentialType, | ||||||
|  | 	INodeProperties, | ||||||
|  | } from 'n8n-workflow'; | ||||||
| 
 | 
 | ||||||
| export class ExampleCredentials implements ICredentialType { | export class ExampleCredentialsApi implements ICredentialType { | ||||||
| 	name = 'exampleCredentials'; | 	name = 'exampleCredentialsApi'; | ||||||
| 	displayName = 'Example Credentials'; | 	displayName = 'Example Credentials API'; | ||||||
| 	properties = [ | 	properties: INodeProperties[] = [ | ||||||
| 		// The credentials to get from user and save encrypted.
 | 		// The credentials to get from user and save encrypted.
 | ||||||
| 		// Properties can be defined exactly in the same way
 | 		// Properties can be defined exactly in the same way
 | ||||||
| 		// as node properties.
 | 		// as node properties.
 | ||||||
| 		{ | 		{ | ||||||
| 			displayName: 'User Name', | 			displayName: 'User Name', | ||||||
| 			name: 'username', | 			name: 'username', | ||||||
| 			type: 'string' as NodePropertyTypes, | 			type: 'string', | ||||||
| 			default: '', | 			default: '', | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			displayName: 'Password', | 			displayName: 'Password', | ||||||
| 			name: 'password', | 			name: 'password', | ||||||
| 			type: 'string' as NodePropertyTypes, | 			type: 'string', | ||||||
| 			typeOptions: { | 			typeOptions: { | ||||||
| 				password: true, | 				password: true, | ||||||
| 			}, | 			}, | ||||||
|  | @ -27,7 +32,7 @@ export class ExampleCredentials implements ICredentialType { | ||||||
| 	// This credential is currently not used by any node directly
 | 	// This credential is currently not used by any node directly
 | ||||||
| 	// but the HTTP Request node can use it to make requests.
 | 	// but the HTTP Request node can use it to make requests.
 | ||||||
| 	// The credential is also testable due to the `test` property below
 | 	// The credential is also testable due to the `test` property below
 | ||||||
| 	authenticate = { | 	authenticate: IAuthenticateGeneric = { | ||||||
| 		type: 'generic', | 		type: 'generic', | ||||||
| 		properties: { | 		properties: { | ||||||
| 			auth: { | 			auth: { | ||||||
|  | @ -37,9 +42,9 @@ export class ExampleCredentials implements ICredentialType { | ||||||
| 			qs: { | 			qs: { | ||||||
| 				// Send this as part of the query string
 | 				// Send this as part of the query string
 | ||||||
| 				n8n: 'rocks', | 				n8n: 'rocks', | ||||||
| 			} | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} as IAuthenticateGeneric; | 	}; | ||||||
| 
 | 
 | ||||||
| 	// The block below tells how this credential can be tested
 | 	// The block below tells how this credential can be tested
 | ||||||
| 	test: ICredentialTestRequest = { | 	test: ICredentialTestRequest = { | ||||||
							
								
								
									
										13
									
								
								gulpfile.js
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								gulpfile.js
									
										
									
									
									
								
							|  | @ -1,11 +1,16 @@ | ||||||
|  | const path = require('path'); | ||||||
| const { task, src, dest } = require('gulp'); | const { task, src, dest } = require('gulp'); | ||||||
| 
 | 
 | ||||||
| task('build:icons', copyIcons); | task('build:icons', copyIcons); | ||||||
| 
 | 
 | ||||||
| function copyIcons() { | function copyIcons() { | ||||||
| 	src('nodes/**/*.{png,svg}').pipe(dest('dist/nodes')); | 	const nodeSource = path.resolve('nodes', '**', '*.{png,svg}'); | ||||||
|  | 	const nodeDestination = path.resolve('dist', 'nodes'); | ||||||
| 
 | 
 | ||||||
| 	return src('credentials/**/*.{png,svg}').pipe(dest('dist/credentials')); | 	src(nodeSource).pipe(dest(nodeDestination)); | ||||||
|  | 
 | ||||||
|  | 	const credSource = path.resolve('credentials', '**', '*.{png,svg}'); | ||||||
|  | 	const credDestination = path.resolve('dist', 'credentials'); | ||||||
|  | 
 | ||||||
|  | 	return src(credSource).pipe(dest(credDestination)); | ||||||
| } | } | ||||||
| 
 |  | ||||||
| // TODO: Add i18n to pipeline
 |  | ||||||
|  |  | ||||||
|  | @ -1,5 +1,10 @@ | ||||||
| import { IExecuteFunctions } from 'n8n-core'; | import { IExecuteFunctions } from 'n8n-core'; | ||||||
| import { INodeExecutionData, INodeType, INodeTypeDescription, NodeOperationError } from 'n8n-workflow'; | import { | ||||||
|  | 	INodeExecutionData, | ||||||
|  | 	INodeType, | ||||||
|  | 	INodeTypeDescription, | ||||||
|  | 	NodeOperationError, | ||||||
|  | } from 'n8n-workflow'; | ||||||
| 
 | 
 | ||||||
| export class ExampleNode implements INodeType { | export class ExampleNode implements INodeType { | ||||||
| 	description: INodeTypeDescription = { | 	description: INodeTypeDescription = { | ||||||
|  | @ -10,7 +15,6 @@ export class ExampleNode implements INodeType { | ||||||
| 		description: 'Basic Example Node', | 		description: 'Basic Example Node', | ||||||
| 		defaults: { | 		defaults: { | ||||||
| 			name: 'Example Node', | 			name: 'Example Node', | ||||||
| 			color: '#772244', |  | ||||||
| 		}, | 		}, | ||||||
| 		inputs: ['main'], | 		inputs: ['main'], | ||||||
| 		outputs: ['main'], | 		outputs: ['main'], | ||||||
|  | @ -48,11 +52,10 @@ export class ExampleNode implements INodeType { | ||||||
| 
 | 
 | ||||||
| 				item.json['myString'] = myString; | 				item.json['myString'] = myString; | ||||||
| 			} catch (error) { | 			} catch (error) { | ||||||
| 
 |  | ||||||
| 				// This node should never fail but we want to showcase how
 | 				// This node should never fail but we want to showcase how
 | ||||||
| 				// to handle errors.
 | 				// to handle errors.
 | ||||||
| 				if (this.continueOnFail()) { | 				if (this.continueOnFail()) { | ||||||
| 					items.push({json: this.getInputData(itemIndex)[0].json, error}); | 					items.push({ json: this.getInputData(itemIndex)[0].json, error }); | ||||||
| 				} else { | 				} else { | ||||||
| 					// Adding `itemIndex` allows other workflows to handle this error
 | 					// Adding `itemIndex` allows other workflows to handle this error
 | ||||||
| 					if (error.context) { | 					if (error.context) { | ||||||
|  | @ -66,7 +69,6 @@ export class ExampleNode implements INodeType { | ||||||
| 					}); | 					}); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 
 |  | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return this.prepareOutputData(items); | 		return this.prepareOutputData(items); | ||||||
|  |  | ||||||
|  | @ -1,11 +1,10 @@ | ||||||
| /* eslint-disable n8n-nodes-base/filesystem-wrong-node-filename */ |  | ||||||
| import { INodeType, INodeTypeDescription } from 'n8n-workflow'; | import { INodeType, INodeTypeDescription } from 'n8n-workflow'; | ||||||
| import { httpVerbFields, httpVerbOperations } from './HttpVerbDescriptions'; | import { httpVerbFields, httpVerbOperations } from './HttpVerbDescription'; | ||||||
| 
 | 
 | ||||||
| export class HttpBin implements INodeType { | export class HttpBin implements INodeType { | ||||||
| 	description: INodeTypeDescription = { | 	description: INodeTypeDescription = { | ||||||
| 		displayName: 'HttpBin', | 		displayName: 'HttpBin', | ||||||
| 		name: 'httpbin', | 		name: 'httpBin', | ||||||
| 		icon: 'file:httpbin.svg', | 		icon: 'file:httpbin.svg', | ||||||
| 		group: ['transform'], | 		group: ['transform'], | ||||||
| 		version: 1, | 		version: 1, | ||||||
|  | @ -36,11 +35,10 @@ export class HttpBin implements INodeType { | ||||||
| 		 * | 		 * | ||||||
| 		 * [Resource & Operation] | 		 * [Resource & Operation] | ||||||
| 		 * | 		 * | ||||||
| 		 * |  | ||||||
| 		 * https://docs.n8n.io/integrations/creating-nodes/code/create-first-node/#resources-and-operations
 | 		 * https://docs.n8n.io/integrations/creating-nodes/code/create-first-node/#resources-and-operations
 | ||||||
| 		 * | 		 * | ||||||
| 		 * In our example, the operations are separated into their own file (HTTPVerbDescription) | 		 * In our example, the operations are separated into their own file (HTTPVerbDescription.ts) | ||||||
| 		 * to keep this class easy to read | 		 * to keep this class easy to read. | ||||||
| 		 * | 		 * | ||||||
| 		 */ | 		 */ | ||||||
| 		properties: [ | 		properties: [ | ||||||
|  | @ -52,10 +50,10 @@ export class HttpBin implements INodeType { | ||||||
| 				options: [ | 				options: [ | ||||||
| 					{ | 					{ | ||||||
| 						name: 'HTTP Verb', | 						name: 'HTTP Verb', | ||||||
| 						value: 'httpverbs', | 						value: 'httpVerb', | ||||||
| 					}, | 					}, | ||||||
| 				], | 				], | ||||||
| 				default: 'httpverbs', | 				default: 'httpVerb', | ||||||
| 			}, | 			}, | ||||||
| 
 | 
 | ||||||
| 			...httpVerbOperations, | 			...httpVerbOperations, | ||||||
|  |  | ||||||
|  | @ -1,21 +1,23 @@ | ||||||
| import { INodeProperties } from 'n8n-workflow'; | import { INodeProperties } from 'n8n-workflow'; | ||||||
| 
 | 
 | ||||||
| //	This maps the operations to when the Resource option HTTP Verbs is selected
 | // When the resource `httpVerb` is selected, this `operation` parameter will be shown.
 | ||||||
| export const httpVerbOperations: INodeProperties[] = [ | export const httpVerbOperations: INodeProperties[] = [ | ||||||
| 	{ | 	{ | ||||||
| 		displayName: 'Operation', | 		displayName: 'Operation', | ||||||
| 		name: 'operation', | 		name: 'operation', | ||||||
| 		type: 'options', | 		type: 'options', | ||||||
| 		noDataExpression: true, | 		noDataExpression: true, | ||||||
|  | 
 | ||||||
| 		displayOptions: { | 		displayOptions: { | ||||||
| 			show: { | 			show: { | ||||||
| 				resource: ['httpverbs'], | 				resource: ['httpVerb'], | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 		options: [ | 		options: [ | ||||||
| 			{ | 			{ | ||||||
| 				name: 'GET', | 				name: 'GET', | ||||||
| 				value: 'get', | 				value: 'get', | ||||||
|  | 				action: 'Perform a GET request', | ||||||
| 				routing: { | 				routing: { | ||||||
| 					request: { | 					request: { | ||||||
| 						method: 'GET', | 						method: 'GET', | ||||||
|  | @ -26,6 +28,7 @@ export const httpVerbOperations: INodeProperties[] = [ | ||||||
| 			{ | 			{ | ||||||
| 				name: 'DELETE', | 				name: 'DELETE', | ||||||
| 				value: 'delete', | 				value: 'delete', | ||||||
|  | 				action: 'Perform a DELETE request', | ||||||
| 				routing: { | 				routing: { | ||||||
| 					request: { | 					request: { | ||||||
| 						method: 'DELETE', | 						method: 'DELETE', | ||||||
|  | @ -38,8 +41,8 @@ export const httpVerbOperations: INodeProperties[] = [ | ||||||
| 	}, | 	}, | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
| //	Here we define what to show when the GET Operation is selected
 | // Here we define what to show when the `get` operation is selected.
 | ||||||
| //	We do that by adding operation: ["get"], to "displayOptions.show"
 | // We do that by adding `operation: ["get"]` to `displayOptions.show`
 | ||||||
| const getOperation: INodeProperties[] = [ | const getOperation: INodeProperties[] = [ | ||||||
| 	{ | 	{ | ||||||
| 		name: 'typeofData', | 		name: 'typeofData', | ||||||
|  | @ -48,7 +51,7 @@ const getOperation: INodeProperties[] = [ | ||||||
| 		displayName: 'Type of Data', | 		displayName: 'Type of Data', | ||||||
| 		displayOptions: { | 		displayOptions: { | ||||||
| 			show: { | 			show: { | ||||||
| 				resource: ['httpverbs'], | 				resource: ['httpVerb'], | ||||||
| 				operation: ['get'], | 				operation: ['get'], | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  | @ -68,7 +71,7 @@ const getOperation: INodeProperties[] = [ | ||||||
| 		displayName: 'Query Parameters', | 		displayName: 'Query Parameters', | ||||||
| 		displayOptions: { | 		displayOptions: { | ||||||
| 			show: { | 			show: { | ||||||
| 				resource: ['httpverbs'], | 				resource: ['httpVerb'], | ||||||
| 				operation: ['get'], | 				operation: ['get'], | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  | @ -109,8 +112,8 @@ const getOperation: INodeProperties[] = [ | ||||||
| 	}, | 	}, | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
| //	Here we define what to show when the DELETE Operation is selected
 | // Here we define what to show when the DELETE Operation is selected.
 | ||||||
| //	We do that by adding operation: ["delete"], to "displayOptions.show"
 | // We do that by adding `operation: ["delete"]` to `displayOptions.show`
 | ||||||
| const deleteOperation: INodeProperties[] = [ | const deleteOperation: INodeProperties[] = [ | ||||||
| 	{ | 	{ | ||||||
| 		name: 'typeofData', | 		name: 'typeofData', | ||||||
|  | @ -119,7 +122,7 @@ const deleteOperation: INodeProperties[] = [ | ||||||
| 		displayName: 'Type of Data', | 		displayName: 'Type of Data', | ||||||
| 		displayOptions: { | 		displayOptions: { | ||||||
| 			show: { | 			show: { | ||||||
| 				resource: ['httpverbs'], | 				resource: ['httpVerb'], | ||||||
| 				operation: ['delete'], | 				operation: ['delete'], | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  | @ -143,7 +146,7 @@ const deleteOperation: INodeProperties[] = [ | ||||||
| 		displayName: 'Query Parameters', | 		displayName: 'Query Parameters', | ||||||
| 		displayOptions: { | 		displayOptions: { | ||||||
| 			show: { | 			show: { | ||||||
| 				resource: ['httpverbs'], | 				resource: ['httpVerb'], | ||||||
| 				operation: ['delete'], | 				operation: ['delete'], | ||||||
| 				typeofData: ['queryParameter'], | 				typeofData: ['queryParameter'], | ||||||
| 			}, | 			}, | ||||||
|  | @ -190,7 +193,7 @@ const deleteOperation: INodeProperties[] = [ | ||||||
| 		displayName: 'JSON Object', | 		displayName: 'JSON Object', | ||||||
| 		displayOptions: { | 		displayOptions: { | ||||||
| 			show: { | 			show: { | ||||||
| 				resource: ['httpverbs'], | 				resource: ['httpVerb'], | ||||||
| 				operation: ['delete'], | 				operation: ['delete'], | ||||||
| 				typeofData: ['jsonData'], | 				typeofData: ['jsonData'], | ||||||
| 			}, | 			}, | ||||||
|  | @ -234,12 +237,12 @@ const deleteOperation: INodeProperties[] = [ | ||||||
| 
 | 
 | ||||||
| export const httpVerbFields: INodeProperties[] = [ | export const httpVerbFields: INodeProperties[] = [ | ||||||
| 	/* -------------------------------------------------------------------------- */ | 	/* -------------------------------------------------------------------------- */ | ||||||
| 	/*                                Http Verbs:Get                               */ | 	/*                                httpVerb:get                                */ | ||||||
| 	/* -------------------------------------------------------------------------- */ | 	/* -------------------------------------------------------------------------- */ | ||||||
| 	...getOperation, | 	...getOperation, | ||||||
| 
 | 
 | ||||||
| 	/* -------------------------------------------------------------------------- */ | 	/* -------------------------------------------------------------------------- */ | ||||||
| 	/*                                Http Verbs:Delete                           */ | 	/*                              httpVerb:delete                               */ | ||||||
| 	/* -------------------------------------------------------------------------- */ | 	/* -------------------------------------------------------------------------- */ | ||||||
| 	...deleteOperation, | 	...deleteOperation, | ||||||
| ]; | ]; | ||||||
|  | @ -21,7 +21,8 @@ | ||||||
|     "dev": "tsc --watch", |     "dev": "tsc --watch", | ||||||
|     "format": "prettier nodes credentials --write", |     "format": "prettier nodes credentials --write", | ||||||
|     "lint": "tslint -p tsconfig.json -c tslint.json; eslint nodes credentials package.json", |     "lint": "tslint -p tsconfig.json -c tslint.json; eslint nodes credentials package.json", | ||||||
|     "lintfix": "tslint --fix -p tsconfig.json -c tslint.json; eslint nodes credentials package.json --fix" |     "lintfix": "tslint --fix -p tsconfig.json -c tslint.json; eslint nodes credentials package.json --fix", | ||||||
|  |     "prepare": "npm run build && npm run lint" | ||||||
|   }, |   }, | ||||||
|   "files": [ |   "files": [ | ||||||
|     "dist" |     "dist" | ||||||
|  | @ -40,10 +41,10 @@ | ||||||
|     "@types/express": "^4.17.6", |     "@types/express": "^4.17.6", | ||||||
|     "@types/request-promise-native": "~1.0.15", |     "@types/request-promise-native": "~1.0.15", | ||||||
|     "@typescript-eslint/parser": "^5.29.0", |     "@typescript-eslint/parser": "^5.29.0", | ||||||
|     "eslint-plugin-n8n-nodes-base": "~1.1.1", |     "eslint-plugin-n8n-nodes-base": "^1.2.0", | ||||||
|     "gulp": "^4.0.2", |     "gulp": "^4.0.2", | ||||||
|     "n8n-core": "^0.124.0", |     "n8n-core": "^0.125.0", | ||||||
|     "n8n-workflow": "^0.106.0", |     "n8n-workflow": "^0.107.0", | ||||||
|     "prettier": "^2.7.1", |     "prettier": "^2.7.1", | ||||||
|     "tslint": "^6.1.2", |     "tslint": "^6.1.2", | ||||||
|     "typescript": "~4.6.0" |     "typescript": "~4.6.0" | ||||||
|  |  | ||||||
|  | @ -111,10 +111,6 @@ | ||||||
| 			"allow-null-check" | 			"allow-null-check" | ||||||
| 		], | 		], | ||||||
| 		"use-isnan": true, | 		"use-isnan": true, | ||||||
| 		"quotemark": [ |  | ||||||
| 			true, |  | ||||||
| 			"single" |  | ||||||
| 		], |  | ||||||
| 		"quotes": [ | 		"quotes": [ | ||||||
| 			"error", | 			"error", | ||||||
| 			"single" | 			"single" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue