feat(editor): Add mapping support for data paths (#5191)

* feat: add data path flag

* chore: update types

* feat: use path for data

* feat: add support for multiple values

* fix: handle if not prev node

* fix: update node

* fix: handle multi part path

* feat: add support for multiple vals for field

* feat: add support for table transforms

* feat: use dot notation

* feat: fix bug where brackets removed

* fix: handle dots, fix unit tests

* test: update snapshot

* test: fix tests

* test: add test for edge case
This commit is contained in:
Mutasem Aldmour
2023-01-30 14:42:08 +03:00
committed by GitHub
parent 5b9c650e55
commit 6092f6c41e
14 changed files with 679 additions and 66 deletions

View File

@@ -52,6 +52,7 @@ export class CompareDatasets implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
{
displayName: 'Input B Field',
@@ -61,6 +62,7 @@ export class CompareDatasets implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
],
},
@@ -126,6 +128,7 @@ export class CompareDatasets implements INodeType {
resolve: ['mix'],
},
},
requiresDataPath: 'multiple',
},
{
displayName: 'Options',
@@ -143,6 +146,7 @@ export class CompareDatasets implements INodeType {
hint: 'Enter the field names as text, separated by commas',
description:
"Fields that shouldn't be included when checking whether two items are the same",
requiresDataPath: 'multiple',
},
{
displayName: 'Fuzzy Compare',

View File

@@ -139,6 +139,7 @@ export class ItemLists implements INodeType {
},
},
description: 'The name of the input field to break out into separate items',
requiresDataPath: 'single',
},
{
displayName: 'Include',
@@ -197,6 +198,7 @@ export class ItemLists implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
],
},
@@ -256,6 +258,7 @@ export class ItemLists implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
{
displayName: 'Rename Field',
@@ -276,6 +279,7 @@ export class ItemLists implements INodeType {
default: '',
description:
'The name of the field to put the aggregated data in. Leave blank to use the input field name.',
requiresDataPath: 'single',
},
],
},
@@ -346,6 +350,7 @@ export class ItemLists implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
],
},
@@ -382,6 +387,7 @@ export class ItemLists implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
],
},
@@ -453,6 +459,7 @@ export class ItemLists implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
],
},
@@ -488,6 +495,7 @@ export class ItemLists implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
],
},
@@ -544,6 +552,7 @@ export class ItemLists implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
{
displayName: 'Order',

View File

@@ -123,6 +123,7 @@ export const description: INodeProperties[] = [
aggregation: [...NUMERICAL_AGGREGATIONS, 'countUnique', 'count'],
},
},
requiresDataPath: 'single',
},
{
displayName: 'Field',
@@ -138,6 +139,7 @@ export const description: INodeProperties[] = [
aggregation: NUMERICAL_AGGREGATIONS,
},
},
requiresDataPath: 'single',
},
{
displayName: 'Field',
@@ -153,6 +155,7 @@ export const description: INodeProperties[] = [
aggregation: ['countUnique', 'count'],
},
},
requiresDataPath: 'single',
},
// ----------------------------------------------------------------------------------------------------------
{
@@ -245,6 +248,7 @@ export const description: INodeProperties[] = [
'/options.outputFormat': ['singleItem'],
},
},
requiresDataPath: 'multiple',
},
{
displayName: 'Fields to Group By',
@@ -261,6 +265,7 @@ export const description: INodeProperties[] = [
'/options.outputFormat': ['singleItem'],
},
},
requiresDataPath: 'multiple',
},
// ----------------------------------------------------------------------------------------------------------
{

View File

@@ -122,6 +122,7 @@ const versionDescription: INodeTypeDescription = {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
{
displayName: 'Input 2 Field',
@@ -131,6 +132,7 @@ const versionDescription: INodeTypeDescription = {
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'e.g. id',
hint: ' Enter the field name as text',
requiresDataPath: 'single',
},
],
},