feat(Summarize Node): Option to continue when field to summarize can't be found in any items (#9118)

This commit is contained in:
Michael Kret 2024-04-11 12:23:44 +03:00 committed by GitHub
parent cf435c3311
commit d7abc30104
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 21 additions and 1 deletions

View file

@ -14,6 +14,7 @@ import {
fieldValueGetter,
splitData,
} from './utils';
import { generatePairedItemData } from '../../../utils/utilities';
export class Summarize implements INodeType {
description: INodeTypeDescription = {
@ -239,6 +240,14 @@ export class Summarize implements INodeType {
placeholder: 'Add Option',
default: {},
options: [
{
displayName: 'Continue if Field Not Found',
name: 'continueIfFieldNotFound',
type: 'boolean',
default: false,
description:
"Whether to continue if field to summarize can't be found in any items and return single empty item, owerwise an error would be thrown",
},
{
displayName: 'Disable Dot Notation',
name: 'disableDotNotation',
@ -304,7 +313,17 @@ export class Summarize implements INodeType {
const nodeVersion = this.getNode().typeVersion;
if (nodeVersion < 2.1) {
try {
checkIfFieldExists.call(this, newItems, fieldsToSummarize, getValue);
} catch (error) {
if (options.continueIfFieldNotFound) {
const itemData = generatePairedItemData(items.length);
return [[{ json: {}, pairedItem: itemData }]];
} else {
throw error;
}
}
}
const aggregationResult = splitData(

View file

@ -40,6 +40,7 @@ const AggregationDisplayNames = {
export const NUMERICAL_AGGREGATIONS = ['average', 'sum'];
export type SummarizeOptions = {
continueIfFieldNotFound: boolean;
disableDotNotation?: boolean;
outputFormat?: 'separateItems' | 'singleItem';
skipEmptySplitFields?: boolean;