@gregoriusrippenstein/node-red-contrib-nodedev 0.2.9 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -3
- package/nodes/05-node-dev-ops.html +11 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
## Node-RED nodes for the development of Node-RED nodes in Node-RED using Node-RED nodes.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
*** Work In Progress, not stable. ***
|
|
5
|
-
|
|
6
3
|
*What?*
|
|
7
4
|
|
|
8
5
|
The idea behind this collection of nodes to democratise the development of Node-RED nodes. Normally the development of your [own nodes](https://nodered.org/docs/creating-nodes/) will require the use of a third-party editor. Something like VSCode or Vim or Atom or god forbid, [Emacs](https://discourse.nodered.org/t/node-red-node-development-in-node-red/81525/2). This requirement makes creating nodes that much harder. So why not create nodes for Node-RED in Node-RED? After all, if you are using Node-RED, you probably understand how to use Node-RED.
|
|
@@ -24,6 +21,31 @@ This is not an inbuilt extension of Node-RED and obviously a more integrated wor
|
|
|
24
21
|
|
|
25
22
|
It also gets more confusing since these nodes will open the Node-RED import dialog with pre-defined nodes. These are generally safe to import since that's how this package creates an initial set of nodes for representing a node package. Also importing nodes for an unknown node package is not recommended unless it happens to be your own package!
|
|
26
23
|
|
|
24
|
+
### Motivation
|
|
25
|
+
|
|
26
|
+
A comparison of Node-RED extensions and indirections
|
|
27
|
+
|
|
28
|
+
| | Link Call | Subflow | Link Nodes[^4] | Custom Node | Function node | Flow Tab |
|
|
29
|
+
|:--|:--|:--|:--|:--|:--|:--|
|
|
30
|
+
| Outputs [^1] | =1 | >=1 | =1 | >=1 | >=1 | - |
|
|
31
|
+
| Embeddable[^2] | Yes | Yes | - | Yes | Yes | Yes |
|
|
32
|
+
| Modifiable[^3] | Yes | Yes | Yes | - | Yes | Yes |
|
|
33
|
+
| Packages[^5] | - | - | - | Yes | Yes | - |
|
|
34
|
+
| Reusable[^6] | - | Yes | - | Yes | - | Yes |
|
|
35
|
+
| Button[^7] | - | - | - | Yes | - | - |
|
|
36
|
+
| Iconification[^8] | Yes | Yes | Yes | Yes | Yes | - |
|
|
37
|
+
|
|
38
|
+
What this package does is make custom nodes modifiable within Node-RED.
|
|
39
|
+
|
|
40
|
+
[^1]: Number of outputs definable. Subflows can have many outputs, link-call nodes only ever have one output. Zero outputs is possible for all extensions, one is standard and more than one is difficult.
|
|
41
|
+
[^2]: Embeddable means with the functionality can be included in a flow. Link-in/-out nodes redirect the flow of messages without those messages returning to the point where they left the original flow.
|
|
42
|
+
[^3]: Does Node-RED provide support of modifying the extension? Node-RED does not provide any support for modifying custom nodes *within* Node-RED.
|
|
43
|
+
[^4]: A combination of Link-in and Link-out nodes.
|
|
44
|
+
[^5]: Can external NPMjs packages be included in the extension?
|
|
45
|
+
[^6]: Is there a structured form of reusability for other flows? Subflows are structured to be reused, function nodes are not.
|
|
46
|
+
[^7]: Can the extension be triggered with a button, i.e., as an inject node?
|
|
47
|
+
[^8]: Can the icon be customised to make for simpler identification?
|
|
48
|
+
|
|
27
49
|
### Examples
|
|
28
50
|
|
|
29
51
|
Examples are included:
|
|
@@ -192,33 +192,37 @@
|
|
|
192
192
|
<hr/>
|
|
193
193
|
|
|
194
194
|
<div class="form-row">
|
|
195
|
-
<label for="node-input-pname" style="min-width:
|
|
195
|
+
<label for="node-input-pname" style="min-width: 150px;">Package Details:</label>
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
<div class="form-row">
|
|
199
|
+
<label for="node-input-pname" style="min-width: 150px;"><i class="fa fa-tag"></i> Name</label>
|
|
196
200
|
<input type="text" id="node-input-pname" placeholder="@username/node-red-contrib-somename"/>
|
|
197
201
|
</div>
|
|
198
202
|
|
|
199
203
|
<div class="form-row">
|
|
200
|
-
<label for="node-input-pversion" style="min-width:
|
|
204
|
+
<label for="node-input-pversion" style="min-width: 150px;"><i class="fa fa-tag"></i> Version</label>
|
|
201
205
|
<input type="text" id="node-input-pversion" placeholder="0.0.1"/>
|
|
202
206
|
</div>
|
|
203
207
|
|
|
204
208
|
<div class="form-row">
|
|
205
|
-
<label for="node-input-pauthorname" style="min-width:
|
|
209
|
+
<label for="node-input-pauthorname" style="min-width: 150px;"><i class="fa fa-address-book-o"></i> Author Name</label>
|
|
206
210
|
<input type="text" id="node-input-pauthorname" placeholder="Alfred E. Neumann"/>
|
|
207
211
|
</div>
|
|
208
212
|
|
|
209
213
|
<div class="form-row">
|
|
210
|
-
<label for="node-input-pauthoremail" style="min-width:
|
|
214
|
+
<label for="node-input-pauthoremail" style="min-width: 150px;"><i class="fa fa-envelope-o"></i> Author Email</label>
|
|
211
215
|
<input type="text" id="node-input-pauthoremail" placeholder="joe.blog@example.com"/>
|
|
212
216
|
</div>
|
|
213
217
|
|
|
214
218
|
<div class="form-row">
|
|
215
|
-
<label for="node-input-pdescription" style="min-width:
|
|
219
|
+
<label for="node-input-pdescription" style="min-width: 150px;"><i class="fa fa-book"></i> Description</label>
|
|
216
220
|
<input type="text" id="node-input-pdescription" placeholder="Package description"/>
|
|
217
221
|
</div>
|
|
218
222
|
|
|
219
223
|
<div class="form-row">
|
|
220
|
-
<label for="node-input-ignore_package_check" style="min-width:
|
|
221
|
-
<span>
|
|
224
|
+
<label for="node-input-ignore_package_check" style="min-width: 150px;"">
|
|
225
|
+
<span>No package check?</span>
|
|
222
226
|
</label>
|
|
223
227
|
<input type="checkbox" id="node-input-ignore_package_check" style="display:inline-block; width:15px; vertical-align:baseline;">
|
|
224
228
|
</div>
|