1. Added polyfill for Array.findIndex() if missing 2. Added try/catch around indentiers module

1. Added polyfill for Array.findIndex() if missing 2. Added try/catch around indentiers module

Bryan Roe committed Aug 16, 2021 at 12:57 UTC 1574a9bec9c20b02049559dda6b6018dbcf38618
1 file changed +50 -22
agents/meshcore.js
+50 -22
@@ -46,6 +46,27 @@ var MESHRIGHT_CHATNOTIFY = 16384;
46 var MESHRIGHT_UNINSTALL = 32768;
47 var MESHRIGHT_NODESKTOP = 65536;
48
49 +try
50 +{
51 + Object.defineProperty(Array.prototype, 'findIndex', {
52 + value: function (func)
53 + {
54 + var i = 0;
55 + for (i = 0; i < this.length; ++i)
56 + {
57 + if (func(this[i], i, this))
58 + {
59 + return (i);
60 + }
61 + }
62 + return (-1);
63 + }
64 + });
65 +}
66 +catch (x)
67 +{
68 +}
69 +
70 if (require('MeshAgent').ARCHID == null) {
71 var id = null;
72 switch (process.platform) {
@@ -409,28 +430,35 @@ if ((require('fs').existsSync(process.cwd() + 'batterystate.txt')) && (require('
430 }, 1000);
431 });
432 }
412 -else {
413 - // Setup normal battery monitoring
414 - if (require('identifiers').isBatteryPowered && require('identifiers').isBatteryPowered()) {
415 - require('MeshAgent')._battLevelChanged = function _battLevelChanged(val) {
416 - _battLevelChanged.self._currentBatteryLevel = val;
417 - _battLevelChanged.self.SendCommand({ action: 'battery', state: _battLevelChanged.self._currentPowerState, level: val });
418 - };
419 - require('MeshAgent')._battLevelChanged.self = require('MeshAgent');
420 - require('MeshAgent')._powerChanged = function _powerChanged(val) {
421 - _powerChanged.self._currentPowerState = (val == 'AC' ? 'ac' : 'dc');
422 - _powerChanged.self.SendCommand({ action: 'battery', state: (val == 'AC' ? 'ac' : 'dc'), level: _powerChanged.self._currentBatteryLevel });
423 - };
424 - require('MeshAgent')._powerChanged.self = require('MeshAgent');
425 - require('MeshAgent').on('Connected', function (status) {
426 - if (status == 0) {
427 - require('power-monitor').removeListener('acdc', this._powerChanged);
428 - require('power-monitor').removeListener('batteryLevel', this._battLevelChanged);
429 - } else {
430 - require('power-monitor').on('acdc', this._powerChanged);
431 - require('power-monitor').on('batteryLevel', this._battLevelChanged);
432 - }
433 - });
433 +else
434 +{
435 + try
436 + {
437 + // Setup normal battery monitoring
438 + if (require('identifiers').isBatteryPowered && require('identifiers').isBatteryPowered()) {
439 + require('MeshAgent')._battLevelChanged = function _battLevelChanged(val) {
440 + _battLevelChanged.self._currentBatteryLevel = val;
441 + _battLevelChanged.self.SendCommand({ action: 'battery', state: _battLevelChanged.self._currentPowerState, level: val });
442 + };
443 + require('MeshAgent')._battLevelChanged.self = require('MeshAgent');
444 + require('MeshAgent')._powerChanged = function _powerChanged(val) {
445 + _powerChanged.self._currentPowerState = (val == 'AC' ? 'ac' : 'dc');
446 + _powerChanged.self.SendCommand({ action: 'battery', state: (val == 'AC' ? 'ac' : 'dc'), level: _powerChanged.self._currentBatteryLevel });
447 + };
448 + require('MeshAgent')._powerChanged.self = require('MeshAgent');
449 + require('MeshAgent').on('Connected', function (status) {
450 + if (status == 0) {
451 + require('power-monitor').removeListener('acdc', this._powerChanged);
452 + require('power-monitor').removeListener('batteryLevel', this._battLevelChanged);
453 + } else {
454 + require('power-monitor').on('acdc', this._powerChanged);
455 + require('power-monitor').on('batteryLevel', this._battLevelChanged);
456 + }
457 + });
458 + }
459 + }
460 + catch(e)
461 + {
462 }
463 }
464