Node isolation required

Is there a reason each node is so isolated, even if they would use the same GenericFunctions?

ex. So many of the Google Nodes use the same generic function, wouldn’t it be better to have a /n8n/packages/nodes-base/nodes/Google/common folder with methods that could be shared?

This could be the same for Microsoft Graph API and Jira nodes as well.

I ask this because I would like to submit some PRs for some additional nodes/resources/operations, but I would love to be able to reuse what is already there instead of copying/pasting it around.

2 Likes

Hey @tylerc, I believe the idea is to have each node as independent as possible.

The credentials already share quite a bit of logic (e.g. Google Tasks credentials would extend googleOAuth2Api credentials which extend oAuth2Api credentials), but that’s not the case for nodes as you have noticed.

Might be a question for @sirdavidoff as to whether there are any plans of changing this.

I can completely see where you’re coming from. It’s actually a question for @jan since he’s been thinking about node design a lot lately

Since it’s a monorepo, supporting methods, etc could be written as their own packages, but that seems like more overhead even if it would facilitate custom nodes being able to consume shared libraries.