n8n/packages
Milorad FIlipović a8049a0def
perf(editor): Improve node rendering performance when opening large workflows (#7904)
## Summary
In an effort to do as little processing as possible in each `Node`
component, this PR passes current workflow object to it as a property
instead of calling the slow `getCurrentWorkflow` store getter a few
times in each node. This should substantially improve loading times for
large workflows.

As a benchmark, I was using a workflow from [this Linear
ticket](https://linear.app/n8n/issue/ADO-1501/deliveryhero-enterprise-instance-very-slow-loading-workflows)
and this fix brought down opening time by **20 seconds**. Together with
fixes from #7901, this workflow was opening in less than **10 seconds**
on my laptop.

[Latest e2e run](https://github.com/n8n-io/n8n/actions/runs/7062162739)
#### How to test the change:
1. Open a large workflow
2. Observe loading time

## Issues fixed
ADO-1523
https://community.n8n.io/t/ui-very-slow-with-more-than-100-nodes/8236/14

## Review / Merge checklist
- [x] PR title and summary are descriptive. **Remember, the title
automatically goes into the changelog. Use `(no-changelog)` otherwise.**
([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md))
- [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up
ticket created.
- [ ] Tests included.
> A bug is not considered fixed, unless a test is added to prevent it
from happening again. A feature is not complete without tests.
  >
> *(internal)* You can use Slack commands to trigger [e2e
tests](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#a39f9e5ba64a48b58a71d81c837e8227)
or [deploy test
instance](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#f6a177d32bde4b57ae2da0b8e454bfce)
or [deploy early access version on
Cloud](https://www.notion.so/n8n/Cloudbot-3dbe779836004972b7057bc989526998?pvs=4#fef2d36ab02247e1a0f65a74f6fb534e).
2023-12-01 17:50:11 +01:00
..
@n8n ci: Fix lint warnings in @n8n/chat and @n8n/nodes-langchain (no-changelog) (#7884) 2023-11-30 13:22:27 +01:00
@n8n_io/eslint-config build: Upgrade lint related packages (#7790) 2023-11-27 09:11:52 +01:00
cli docs: Update breaking changes with binary data TTL note (#7894) 2023-12-01 12:52:12 +01:00
core refactor(core): Switch plain errors in core to ApplicationError (no-changelog) (#7873) 2023-11-30 09:06:19 +01:00
design-system 🚀 Release 1.19.0 (#7863) 2023-11-29 13:17:03 +01:00
editor-ui perf(editor): Improve node rendering performance when opening large workflows (#7904) 2023-12-01 17:50:11 +01:00
node-dev 🚀 Release 1.19.0 (#7863) 2023-11-29 13:17:03 +01:00
nodes-base fix(Google Sheets Node): Missing version fo RMC (no-changelog) (#7886) 2023-11-30 17:24:43 +02:00
workflow refactor(core): Separate API response from error in execution error causes (no-changelog) (#7880) 2023-11-30 14:44:10 +01:00