Skip to content

Commit 74428c0

Browse files
committed
Fix unnecessary configuration node
1 parent d174103 commit 74428c0

File tree

5 files changed

+122
-120
lines changed

5 files changed

+122
-120
lines changed

lib/nodegen.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ function swagger2node(data, options) {
331331
return params.split(',').filter(p => p).some(p => p !== 'body') ? render(content) : '';
332332
}
333333
};
334+
var hasServiceParams = swagger.host === undefined || swagger.security !== undefined;
334335

335336
// Create node.js
336337
var nodeSourceCode = CodeGen.getCustomCode({
@@ -344,7 +345,8 @@ function swagger2node(data, options) {
344345
mustache: {
345346
nodeName: data.name,
346347
isBodyParam: isBodyParam,
347-
isNotBodyParam: isNotBodyParam
348+
isNotBodyParam: isNotBodyParam,
349+
hasServiceParams: hasServiceParams
348350
},
349351
lint: false,
350352
beautify: false
@@ -367,7 +369,8 @@ function swagger2node(data, options) {
367369
nodeName: data.name,
368370
category: data.category || 'function',
369371
isNotBodyParam: isNotBodyParam,
370-
hasOptionalParams: hasOptionalParams
372+
hasOptionalParams: hasOptionalParams,
373+
hasServiceParams: hasServiceParams
371374
},
372375
lint: false,
373376
beautify: false
@@ -407,6 +410,7 @@ function swagger2node(data, options) {
407410
mustache: {
408411
nodeName: data.name,
409412
projectName: data.module,
413+
hasServiceParams: hasServiceParams
410414
},
411415
lint: false,
412416
beautify: false

templates/swagger/node.html.mustache

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
<script type="text/javascript">
2-
RED.nodes.registerType('{{&nodeName}}',{
2+
RED.nodes.registerType('{{&nodeName}}', {
33
category: '{{&category}}',
44
color: '#89bf04',
55
defaults: {
6+
{{#hasServiceParams}}
67
service: { value: "", type: "{{&nodeName}}-service", required: true },
8+
{{/hasServiceParams}}
79
method: { value: "" },
810
911
{{#methods}}
1012
{{#parameters}}
1113
{{&methodName}}_{{&camelCaseName}}: { value: "" },
12-
{{&methodName}}_{{&camelCaseName}}Type: {value: "str"},
14+
{{&methodName}}_{{&camelCaseName}}Type: { value: "str" },
1315
{{/parameters}}
1416
{{/methods}}
1517
@@ -18,18 +20,18 @@
1820
inputs: 1,
1921
outputs: 1,
2022
icon: "icon.png",
21-
label: function() {
23+
label: function () {
2224
return this.name || "{{&nodeName}}";
2325
},
24-
oneditprepare: function() {
26+
oneditprepare: function () {
2527
var selectedMethod = $('#node-input-method option:selected');
2628
if (!selectedMethod.val()) {
2729
var methods = $('#node-input-method').children();
2830
var firstMethod = methods.first();
2931
$('#node-input-method').val(firstMethod.val());
3032
}
3133
32-
var showParameters = function() {
34+
var showParameters = function () {
3335
{{#methods}}
3436
{{#parameters}}
3537
@@ -86,11 +88,11 @@
8688
}
8789
};
8890
89-
$("#node-input-method").change(function() {
91+
$("#node-input-method").change(function () {
9092
showParameters();
9193
});
9294
93-
$("#optional-parameters").change(function() {
95+
$("#optional-parameters").change(function () {
9496
showParameters();
9597
});
9698
@@ -113,10 +115,12 @@
113115
</script>
114116

115117
<script type="text/x-red" data-template-name="{{&nodeName}}">
118+
{{#hasServiceParams}}
116119
<div class="form-row">
117120
<label for="node-input-service"><i class="fa fa-cloud"></i> <span data-i18n="{{&className}}.label.service"></span></label>
118121
<input type="text" id="node-input-service">
119122
</div>
123+
{{/hasServiceParams}}
120124
121125
<div class="form-row">
122126
<label for="node-input-method"><i class="icon-tasks"></i> <span data-i18n="{{&className}}.label.method"></span></label>
@@ -174,9 +178,9 @@
174178
<h4>{{&summary}}</h4>
175179
{{/methods}}
176180
</script>
177-
181+
{{#hasServiceParams}}
178182
<script type="text/javascript">
179-
RED.nodes.registerType('{{&nodeName}}-service',{
183+
RED.nodes.registerType('{{&nodeName}}-service', {
180184
category: 'config',
181185
defaults: {
182186
{{^domain}}
@@ -211,10 +215,10 @@
211215
{{/isSecure}}
212216
temp: { type:"text" }
213217
},
214-
label: function() {
218+
label: function () {
215219
return this.name;
216220
},
217-
oneditprepare: function() {
221+
oneditprepare: function () {
218222
{{#isSecure}}
219223
{{#isSecureToken}}
220224
$('#node-config-input-secureTokenHeaderOrQueryName-label').hide();
@@ -306,3 +310,4 @@
306310
{{/isSecureBasic}}
307311
{{/isSecure}}
308312
</script>
313+
{{/hasServiceParams}}

templates/swagger/node.js.mustache

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ var lib = require('./lib.js');
44
module.exports = function (RED) {
55
function {{&className}}Node(config) {
66
RED.nodes.createNode(this, config);
7+
{{#hasServiceParams}}
78
this.service = RED.nodes.getNode(config.service);
9+
{{/hasServiceParams}}
810
this.method = config.method;
911

1012
{{#methods}}
@@ -97,8 +99,10 @@ module.exports = function (RED) {
9799
}
98100
});
99101
}
102+
100103
RED.nodes.registerType("{{&nodeName}}", {{&className}}Node);
101104

105+
{{#hasServiceParams}}
102106
function {{&className}}ServiceNode(n) {
103107
RED.nodes.createNode(this, n);
104108
{{^domain}}
@@ -122,6 +126,7 @@ module.exports = function (RED) {
122126
{{/isSecureBasic}}
123127
{{/isSecure}}
124128
}
129+
125130
RED.nodes.registerType("{{&nodeName}}-service", {{&className}}ServiceNode, {
126131
credentials: {
127132
{{#isSecure}}
@@ -139,4 +144,5 @@ module.exports = function (RED) {
139144
temp: { type: "text" }
140145
}
141146
});
147+
{{/hasServiceParams}}
142148
};

templates/swagger/test/node_spec.js.mustache

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
var should = require("should");
2-
var helper = require("node-red-node-test-helper");
3-
var node = require("../node.js");
1+
var should = require('should');
2+
var helper = require('node-red-node-test-helper');
3+
var node = require('../node.js');
44

55
helper.init(require.resolve('node-red'));
66

@@ -19,9 +19,9 @@ describe('{{&nodeName}} node', function () {
1919
});
2020

2121
it('should be loaded', function (done) {
22-
var flow = [{ id: "n1", type: "{{&nodeName}}", name: "{{&nodeName}}" }];
22+
var flow = [{ id: 'n1', type: '{{&nodeName}}', name: '{{&nodeName}}' }];
2323
helper.load(node, flow, function () {
24-
var n1 = helper.getNode("n1");
24+
var n1 = helper.getNode('n1');
2525
n1.should.have.property('name', '{{&nodeName}}');
2626
done();
2727
});
@@ -30,29 +30,35 @@ describe('{{&nodeName}} node', function () {
3030
{{#methods}}
3131
it('should handle {{&methodName}}()', function (done) {
3232
var flow = [
33-
{ id: "n1", type: "{{&nodeName}}", name: "{{&nodeName}}", wires: [["n2"]],
34-
method: "{{&methodName}}",
33+
{ id: 'n1', type: '{{&nodeName}}', name: '{{&nodeName}}',
34+
method: '{{&methodName}}',
3535
{{#parameters}}
36-
{{&methodName}}_{{&camelCaseName}}: "<node property>", // (1) define node properties
36+
{{&methodName}}_{{&camelCaseName}}: '<node property>', // (1) define node properties
3737
{{/parameters}}
38-
service: "n3" },
39-
{ id: "n2", type: "{{&nodeName}}-service" },
40-
{ id: "n3", type: "helper" }
38+
{{#hasServiceParams}}
39+
wires: [['n3']],
40+
service: 'n2' },
41+
{ id: 'n2', type: '{{&nodeName}}-service', host: 'http://<host name>' }, // (4) define host name
42+
{{/hasServiceParams}}
43+
{{^hasServiceParams}}
44+
wires: [['n3']]
45+
},
46+
{{/hasServiceParams}}
47+
{ id: 'n3', type: 'helper' }
4148
];
4249
helper.load(node, flow, function () {
43-
var n3 = helper.getNode("n3");
44-
var n1 = helper.getNode("n1");
45-
n3.on("input", function (msg) {
50+
var n3 = helper.getNode('n3');
51+
var n1 = helper.getNode('n1');
52+
n3.on('input', function (msg) {
4653
try {
4754
msg.should.have.property('payload', '<output message>'); // (3) define output message
4855
done();
4956
} catch (e) {
5057
done(e);
5158
}
5259
});
53-
n1.receive({ payload: "<input message>" }); // (2) define input message
60+
n1.receive({ payload: '<input message>' }); // (2) define input message
5461
});
5562
});
5663
{{/methods}}
5764
});
58-

0 commit comments

Comments
 (0)