# Require new or amended core code to have explanatory JSDoc blocks

**URL:** <https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265>\
**Category:** Feature Requests\
**Created:** [28 January 2026 14:12 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265 "2026-01-28T14:12:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [28 January 2026 14:12 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/1 "2026-01-28T14:12:14Z")

</div>

This is something that massively frustrates me - as I'm sure it does other potential contributors.

Most of the Node-RED core code is impenetrable to most people. Even for experienced developers, _the friction involved in trying to understand how things are working internally means that there are just a tiny number of people who can contribute to the ongoing improvement of core code_.

I appreciate that it will not be feasible to have a massive update but I would request that you update requirements for future changes such that changes should require at least a JSDoc comment block for each function providing at least a minimalist explanation of what it does.

Certainly, any new functions added to core should have a full JSDoc block such that, at some future point, more sensible and complete API documentation can be created easily.

For API functions that should not be used outside of core code (by node creators for example), the function can be marked as private.

It would probably also be helpful to publish an `eslint` config adjusted to Node-RED coding standards so that any contributors can not only write code that meets standards but can also make lint updates (e.g. replacing `var` statements) to assist with keeping the codebase to modern standards.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [28 January 2026 14:24 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/2 "2026-01-28T14:24:34Z")

</div>

See [NR5: Project Infrastructure Updates · Issue #5363 · node-red/node-red · GitHub](https://github.com/node-red/node-red/issues/5363) for _some_ of this planned in NR5

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [28 January 2026 14:28 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/3 "2026-01-28T14:28:29Z")

</div>

Thanks Nick.

If there is anything specific I can add to that issue, I'd be happy to do so.

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [28 January 2026 16:46 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/4 "2026-01-28T16:46:23Z")

</div>

See [Add support for `editor-client` typing (TS types) by GogoVega · Pull Request #5147 · node-red/node-red · GitHub](https://github.com/node-red/node-red/pull/5147) too.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [28 January 2026 16:47 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/5 "2026-01-28T16:47:24Z")

</div>

Thanks, will that replace the `@types/node-red` entries? I think they aren't necessarily maintained?

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [28 January 2026 16:49 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/6 "2026-01-28T16:49:19Z")

</div>

At this point, I don't have a clean plan for adding typings. @GogoVega has done a lot of work on it, but it isn't yet in.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [28 January 2026 16:53 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/7 "2026-01-28T16:53:48Z")

</div>

I certainly recognise the pain. I've been trying to do them for uibuilder too and that is hard enough.

I would note though that I've had good success getting GitHub Copilot to (re)generate them. May be worth considering. I do a standardised request just before pushing a new release.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [29 March 2026 16:53 UTC](https://discourse.nodered.org/t/require-new-or-amended-core-code-to-have-explanatory-jsdoc-blocks/100265/8 "2026-03-29T16:53:57Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
