@ricado/api-client 2.1.0 → 2.3.0

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.
Files changed (123) hide show
  1. package/README.md +5 -7
  2. package/dist/ricado.api.client.js +1 -1
  3. package/lib/Controllers/Packhouse/Site/BinTipBinController.js +622 -0
  4. package/lib/Controllers/Packhouse/Site/CompacSizerController.js +3 -3
  5. package/lib/Controllers/Packhouse/Site/FreshQualityPackrunSummaryController.js +657 -0
  6. package/lib/Controllers/Packhouse/Site/PackingLineController.js +25 -1
  7. package/lib/Controllers/Packhouse/Site/PackrunController.js +42 -0
  8. package/lib/Controllers/Packhouse/Site/RejectBinScaleController.js +24 -2
  9. package/lib/Controllers/Packhouse/Site/ShiftHourlyEntryController.js +15 -0
  10. package/lib/Controllers/Packhouse/Site/ShiftQualitySummaryController.js +661 -0
  11. package/lib/Controllers/Packhouse/Site/ShiftTaskController.js +628 -0
  12. package/lib/Controllers/Packhouse/Site/SoftSortBeltController.js +453 -0
  13. package/lib/Controllers/Packhouse/Site/index.js +15 -0
  14. package/lib/DataItems/PointValueItem.js +3 -3
  15. package/lib/Models/AccountPolicyModel.js +7 -7
  16. package/lib/Models/ApiAccountModel.js +7 -7
  17. package/lib/Models/CompanyModel.js +5 -5
  18. package/lib/Models/FirebaseTokenModel.js +8 -8
  19. package/lib/Models/Packhouse/Site/BinTipBinModel.js +367 -0
  20. package/lib/Models/Packhouse/Site/BinTipWeightModel.js +9 -9
  21. package/lib/Models/Packhouse/Site/CompacSizerBatchModel.js +8 -8
  22. package/lib/Models/Packhouse/Site/CompacSizerModel.js +15 -15
  23. package/lib/Models/Packhouse/Site/CompacSizerOutletProductChangeModel.js +10 -10
  24. package/lib/Models/Packhouse/Site/CompacSizerOutletTypeChangeModel.js +8 -8
  25. package/lib/Models/Packhouse/Site/CompacSizerOutletTypeModel.js +6 -6
  26. package/lib/Models/Packhouse/Site/CompacSizerPackrunSummaryModel.js +12 -12
  27. package/lib/Models/Packhouse/Site/DowntimeEventModel.js +14 -14
  28. package/lib/Models/Packhouse/Site/FreshPackPackrunSummaryModel.js +8 -8
  29. package/lib/Models/Packhouse/Site/FreshQualityPackrunSummaryModel.js +481 -0
  30. package/lib/Models/Packhouse/Site/GrowingMethodModel.js +6 -6
  31. package/lib/Models/Packhouse/Site/PackTypeModel.js +8 -8
  32. package/lib/Models/Packhouse/Site/PackingLineModel.js +539 -16
  33. package/lib/Models/Packhouse/Site/PackrunModel.js +81 -15
  34. package/lib/Models/Packhouse/Site/RejectBinModel.js +9 -9
  35. package/lib/Models/Packhouse/Site/RejectBinScaleModel.js +271 -15
  36. package/lib/Models/Packhouse/Site/RejectBinWeightModel.js +10 -10
  37. package/lib/Models/Packhouse/Site/ShiftFocusMeetingModel.js +12 -12
  38. package/lib/Models/Packhouse/Site/ShiftHourlyEntryModel.js +204 -38
  39. package/lib/Models/Packhouse/Site/ShiftModel.js +26 -19
  40. package/lib/Models/Packhouse/Site/ShiftQualitySummaryModel.js +599 -0
  41. package/lib/Models/Packhouse/Site/ShiftTaskModel.js +373 -0
  42. package/lib/Models/Packhouse/Site/SoftSortBeltModel.js +235 -0
  43. package/lib/Models/Packhouse/Site/VarietyModel.js +8 -8
  44. package/lib/Models/Packhouse/Site/index.js +15 -0
  45. package/lib/Models/RTUModel.js +6 -6
  46. package/lib/Models/RTUPluginModel.js +5 -5
  47. package/lib/Models/Site/AlarmGroupModel.js +7 -7
  48. package/lib/Models/Site/AlarmModel.js +17 -17
  49. package/lib/Models/Site/DefinitionModel.js +6 -6
  50. package/lib/Models/Site/PermanentObjectDataModel.js +8 -8
  51. package/lib/Models/Site/PermanentObjectModel.js +7 -7
  52. package/lib/Models/Site/PointModel.js +11 -11
  53. package/lib/Models/Site/TemporaryObjectModel.js +6 -6
  54. package/lib/Models/SiteModel.js +6 -6
  55. package/lib/Models/TokenModel.js +10 -10
  56. package/lib/Models/UserAccountActionTokenModel.js +11 -11
  57. package/lib/Models/UserAccountModel.js +10 -10
  58. package/lib/PackageVersion.js +1 -1
  59. package/lib/Points.js +22 -12
  60. package/lib/WebSocketHelper.js +29 -13
  61. package/lib/index.d.ts +3853 -1290
  62. package/lib/index.js +3 -3
  63. package/package.json +1 -1
  64. package/src/Controllers/Packhouse/Site/BinTipBinController.js +665 -0
  65. package/src/Controllers/Packhouse/Site/CompacSizerController.js +3 -3
  66. package/src/Controllers/Packhouse/Site/FreshQualityPackrunSummaryController.js +700 -0
  67. package/src/Controllers/Packhouse/Site/PackingLineController.js +25 -1
  68. package/src/Controllers/Packhouse/Site/PackrunController.js +52 -0
  69. package/src/Controllers/Packhouse/Site/RejectBinScaleController.js +24 -2
  70. package/src/Controllers/Packhouse/Site/ShiftHourlyEntryController.js +15 -0
  71. package/src/Controllers/Packhouse/Site/ShiftQualitySummaryController.js +704 -0
  72. package/src/Controllers/Packhouse/Site/ShiftTaskController.js +671 -0
  73. package/src/Controllers/Packhouse/Site/SoftSortBeltController.js +474 -0
  74. package/src/Controllers/Packhouse/Site/index.js +10 -0
  75. package/src/DataItems/PointValueItem.js +3 -3
  76. package/src/Models/AccountPolicyModel.js +7 -7
  77. package/src/Models/ApiAccountModel.js +7 -7
  78. package/src/Models/CompanyModel.js +5 -5
  79. package/src/Models/FirebaseTokenModel.js +8 -8
  80. package/src/Models/Packhouse/Site/BinTipBinModel.js +365 -0
  81. package/src/Models/Packhouse/Site/BinTipWeightModel.js +9 -9
  82. package/src/Models/Packhouse/Site/CompacSizerBatchModel.js +8 -8
  83. package/src/Models/Packhouse/Site/CompacSizerModel.js +15 -15
  84. package/src/Models/Packhouse/Site/CompacSizerOutletProductChangeModel.js +10 -10
  85. package/src/Models/Packhouse/Site/CompacSizerOutletTypeChangeModel.js +8 -8
  86. package/src/Models/Packhouse/Site/CompacSizerOutletTypeModel.js +6 -6
  87. package/src/Models/Packhouse/Site/CompacSizerPackrunSummaryModel.js +12 -12
  88. package/src/Models/Packhouse/Site/DowntimeEventModel.js +14 -14
  89. package/src/Models/Packhouse/Site/FreshPackPackrunSummaryModel.js +8 -8
  90. package/src/Models/Packhouse/Site/FreshQualityPackrunSummaryModel.js +523 -0
  91. package/src/Models/Packhouse/Site/GrowingMethodModel.js +6 -6
  92. package/src/Models/Packhouse/Site/PackTypeModel.js +8 -8
  93. package/src/Models/Packhouse/Site/PackingLineModel.js +720 -16
  94. package/src/Models/Packhouse/Site/PackrunModel.js +90 -15
  95. package/src/Models/Packhouse/Site/RejectBinModel.js +9 -9
  96. package/src/Models/Packhouse/Site/RejectBinScaleModel.js +308 -15
  97. package/src/Models/Packhouse/Site/RejectBinWeightModel.js +10 -10
  98. package/src/Models/Packhouse/Site/ShiftFocusMeetingModel.js +12 -12
  99. package/src/Models/Packhouse/Site/ShiftHourlyEntryModel.js +229 -38
  100. package/src/Models/Packhouse/Site/ShiftModel.js +29 -19
  101. package/src/Models/Packhouse/Site/ShiftQualitySummaryModel.js +664 -0
  102. package/src/Models/Packhouse/Site/ShiftTaskModel.js +369 -0
  103. package/src/Models/Packhouse/Site/SoftSortBeltModel.js +215 -0
  104. package/src/Models/Packhouse/Site/VarietyModel.js +8 -8
  105. package/src/Models/Packhouse/Site/index.js +10 -0
  106. package/src/Models/RTUModel.js +6 -6
  107. package/src/Models/RTUPluginModel.js +5 -5
  108. package/src/Models/Site/AlarmGroupModel.js +7 -7
  109. package/src/Models/Site/AlarmModel.js +17 -17
  110. package/src/Models/Site/DefinitionModel.js +6 -6
  111. package/src/Models/Site/PermanentObjectDataModel.js +8 -8
  112. package/src/Models/Site/PermanentObjectModel.js +7 -7
  113. package/src/Models/Site/PointModel.js +11 -11
  114. package/src/Models/Site/TemporaryObjectModel.js +6 -6
  115. package/src/Models/SiteModel.js +6 -6
  116. package/src/Models/TokenModel.js +10 -10
  117. package/src/Models/UserAccountActionTokenModel.js +11 -11
  118. package/src/Models/UserAccountModel.js +10 -10
  119. package/src/PackageVersion.js +1 -1
  120. package/src/Points.js +24 -12
  121. package/src/WebSocketHelper.js +34 -13
  122. package/src/index.js +3 -3
  123. package/types/tslint.json +2 -1
@@ -30,7 +30,7 @@ class TokenModel extends BaseModel
30
30
  * @type {string}
31
31
  * @public
32
32
  */
33
- this.id = undefined;
33
+ this.id = "";
34
34
 
35
35
  /**
36
36
  * The Account this Token belongs to
@@ -38,7 +38,7 @@ class TokenModel extends BaseModel
38
38
  * @type {string}
39
39
  * @public
40
40
  */
41
- this.accountId = undefined;
41
+ this.accountId = "";
42
42
 
43
43
  /**
44
44
  * The Account Type
@@ -46,7 +46,7 @@ class TokenModel extends BaseModel
46
46
  * @type {string}
47
47
  * @public
48
48
  */
49
- this.accountType = undefined;
49
+ this.accountType = "";
50
50
 
51
51
  /**
52
52
  * When the Token was issued
@@ -54,7 +54,7 @@ class TokenModel extends BaseModel
54
54
  * @type {Date}
55
55
  * @public
56
56
  */
57
- this.issueTimestamp = undefined;
57
+ this.issueTimestamp = new Date();
58
58
 
59
59
  /**
60
60
  * When the Token will expire
@@ -62,7 +62,7 @@ class TokenModel extends BaseModel
62
62
  * @type {Date}
63
63
  * @public
64
64
  */
65
- this.expireTimestamp = undefined;
65
+ this.expireTimestamp = new Date();
66
66
 
67
67
  /**
68
68
  * When the last API call using this Token was made
@@ -70,7 +70,7 @@ class TokenModel extends BaseModel
70
70
  * @type {?Date}
71
71
  * @public
72
72
  */
73
- this.activityTimestamp = undefined;
73
+ this.activityTimestamp = null;
74
74
 
75
75
  /**
76
76
  * When the Token was unlocked
@@ -78,7 +78,7 @@ class TokenModel extends BaseModel
78
78
  * @type {?Date}
79
79
  * @public
80
80
  */
81
- this.unlockTimestamp = undefined;
81
+ this.unlockTimestamp = null;
82
82
 
83
83
  /**
84
84
  * When the Token was locked
@@ -86,7 +86,7 @@ class TokenModel extends BaseModel
86
86
  * @type {?Date}
87
87
  * @public
88
88
  */
89
- this.lockTimestamp = undefined;
89
+ this.lockTimestamp = null;
90
90
 
91
91
  /**
92
92
  * Whether the Token has been deleted
@@ -94,7 +94,7 @@ class TokenModel extends BaseModel
94
94
  * @type {boolean}
95
95
  * @public
96
96
  */
97
- this.deleted = undefined;
97
+ this.deleted = false;
98
98
 
99
99
  /**
100
100
  * When the Token was last updated
@@ -102,7 +102,7 @@ class TokenModel extends BaseModel
102
102
  * @type {Date}
103
103
  * @public
104
104
  */
105
- this.updateTimestamp = undefined;
105
+ this.updateTimestamp = new Date();
106
106
  }
107
107
 
108
108
  /**
@@ -30,7 +30,7 @@ class UserAccountActionTokenModel extends BaseModel
30
30
  * @type {string}
31
31
  * @public
32
32
  */
33
- this.id = undefined;
33
+ this.id = "";
34
34
 
35
35
  /**
36
36
  * The Account this Action Token belongs to
@@ -38,7 +38,7 @@ class UserAccountActionTokenModel extends BaseModel
38
38
  * @type {string}
39
39
  * @public
40
40
  */
41
- this.accountId = undefined;
41
+ this.accountId = "";
42
42
 
43
43
  /**
44
44
  * The Company this Action Token belongs to
@@ -46,7 +46,7 @@ class UserAccountActionTokenModel extends BaseModel
46
46
  * @type {string}
47
47
  * @public
48
48
  */
49
- this.companyId = undefined;
49
+ this.companyId = "";
50
50
 
51
51
  /**
52
52
  * The Action that can be Performed using this Action Token
@@ -54,7 +54,7 @@ class UserAccountActionTokenModel extends BaseModel
54
54
  * @type {string}
55
55
  * @public
56
56
  */
57
- this.action = undefined;
57
+ this.action = "";
58
58
 
59
59
  /**
60
60
  * When the Action Token was issued
@@ -62,7 +62,7 @@ class UserAccountActionTokenModel extends BaseModel
62
62
  * @type {Date}
63
63
  * @public
64
64
  */
65
- this.issueTimestamp = undefined;
65
+ this.issueTimestamp = new Date();
66
66
 
67
67
  /**
68
68
  * When the Action Token will expire
@@ -70,7 +70,7 @@ class UserAccountActionTokenModel extends BaseModel
70
70
  * @type {Date}
71
71
  * @public
72
72
  */
73
- this.expireTimestamp = undefined;
73
+ this.expireTimestamp = new Date();
74
74
 
75
75
  /**
76
76
  * When the last API call using this Action Token was made
@@ -78,7 +78,7 @@ class UserAccountActionTokenModel extends BaseModel
78
78
  * @type {?Date}
79
79
  * @public
80
80
  */
81
- this.activityTimestamp = undefined;
81
+ this.activityTimestamp = null;
82
82
 
83
83
  /**
84
84
  * When the Action was Completed
@@ -86,7 +86,7 @@ class UserAccountActionTokenModel extends BaseModel
86
86
  * @type {?Date}
87
87
  * @public
88
88
  */
89
- this.completedTimestamp = undefined;
89
+ this.completedTimestamp = null;
90
90
 
91
91
  /**
92
92
  * When the Action Email was Sent
@@ -94,7 +94,7 @@ class UserAccountActionTokenModel extends BaseModel
94
94
  * @type {?Date}
95
95
  * @public
96
96
  */
97
- this.emailTimestamp = undefined;
97
+ this.emailTimestamp = null;
98
98
 
99
99
  /**
100
100
  * Whether the User Account Action Token has been deleted
@@ -102,7 +102,7 @@ class UserAccountActionTokenModel extends BaseModel
102
102
  * @type {boolean}
103
103
  * @public
104
104
  */
105
- this.deleted = undefined;
105
+ this.deleted = false;
106
106
 
107
107
  /**
108
108
  * When the User Account Action Token was last updated
@@ -110,7 +110,7 @@ class UserAccountActionTokenModel extends BaseModel
110
110
  * @type {Date}
111
111
  * @public
112
112
  */
113
- this.updateTimestamp = undefined;
113
+ this.updateTimestamp = new Date();
114
114
  }
115
115
 
116
116
  /**
@@ -30,7 +30,7 @@ class UserAccountModel extends BaseModel
30
30
  * @type {string}
31
31
  * @public
32
32
  */
33
- this.id = undefined;
33
+ this.id = "";
34
34
 
35
35
  /**
36
36
  * The User's Email Address
@@ -38,7 +38,7 @@ class UserAccountModel extends BaseModel
38
38
  * @type {string}
39
39
  * @public
40
40
  */
41
- this.email = undefined;
41
+ this.email = "";
42
42
 
43
43
  /**
44
44
  * The User's First Name
@@ -46,7 +46,7 @@ class UserAccountModel extends BaseModel
46
46
  * @type {?string}
47
47
  * @public
48
48
  */
49
- this.firstName = undefined;
49
+ this.firstName = null;
50
50
 
51
51
  /**
52
52
  * The User's Last Name
@@ -54,7 +54,7 @@ class UserAccountModel extends BaseModel
54
54
  * @type {?string}
55
55
  * @public
56
56
  */
57
- this.lastName = undefined;
57
+ this.lastName = null;
58
58
 
59
59
  /**
60
60
  * The Company this User belongs to
@@ -62,7 +62,7 @@ class UserAccountModel extends BaseModel
62
62
  * @type {string}
63
63
  * @public
64
64
  */
65
- this.companyId = undefined;
65
+ this.companyId = "";
66
66
 
67
67
  /**
68
68
  * The Policies that apply to this User Account
@@ -70,7 +70,7 @@ class UserAccountModel extends BaseModel
70
70
  * @type {string[]}
71
71
  * @public
72
72
  */
73
- this.policies = undefined;
73
+ this.policies = [];
74
74
 
75
75
  /**
76
76
  * Whether a Password has been Set for the User Account
@@ -78,7 +78,7 @@ class UserAccountModel extends BaseModel
78
78
  * @type {boolean}
79
79
  * @public
80
80
  */
81
- this.hasPassword = undefined;
81
+ this.hasPassword = false;
82
82
 
83
83
  /**
84
84
  * Whether a Pin Code has been Set for the User Account
@@ -86,7 +86,7 @@ class UserAccountModel extends BaseModel
86
86
  * @type {boolean}
87
87
  * @public
88
88
  */
89
- this.hasPinCode = undefined;
89
+ this.hasPinCode = false;
90
90
 
91
91
  /**
92
92
  * Whether the User Account has been deleted
@@ -94,7 +94,7 @@ class UserAccountModel extends BaseModel
94
94
  * @type {boolean}
95
95
  * @public
96
96
  */
97
- this.deleted = undefined;
97
+ this.deleted = false;
98
98
 
99
99
  /**
100
100
  * When the User Account was last updated
@@ -102,7 +102,7 @@ class UserAccountModel extends BaseModel
102
102
  * @type {Date}
103
103
  * @public
104
104
  */
105
- this.updateTimestamp = undefined;
105
+ this.updateTimestamp = new Date();
106
106
  }
107
107
 
108
108
  /**
@@ -1,2 +1,2 @@
1
1
  // generated by genversion
2
- export const version = '2.1.0';
2
+ export const version = '2.3.0';
package/src/Points.js CHANGED
@@ -24,7 +24,7 @@ class Points
24
24
  * An EventEmitter Instance
25
25
  *
26
26
  * @private
27
- * @type {EventEmitter}
27
+ * @type {EventEmitter|undefined}
28
28
  */
29
29
  static _emitter = undefined;
30
30
 
@@ -34,7 +34,7 @@ class Points
34
34
  * @private
35
35
  * @type {Object<number, {initializing: boolean, completed: boolean, pointIds: number[]}>}
36
36
  */
37
- static _subscriptions = undefined;
37
+ static _subscriptions = {};
38
38
 
39
39
  /**
40
40
  * An Array of PointModel Definitions
@@ -42,7 +42,7 @@ class Points
42
42
  * @private
43
43
  * @type {Object<number, Object<number, PointModel>>}
44
44
  */
45
- static _definitions = undefined;
45
+ static _definitions = {};
46
46
 
47
47
  /**
48
48
  * An Array of Point Values
@@ -50,7 +50,7 @@ class Points
50
50
  * @private
51
51
  * @type {Object<number, Object<number, Points.PointValueItem>>}
52
52
  */
53
- static _values = undefined;
53
+ static _values = {};
54
54
 
55
55
  /**
56
56
  * Initialize
@@ -83,7 +83,13 @@ class Points
83
83
  Points._values = {};
84
84
  }
85
85
 
86
- WebSocketHelper.on('readpoints', (key, readPoints) => {
86
+ WebSocketHelper.on('readpoints',
87
+ /**
88
+ * @param {string} key
89
+ * @param {Array<{id: number, timestamp: string, value: any}>} readPoints
90
+ */
91
+ (key, readPoints) => {
92
+
87
93
  if(isDefined(key) && key.includes('.') && readPoints.length > 0)
88
94
  {
89
95
  let keyId = key.split('.')[1];
@@ -102,7 +108,7 @@ class Points
102
108
  siteId = this.getDefaultSiteId();
103
109
  }
104
110
 
105
- if(isDefined(siteId) && siteId > 0)
111
+ if(isDefined(siteId) && siteId !== undefined && siteId > 0)
106
112
  {
107
113
  if((siteId in Points._values) != true)
108
114
  {
@@ -134,7 +140,10 @@ class Points
134
140
  }
135
141
  });
136
142
 
137
- Points._emitter.emit('readpoints', siteId, pointValueItems);
143
+ if(Points._emitter !== undefined)
144
+ {
145
+ Points._emitter.emit('readpoints', siteId, pointValueItems);
146
+ }
138
147
  }
139
148
  }
140
149
  });
@@ -312,7 +321,7 @@ class Points
312
321
  */
313
322
  static on(event, handler)
314
323
  {
315
- if(isDefined(Points._emitter) != true)
324
+ if(isDefined(Points._emitter) != true || Points._emitter === undefined)
316
325
  {
317
326
  Points._emitter = new EventEmitter();
318
327
  }
@@ -330,7 +339,7 @@ class Points
330
339
  */
331
340
  static off(event, handler)
332
341
  {
333
- if(isDefined(Points._emitter))
342
+ if(isDefined(Points._emitter) && Points._emitter !== undefined)
334
343
  {
335
344
  Points._emitter.off(event, handler);
336
345
  }
@@ -424,18 +433,21 @@ class Points
424
433
  if(siteId <= 0)
425
434
  {
426
435
  reject(new Error("Invalid Site ID `" + siteId + "`"));
436
+ return;
427
437
  }
428
438
 
429
439
  if(pointId <= 0)
430
440
  {
431
441
  reject(new Error("Invalid Point ID `" + pointId + "`"));
442
+ return;
432
443
  }
433
444
 
434
445
  let pointDefinition = Points.getDefinition(siteId, pointId);
435
446
 
436
- if(isDefined(pointDefinition) != true || pointDefinition.id != pointId)
447
+ if(isDefined(pointDefinition) != true || pointDefinition === undefined || pointDefinition.id != pointId)
437
448
  {
438
449
  reject(new Error("Unknown Point ID `" + pointId + "` for Site ID `" + siteId + "`"));
450
+ return;
439
451
  }
440
452
 
441
453
  WebSocketHelper.emit('createWritePoint', siteId, pointId, value, pointDefinition.valueType, false, (guid) => {
@@ -522,7 +534,7 @@ class Points
522
534
  }
523
535
  });
524
536
 
525
- if(changedPoints.length > 0)
537
+ if(changedPoints.length > 0 && Points._emitter !== undefined)
526
538
  {
527
539
  Points._emitter.emit('readpoints', siteId, changedPoints);
528
540
  }
@@ -563,7 +575,7 @@ class Points
563
575
  * The Events Callback
564
576
  *
565
577
  * @callback Points.eventCallback
566
- * @param {...any[]} args - The Callback Arguments
578
+ * @param {...any} args - The Callback Arguments
567
579
  * @return {void}
568
580
  */
569
581
 
@@ -13,7 +13,7 @@ class WebSocketHelper
13
13
  * An Event Emitter Instance
14
14
  *
15
15
  * @private
16
- * @type {EventEmitter}
16
+ * @type {EventEmitter|undefined}
17
17
  */
18
18
  static _emitter = undefined;
19
19
 
@@ -23,13 +23,13 @@ class WebSocketHelper
23
23
  * @private
24
24
  * @type {string[]}
25
25
  */
26
- static _subscriptions = undefined;
26
+ static _subscriptions = [];
27
27
 
28
28
  /**
29
29
  * The Socket.IO WebSocket Instance
30
30
  *
31
31
  * @private
32
- * @type {SocketIOClient.Socket}
32
+ * @type {SocketIOClient.Socket|undefined}
33
33
  */
34
34
  static _socket = undefined;
35
35
 
@@ -74,6 +74,11 @@ class WebSocketHelper
74
74
  // Fired every time we attempt to reconnect.
75
75
  // `attempt` holds the count of attempts so far
76
76
 
77
+ if(WebSocketHelper._socket === undefined)
78
+ {
79
+ return;
80
+ }
81
+
77
82
  WebSocketHelper._socket.io.opts.transports = ['websocket'];
78
83
 
79
84
  WebSocketHelper._socket.io.opts.query = {
@@ -91,7 +96,10 @@ class WebSocketHelper
91
96
  if(isDefined(WebSocketHelper._subscriptions))
92
97
  {
93
98
  WebSocketHelper._subscriptions.forEach((subscription) => {
94
- WebSocketHelper._socket.emit('subscribe', subscription);
99
+ if(WebSocketHelper._socket !== undefined)
100
+ {
101
+ WebSocketHelper._socket.emit('subscribe', subscription);
102
+ }
95
103
  });
96
104
  }
97
105
  });
@@ -110,7 +118,10 @@ class WebSocketHelper
110
118
  if(reason == 'io server disconnect')
111
119
  {
112
120
  setTimeout(() => {
113
- WebSocketHelper._socket.connect();
121
+ if(WebSocketHelper._socket !== undefined)
122
+ {
123
+ WebSocketHelper._socket.connect();
124
+ }
114
125
  }, 5000);
115
126
  }
116
127
  });
@@ -137,6 +148,11 @@ class WebSocketHelper
137
148
  });
138
149
 
139
150
  WebSocketHelper._socket.on('*', (event, ...args) => {
151
+ if(WebSocketHelper._emitter === undefined)
152
+ {
153
+ return;
154
+ }
155
+
140
156
  WebSocketHelper._emitter.emit(event, ...args);
141
157
  });
142
158
  }
@@ -179,7 +195,7 @@ class WebSocketHelper
179
195
  * @public
180
196
  * @param {string} [key] - The Site ID or RTU ID Key (e.g. site.2 or rtu.1200)
181
197
  */
182
- static subscribe(key = null)
198
+ static subscribe(key = undefined)
183
199
  {
184
200
  // TODO: Re-Write as Async (Use a Promise) and set up an "Ack" callback so we know the WebSocket Server has Subscribed us
185
201
 
@@ -188,7 +204,7 @@ class WebSocketHelper
188
204
  WebSocketHelper._subscriptions = [];
189
205
  }
190
206
 
191
- if(isDefined(key) != true)
207
+ if(isDefined(key) != true || key === undefined)
192
208
  {
193
209
  key = 'all';
194
210
  }
@@ -198,7 +214,7 @@ class WebSocketHelper
198
214
  WebSocketHelper._subscriptions.push(key);
199
215
  }
200
216
 
201
- if(isDefined(WebSocketHelper._socket))
217
+ if(isDefined(WebSocketHelper._socket) && WebSocketHelper._socket !== undefined)
202
218
  {
203
219
  WebSocketHelper._socket.emit('subscribe', key);
204
220
  }
@@ -211,7 +227,7 @@ class WebSocketHelper
211
227
  * @public
212
228
  * @param {string} [key] - The Site ID or RTU ID Key (e.g. site.2 or rtu.1200)
213
229
  */
214
- static unsubscribe(key = null)
230
+ static unsubscribe(key = undefined)
215
231
  {
216
232
  // TODO: Re-Write as Async (Use a Promise) and set up an "Ack" callback so we know the WebSocket Server has Unsubscribed us
217
233
 
@@ -220,7 +236,7 @@ class WebSocketHelper
220
236
  WebSocketHelper._subscriptions = [];
221
237
  }
222
238
 
223
- if(isDefined(key) != true)
239
+ if(isDefined(key) != true || key === undefined)
224
240
  {
225
241
  key = 'all';
226
242
  }
@@ -230,7 +246,7 @@ class WebSocketHelper
230
246
  WebSocketHelper._subscriptions.splice(WebSocketHelper._subscriptions.indexOf(key), 1);
231
247
  }
232
248
 
233
- if(isDefined(WebSocketHelper._socket))
249
+ if(isDefined(WebSocketHelper._socket) && WebSocketHelper._socket !== undefined)
234
250
  {
235
251
  WebSocketHelper._socket.emit('unsubscribe', key);
236
252
  }
@@ -246,7 +262,7 @@ class WebSocketHelper
246
262
  */
247
263
  static on(event, handler)
248
264
  {
249
- if(isDefined(WebSocketHelper._emitter) != true)
265
+ if(isDefined(WebSocketHelper._emitter) != true || WebSocketHelper._emitter === undefined)
250
266
  {
251
267
  WebSocketHelper._emitter = new EventEmitter();
252
268
  }
@@ -264,6 +280,11 @@ class WebSocketHelper
264
280
  */
265
281
  static emit(event, ...args)
266
282
  {
283
+ if(WebSocketHelper._socket === undefined)
284
+ {
285
+ return;
286
+ }
287
+
267
288
  WebSocketHelper._socket.emit(event, ...args);
268
289
  }
269
290
  }
@@ -272,7 +293,7 @@ class WebSocketHelper
272
293
  * The Events Callback
273
294
  *
274
295
  * @callback WebSocketHelper.eventCallback
275
- * @param {...any[]} args - The Callback Arguments
296
+ * @param {...any} args - The Callback Arguments
276
297
  * @return {void}
277
298
  */
278
299
 
package/src/index.js CHANGED
@@ -29,7 +29,7 @@ export function isDefined(variable)
29
29
  * The JSON Web Token for all Authenticated API Calls
30
30
  *
31
31
  * @private
32
- * @type {string}
32
+ * @type {string|undefined}
33
33
  */
34
34
  export var JWT = undefined;
35
35
 
@@ -407,12 +407,12 @@ export function ping() {
407
407
 
408
408
  /**
409
409
  *
410
- * @param {string} jwt The JWT Token
410
+ * @param {string|undefined} jwt The JWT Token
411
411
  * @return {boolean}
412
412
  */
413
413
  function isJwtValid(jwt)
414
414
  {
415
- if(jwt === null || typeof jwt !== 'string')
415
+ if(jwt === null || jwt === undefined || typeof jwt !== 'string')
416
416
  {
417
417
  return false;
418
418
  }
package/types/tslint.json CHANGED
@@ -11,6 +11,7 @@
11
11
  "no-useless-files": false,
12
12
  "strict-export-declare-modifiers": false,
13
13
  "array-type": false,
14
- "interface-over-type-literal": false
14
+ "interface-over-type-literal": false,
15
+ "redundant-undefined": false
15
16
  }
16
17
  }