Skip to content

Commit 14191ce

Browse files
committed
[rules] Rule Builder: Improve JSDoc & type definitions for trigger builder
Signed-off-by: Florian Hotze <dev@florianhotze.com>
1 parent cb7a585 commit 14191ce

3 files changed

Lines changed: 159 additions & 59 deletions

File tree

src/rules/trigger-builder.js

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ const triggers = require('../triggers');
22
const operations = require('./operation-builder');
33
const conditions = require('./condition-builder');
44

5+
/**
6+
* @typedef { import("../items/items").Item } Item
7+
* @private
8+
*/
9+
510
/**
611
* @callback ConditionCallback The callback function to determine if the condition is met.
712
* @returns {boolean} true if the condition is met, otherwise false
@@ -75,21 +80,21 @@ class TriggerBuilder {
7580
/**
7681
* Specifies an Item as the source of changes to trigger a rule.
7782
*
78-
* @param {string} itemName the name of the Item
83+
* @param {Item|string} itemOrName the {@link Item} or the name of the Item
7984
* @returns {ItemTriggerConfig} the trigger config
8085
*/
81-
item (itemName) {
82-
return this._setTrigger(new ItemTriggerConfig(itemName, false, this));
86+
item (itemOrName) {
87+
return this._setTrigger(new ItemTriggerConfig(itemOrName, false, this));
8388
}
8489

8590
/**
8691
* Specifies a group member as the source of changes to trigger a rule.
8792
*
88-
* @param {string} groupName the name of the group
93+
* @param {Item|string} groupOrName the {@link Item} or the name of the group
8994
* @returns {ItemTriggerConfig} the trigger config
9095
*/
91-
memberOf (groupName) {
92-
return this._setTrigger(new ItemTriggerConfig(groupName, true, this));
96+
memberOf (groupOrName) {
97+
return this._setTrigger(new ItemTriggerConfig(groupOrName, true, this));
9398
}
9499

95100
/**
@@ -115,11 +120,11 @@ class TriggerBuilder {
115120
/**
116121
* Specifies a DateTime Item whose (optional) date and time schedule the rule to fire.
117122
*
118-
* @param {string} itemName the name of the Item to monitor for change
123+
* @param {Item|string} itemOrName the {@link Item} or the name of the Item
119124
* @returns {DateTimeTriggerConfig} the trigger config
120125
*/
121-
dateTime (itemName) {
122-
return this._setTrigger(new DateTimeTriggerConfig(itemName, this));
126+
dateTime (itemOrName) {
127+
return this._setTrigger(new DateTimeTriggerConfig(itemOrName, this));
123128
}
124129
}
125130

@@ -134,7 +139,7 @@ class TriggerConf {
134139
}
135140

136141
/**
137-
* Add an additional Trigger
142+
* Adds an additional Trigger
138143
*
139144
* @returns {TriggerBuilder}
140145
*/
@@ -185,7 +190,7 @@ class ChannelTriggerConfig extends TriggerConf {
185190
}
186191

187192
/**
188-
* trigger a specific event name
193+
* channel trigger a specific event name
189194
*
190195
* @param {string} eventName
191196
* @returns {ChannelTriggerConfig}
@@ -195,7 +200,7 @@ class ChannelTriggerConfig extends TriggerConf {
195200
}
196201

197202
/**
198-
* trigger a specific event name
203+
* channel triggered a specific event name
199204
*
200205
* @param {string} eventName
201206
* @returns {ChannelTriggerConfig}
@@ -233,7 +238,7 @@ class CronTriggerConfig extends TriggerConf {
233238
}
234239

235240
/**
236-
* Time of day based trigger
241+
* Time of day-based trigger
237242
*
238243
* @memberof TriggerBuilder
239244
* @extends TriggerConf
@@ -276,9 +281,9 @@ class ItemTriggerConfig extends TriggerConf {
276281
}
277282

278283
/**
279-
* Item to
284+
* Item received command or changed/updated state to
280285
*
281-
* @param {*} value this Item should be triggered to
286+
* @param {string} value
282287
* @returns {ItemTriggerConfig}
283288
*/
284289
to (value) {
@@ -287,8 +292,9 @@ class ItemTriggerConfig extends TriggerConf {
287292
}
288293

289294
/**
290-
* Item from
291-
* @param {*} value this items should be triggered from
295+
* Item state changed from
296+
*
297+
* @param {string} value
292298
* @returns {ItemTriggerConfig}
293299
*/
294300
from (value) {
@@ -300,7 +306,7 @@ class ItemTriggerConfig extends TriggerConf {
300306
}
301307

302308
/**
303-
* Item changed to OFF
309+
* Item received command OFF or changed/updated state to OFF
304310
*
305311
* @returns {ItemTriggerConfig}
306312
*/
@@ -309,7 +315,7 @@ class ItemTriggerConfig extends TriggerConf {
309315
}
310316

311317
/**
312-
* Item changed to ON
318+
* Item received command ON or changed/updated state to ON
313319
*
314320
* @returns {ItemTriggerConfig}
315321
*/
@@ -318,7 +324,7 @@ class ItemTriggerConfig extends TriggerConf {
318324
}
319325

320326
/**
321-
* Item changed from OFF
327+
* Item changed state from OFF
322328
*
323329
* @returns {ItemTriggerConfig}
324330
*/
@@ -327,7 +333,7 @@ class ItemTriggerConfig extends TriggerConf {
327333
}
328334

329335
/**
330-
* Item changed from ON
336+
* Item changed state from ON
331337
*
332338
* @returns {ItemTriggerConfig}
333339
*/
@@ -457,7 +463,7 @@ class ItemTriggerConfig extends TriggerConf {
457463
}
458464

459465
/**
460-
* Thing based trigger
466+
* Thing-based trigger
461467
*
462468
* @memberof TriggerBuilder
463469
* @extends TriggerConf
@@ -498,7 +504,7 @@ class ThingTriggerConfig extends TriggerConf {
498504
}
499505

500506
/**
501-
* thing changed
507+
* Thing status changed
502508
*
503509
* @returns {ThingTriggerConfig}
504510
*/
@@ -508,7 +514,7 @@ class ThingTriggerConfig extends TriggerConf {
508514
}
509515

510516
/**
511-
* thing updates
517+
* Thing status updated
512518
*
513519
* @returns {ThingTriggerConfig}
514520
*/
@@ -518,8 +524,9 @@ class ThingTriggerConfig extends TriggerConf {
518524
}
519525

520526
/**
521-
* thing status changed from
527+
* Thing status changed from
522528
*
529+
* @param {string} value
523530
* @returns {ThingTriggerConfig}
524531
*/
525532
from (value) {
@@ -531,8 +538,9 @@ class ThingTriggerConfig extends TriggerConf {
531538
}
532539

533540
/**
534-
* thing status changed to
541+
* Thing status changed to
535542
*
543+
* @param {string} value
536544
* @returns {ThingTriggerConfig}
537545
*/
538546
to (value) {

0 commit comments

Comments
 (0)