Some checks failed
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
33 lines
625 B
TypeScript
33 lines
625 B
TypeScript
import type { NodeExecutionHint } from 'n8n-workflow';
|
|
|
|
export class FieldsTracker {
|
|
fields: { [key: string]: boolean } = {};
|
|
|
|
add(key: string) {
|
|
if (this.fields[key] === undefined) {
|
|
this.fields[key] = false;
|
|
}
|
|
}
|
|
|
|
update(key: string, value: boolean) {
|
|
if (!this.fields[key] && value) {
|
|
this.fields[key] = true;
|
|
}
|
|
}
|
|
|
|
getHints() {
|
|
const hints: NodeExecutionHint[] = [];
|
|
|
|
for (const [field, value] of Object.entries(this.fields)) {
|
|
if (!value) {
|
|
hints.push({
|
|
message: `The field '${field}' wasn't found in any input item`,
|
|
location: 'outputPane',
|
|
});
|
|
}
|
|
}
|
|
|
|
return hints;
|
|
}
|
|
}
|