@machinemetrics/mm-react-tools 2.1.1 → 2.2.0-dev
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/dist/index.js +387 -74
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +387 -74
- package/dist/index.modern.js.map +1 -1
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -547,11 +547,165 @@ function _taggedTemplateLiteralLoose(strings, raw) {
|
|
|
547
547
|
}
|
|
548
548
|
|
|
549
549
|
// A type of promise-like that resolves synchronously and supports only one observer
|
|
550
|
+
const _Pact = /*#__PURE__*/(function() {
|
|
551
|
+
function _Pact() {}
|
|
552
|
+
_Pact.prototype.then = function(onFulfilled, onRejected) {
|
|
553
|
+
const result = new _Pact();
|
|
554
|
+
const state = this.s;
|
|
555
|
+
if (state) {
|
|
556
|
+
const callback = state & 1 ? onFulfilled : onRejected;
|
|
557
|
+
if (callback) {
|
|
558
|
+
try {
|
|
559
|
+
_settle(result, 1, callback(this.v));
|
|
560
|
+
} catch (e) {
|
|
561
|
+
_settle(result, 2, e);
|
|
562
|
+
}
|
|
563
|
+
return result;
|
|
564
|
+
} else {
|
|
565
|
+
return this;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
this.o = function(_this) {
|
|
569
|
+
try {
|
|
570
|
+
const value = _this.v;
|
|
571
|
+
if (_this.s & 1) {
|
|
572
|
+
_settle(result, 1, onFulfilled ? onFulfilled(value) : value);
|
|
573
|
+
} else if (onRejected) {
|
|
574
|
+
_settle(result, 1, onRejected(value));
|
|
575
|
+
} else {
|
|
576
|
+
_settle(result, 2, value);
|
|
577
|
+
}
|
|
578
|
+
} catch (e) {
|
|
579
|
+
_settle(result, 2, e);
|
|
580
|
+
}
|
|
581
|
+
};
|
|
582
|
+
return result;
|
|
583
|
+
};
|
|
584
|
+
return _Pact;
|
|
585
|
+
})();
|
|
586
|
+
|
|
587
|
+
// Settles a pact synchronously
|
|
588
|
+
function _settle(pact, state, value) {
|
|
589
|
+
if (!pact.s) {
|
|
590
|
+
if (value instanceof _Pact) {
|
|
591
|
+
if (value.s) {
|
|
592
|
+
if (state & 1) {
|
|
593
|
+
state = value.s;
|
|
594
|
+
}
|
|
595
|
+
value = value.v;
|
|
596
|
+
} else {
|
|
597
|
+
value.o = _settle.bind(null, pact, state);
|
|
598
|
+
return;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
if (value && value.then) {
|
|
602
|
+
value.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));
|
|
603
|
+
return;
|
|
604
|
+
}
|
|
605
|
+
pact.s = state;
|
|
606
|
+
pact.v = value;
|
|
607
|
+
const observer = pact.o;
|
|
608
|
+
if (observer) {
|
|
609
|
+
observer(pact);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
function _isSettledPact(thenable) {
|
|
615
|
+
return thenable instanceof _Pact && thenable.s & 1;
|
|
616
|
+
}
|
|
550
617
|
|
|
551
618
|
const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
|
|
552
619
|
|
|
553
620
|
const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
|
|
554
621
|
|
|
622
|
+
// Asynchronously implement a generic for loop
|
|
623
|
+
function _for(test, update, body) {
|
|
624
|
+
var stage;
|
|
625
|
+
for (;;) {
|
|
626
|
+
var shouldContinue = test();
|
|
627
|
+
if (_isSettledPact(shouldContinue)) {
|
|
628
|
+
shouldContinue = shouldContinue.v;
|
|
629
|
+
}
|
|
630
|
+
if (!shouldContinue) {
|
|
631
|
+
return result;
|
|
632
|
+
}
|
|
633
|
+
if (shouldContinue.then) {
|
|
634
|
+
stage = 0;
|
|
635
|
+
break;
|
|
636
|
+
}
|
|
637
|
+
var result = body();
|
|
638
|
+
if (result && result.then) {
|
|
639
|
+
if (_isSettledPact(result)) {
|
|
640
|
+
result = result.s;
|
|
641
|
+
} else {
|
|
642
|
+
stage = 1;
|
|
643
|
+
break;
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
if (update) {
|
|
647
|
+
var updateValue = update();
|
|
648
|
+
if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {
|
|
649
|
+
stage = 2;
|
|
650
|
+
break;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
var pact = new _Pact();
|
|
655
|
+
var reject = _settle.bind(null, pact, 2);
|
|
656
|
+
(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);
|
|
657
|
+
return pact;
|
|
658
|
+
function _resumeAfterBody(value) {
|
|
659
|
+
result = value;
|
|
660
|
+
do {
|
|
661
|
+
if (update) {
|
|
662
|
+
updateValue = update();
|
|
663
|
+
if (updateValue && updateValue.then && !_isSettledPact(updateValue)) {
|
|
664
|
+
updateValue.then(_resumeAfterUpdate).then(void 0, reject);
|
|
665
|
+
return;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
shouldContinue = test();
|
|
669
|
+
if (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {
|
|
670
|
+
_settle(pact, 1, result);
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
if (shouldContinue.then) {
|
|
674
|
+
shouldContinue.then(_resumeAfterTest).then(void 0, reject);
|
|
675
|
+
return;
|
|
676
|
+
}
|
|
677
|
+
result = body();
|
|
678
|
+
if (_isSettledPact(result)) {
|
|
679
|
+
result = result.v;
|
|
680
|
+
}
|
|
681
|
+
} while (!result || !result.then);
|
|
682
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
683
|
+
}
|
|
684
|
+
function _resumeAfterTest(shouldContinue) {
|
|
685
|
+
if (shouldContinue) {
|
|
686
|
+
result = body();
|
|
687
|
+
if (result && result.then) {
|
|
688
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
689
|
+
} else {
|
|
690
|
+
_resumeAfterBody(result);
|
|
691
|
+
}
|
|
692
|
+
} else {
|
|
693
|
+
_settle(pact, 1, result);
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
function _resumeAfterUpdate() {
|
|
697
|
+
if (shouldContinue = test()) {
|
|
698
|
+
if (shouldContinue.then) {
|
|
699
|
+
shouldContinue.then(_resumeAfterTest).then(void 0, reject);
|
|
700
|
+
} else {
|
|
701
|
+
_resumeAfterTest(shouldContinue);
|
|
702
|
+
}
|
|
703
|
+
} else {
|
|
704
|
+
_settle(pact, 1, result);
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
|
|
555
709
|
// Asynchronously call a function and send errors to recovery continuation
|
|
556
710
|
function _catch(body, recover) {
|
|
557
711
|
try {
|
|
@@ -565,6 +719,19 @@ function _catch(body, recover) {
|
|
|
565
719
|
return result;
|
|
566
720
|
}
|
|
567
721
|
|
|
722
|
+
// Asynchronously await a promise and pass the result to a finally continuation
|
|
723
|
+
function _finallyRethrows(body, finalizer) {
|
|
724
|
+
try {
|
|
725
|
+
var result = body();
|
|
726
|
+
} catch (e) {
|
|
727
|
+
return finalizer(true, e);
|
|
728
|
+
}
|
|
729
|
+
if (result && result.then) {
|
|
730
|
+
return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
|
|
731
|
+
}
|
|
732
|
+
return finalizer(false, result);
|
|
733
|
+
}
|
|
734
|
+
|
|
568
735
|
var MMAuthContext = React__default.createContext();
|
|
569
736
|
|
|
570
737
|
var MMAuthInternalContext = React__default.createContext();
|
|
@@ -1192,8 +1359,9 @@ var Authorize = function Authorize(_ref) {
|
|
|
1192
1359
|
return !isAuthenticated ? /*#__PURE__*/React__default.createElement(Message, null, "Authorizing...") : /*#__PURE__*/React__default.createElement(Done, null);
|
|
1193
1360
|
};
|
|
1194
1361
|
|
|
1195
|
-
var
|
|
1362
|
+
var DataWrapper = function DataWrapper(_ref) {
|
|
1196
1363
|
var jwtRef = _ref.jwtRef,
|
|
1364
|
+
natsCredsRef = _ref.natsCredsRef,
|
|
1197
1365
|
graphQLRoleOverride = _ref.graphQLRoleOverride,
|
|
1198
1366
|
clientId = _ref.clientId,
|
|
1199
1367
|
accessToken = _ref.accessToken;
|
|
@@ -1302,6 +1470,7 @@ var ApolloApp = function ApolloApp(_ref) {
|
|
|
1302
1470
|
return /*#__PURE__*/React__default.createElement(MMAuthInternalContext.Provider, {
|
|
1303
1471
|
value: {
|
|
1304
1472
|
link: link,
|
|
1473
|
+
natsCredsRef: natsCredsRef,
|
|
1305
1474
|
jwtRef: jwtRef,
|
|
1306
1475
|
clientId: clientId,
|
|
1307
1476
|
accessToken: accessToken
|
|
@@ -1326,10 +1495,7 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1326
1495
|
setIsAuthenticated = _useState[1];
|
|
1327
1496
|
|
|
1328
1497
|
var jwtRef = React.useRef();
|
|
1329
|
-
|
|
1330
|
-
var _useState2 = React.useState(),
|
|
1331
|
-
natsCreds = _useState2[0],
|
|
1332
|
-
setNatsCreds = _useState2[1];
|
|
1498
|
+
var natsCredsRef = React.useRef();
|
|
1333
1499
|
|
|
1334
1500
|
var logout = function logout() {
|
|
1335
1501
|
try {
|
|
@@ -1396,13 +1562,13 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1396
1562
|
useAsyncInterval(function () {
|
|
1397
1563
|
try {
|
|
1398
1564
|
if (!accessToken) {
|
|
1399
|
-
|
|
1565
|
+
natsCredsRef.current = null;
|
|
1400
1566
|
return Promise.resolve();
|
|
1401
1567
|
}
|
|
1402
1568
|
|
|
1403
1569
|
var _temp5 = _catch(function () {
|
|
1404
1570
|
return Promise.resolve(request(urls.apiUrl + "/nats-token")).then(function (response) {
|
|
1405
|
-
|
|
1571
|
+
natsCredsRef.current = response;
|
|
1406
1572
|
});
|
|
1407
1573
|
}, function () {});
|
|
1408
1574
|
|
|
@@ -1417,8 +1583,7 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1417
1583
|
login: login,
|
|
1418
1584
|
logout: logout,
|
|
1419
1585
|
request: request,
|
|
1420
|
-
urls: urls
|
|
1421
|
-
natsCreds: natsCreds
|
|
1586
|
+
urls: urls
|
|
1422
1587
|
}
|
|
1423
1588
|
}, /*#__PURE__*/React__default.createElement(reactRouterDom.Routes, null, /*#__PURE__*/React__default.createElement(reactRouterDom.Route, {
|
|
1424
1589
|
exact: true,
|
|
@@ -1428,10 +1593,11 @@ var MMJwtProvider = function MMJwtProvider(_ref) {
|
|
|
1428
1593
|
})
|
|
1429
1594
|
}), /*#__PURE__*/React__default.createElement(reactRouterDom.Route, {
|
|
1430
1595
|
path: "/",
|
|
1431
|
-
element: /*#__PURE__*/React__default.createElement(
|
|
1596
|
+
element: /*#__PURE__*/React__default.createElement(DataWrapper, {
|
|
1432
1597
|
clientId: clientId,
|
|
1433
1598
|
graphQLRoleOverride: graphQLRoleOverride,
|
|
1434
1599
|
jwtRef: jwtRef,
|
|
1600
|
+
natsCredsRef: natsCredsRef,
|
|
1435
1601
|
accessToken: accessToken
|
|
1436
1602
|
})
|
|
1437
1603
|
}, children))));
|
|
@@ -1475,21 +1641,26 @@ var MMProvider = function MMProvider(_ref) {
|
|
|
1475
1641
|
clientId = _ref.clientId,
|
|
1476
1642
|
clientSecret = _ref.clientSecret,
|
|
1477
1643
|
releaseStage = _ref.releaseStage,
|
|
1478
|
-
graphQLRoleOverride = _ref.graphQLRoleOverride
|
|
1644
|
+
graphQLRoleOverride = _ref.graphQLRoleOverride,
|
|
1645
|
+
customUrls = _ref.urls;
|
|
1479
1646
|
|
|
1480
1647
|
if (releaseStage === 'release') {
|
|
1481
1648
|
releaseStage = 'production';
|
|
1482
1649
|
console.warn("releaseStage \"release\" has been deprecated. use \"production\" instead.");
|
|
1483
1650
|
}
|
|
1484
1651
|
|
|
1485
|
-
var urls
|
|
1652
|
+
var urls;
|
|
1486
1653
|
|
|
1487
|
-
if (
|
|
1654
|
+
if (URL_MAP[releaseStage]) {
|
|
1655
|
+
urls = URL_MAP[releaseStage];
|
|
1656
|
+
} else {
|
|
1488
1657
|
var stages = _.keys(URL_MAP).join(', ');
|
|
1489
1658
|
|
|
1490
1659
|
throw Error("MMProvider releaseStage must be one of the following: " + stages);
|
|
1491
1660
|
}
|
|
1492
1661
|
|
|
1662
|
+
urls = _.merge(urls, customUrls);
|
|
1663
|
+
|
|
1493
1664
|
var _useState = React.useState(retrieveAccessToken()),
|
|
1494
1665
|
accessToken = _useState[0],
|
|
1495
1666
|
setAccessToken = _useState[1];
|
|
@@ -1577,17 +1748,14 @@ var MMProvider = function MMProvider(_ref) {
|
|
|
1577
1748
|
}));
|
|
1578
1749
|
};
|
|
1579
1750
|
|
|
1751
|
+
var ALLOWED_DELIVERY_POLICIES = ['new', 'last', 'last_per_subject'];
|
|
1752
|
+
|
|
1580
1753
|
var connectToServer = function connectToServer(url, creds) {
|
|
1581
1754
|
try {
|
|
1582
|
-
|
|
1583
|
-
return Promise.resolve(
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
authenticator: nats_ws.credsAuthenticator(credentialsBytes)
|
|
1587
|
-
}));
|
|
1588
|
-
}, function (error) {
|
|
1589
|
-
console.error("Error connecting to server: " + error.message);
|
|
1590
|
-
throw error;
|
|
1755
|
+
console.info("Connecting to server " + url);
|
|
1756
|
+
return Promise.resolve(nats_ws.connect({
|
|
1757
|
+
servers: [url],
|
|
1758
|
+
authenticator: nats_ws.credsAuthenticator(new TextEncoder().encode(creds))
|
|
1591
1759
|
}));
|
|
1592
1760
|
} catch (e) {
|
|
1593
1761
|
return Promise.reject(e);
|
|
@@ -1634,7 +1802,7 @@ function _decode() {
|
|
|
1634
1802
|
case 14:
|
|
1635
1803
|
_context.prev = 14;
|
|
1636
1804
|
_context.t0 = _context["catch"](9);
|
|
1637
|
-
console.warn("Skipping event
|
|
1805
|
+
console.warn("Skipping event: " + _context.t0);
|
|
1638
1806
|
|
|
1639
1807
|
case 17:
|
|
1640
1808
|
_iteratorAbruptCompletion = false;
|
|
@@ -1689,67 +1857,212 @@ function _decode() {
|
|
|
1689
1857
|
return _decode.apply(this, arguments);
|
|
1690
1858
|
}
|
|
1691
1859
|
|
|
1692
|
-
var
|
|
1693
|
-
|
|
1694
|
-
|
|
1860
|
+
var closeConnection = function closeConnection(eventStreamRef, connectionRef) {
|
|
1861
|
+
if (eventStreamRef.current) {
|
|
1862
|
+
eventStreamRef.current = undefined;
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
if (connectionRef.current) {
|
|
1866
|
+
connectionRef.current.close();
|
|
1867
|
+
connectionRef.current = undefined;
|
|
1868
|
+
}
|
|
1869
|
+
};
|
|
1870
|
+
|
|
1871
|
+
var streamPatterns = {
|
|
1872
|
+
scada: 'mm.0.[location-ref].[machine-ref].[qualifier].[data-category].[metric-key].[message-type]',
|
|
1873
|
+
'machine-service': 'mm.2.[location-ref].[machine-ref].[service-name].[qualifier].[data-category].[metric-key].[message-type]',
|
|
1874
|
+
'edge-service': 'mm.3.[location-ref].[edge-ref].[service-name].[data-category].[metric-key].[message-type]',
|
|
1875
|
+
'machine-source-service': 'mm.4.[location-ref].[machine-ref].[machine-source-ref].[service-name].[data-category].[metric-key].[message-type]',
|
|
1876
|
+
edge: 'mm.7.[location-ref].[edge-ref].[data-category].[metric-key].[message-type]'
|
|
1877
|
+
};
|
|
1878
|
+
var dataCategoryMapping = {
|
|
1879
|
+
undefined: 0,
|
|
1880
|
+
event: 1,
|
|
1881
|
+
eventset: 2,
|
|
1882
|
+
quantity: 3,
|
|
1883
|
+
state: 4,
|
|
1884
|
+
count: 5,
|
|
1885
|
+
info: 6,
|
|
1886
|
+
beat: 7
|
|
1887
|
+
};
|
|
1888
|
+
|
|
1889
|
+
var buildSubject = function buildSubject(streamName, locationRef, filter) {
|
|
1890
|
+
if (!streamPatterns[streamName]) {
|
|
1891
|
+
throw new Error('Unknown stream name');
|
|
1892
|
+
}
|
|
1893
|
+
|
|
1894
|
+
var pattern = streamPatterns[streamName].split('.');
|
|
1895
|
+
var subject = '';
|
|
1896
|
+
pattern.forEach(function (part, index) {
|
|
1897
|
+
switch (part) {
|
|
1898
|
+
case '[location-ref]':
|
|
1899
|
+
subject += '.' + locationRef;
|
|
1900
|
+
break;
|
|
1901
|
+
|
|
1902
|
+
case '[machine-ref]':
|
|
1903
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.machineRef) || '*');
|
|
1904
|
+
break;
|
|
1905
|
+
|
|
1906
|
+
case '[qualifier]':
|
|
1907
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.qualifier) || '0');
|
|
1908
|
+
break;
|
|
1909
|
+
|
|
1910
|
+
case '[data-category]':
|
|
1911
|
+
subject += '.' + (dataCategoryMapping[filter === null || filter === void 0 ? void 0 : filter.dataCategory] || '*');
|
|
1912
|
+
break;
|
|
1913
|
+
|
|
1914
|
+
case '[metric-key]':
|
|
1915
|
+
subject += '.' + (filter !== null && filter !== void 0 && filter.metricKey ? filter === null || filter === void 0 ? void 0 : filter.metricKey.toLowerCase().replace(/[^a-zA-Z0-9_\\-]/gi, '-') : '*');
|
|
1916
|
+
break;
|
|
1917
|
+
|
|
1918
|
+
case '[message-type]':
|
|
1919
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.messageType) || '0');
|
|
1920
|
+
break;
|
|
1921
|
+
|
|
1922
|
+
case '[edge-ref]':
|
|
1923
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.edgeRef) || '*');
|
|
1924
|
+
break;
|
|
1925
|
+
|
|
1926
|
+
case '[service-name]':
|
|
1927
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.serviceName) || '*');
|
|
1928
|
+
break;
|
|
1929
|
+
|
|
1930
|
+
case '[machine-source-ref]':
|
|
1931
|
+
subject += '.' + ((filter === null || filter === void 0 ? void 0 : filter.machineSourceRef) || '*');
|
|
1932
|
+
break;
|
|
1933
|
+
|
|
1934
|
+
default:
|
|
1935
|
+
if (index > 0) {
|
|
1936
|
+
subject += '.';
|
|
1937
|
+
}
|
|
1938
|
+
|
|
1939
|
+
subject += part;
|
|
1940
|
+
break;
|
|
1941
|
+
}
|
|
1942
|
+
});
|
|
1943
|
+
return subject;
|
|
1944
|
+
};
|
|
1945
|
+
|
|
1946
|
+
var useEventStream = function useEventStream(params) {
|
|
1947
|
+
var streamName = params.streamName,
|
|
1948
|
+
locationRef = params.locationRef,
|
|
1949
|
+
filters = params.filters,
|
|
1950
|
+
_params$deliverPolicy = params.deliverPolicy,
|
|
1951
|
+
deliverPolicy = _params$deliverPolicy === void 0 ? 'new' : _params$deliverPolicy,
|
|
1952
|
+
dispatch = params.dispatch;
|
|
1953
|
+
|
|
1954
|
+
if (!ALLOWED_DELIVERY_POLICIES.includes(deliverPolicy)) {
|
|
1955
|
+
throw new Error("Invalid deliverPolicy \"" + deliverPolicy + "\" specified. Valid options are: " + ALLOWED_DELIVERY_POLICIES.join(', '));
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
if (filters && filters.length > 1) {
|
|
1959
|
+
console.warn("Multiple filters are not supported. Only the first filter will be used.");
|
|
1960
|
+
}
|
|
1695
1961
|
|
|
1696
1962
|
var _useMMAuth = useMMAuth(),
|
|
1697
|
-
natsCreds = _useMMAuth.natsCreds,
|
|
1698
1963
|
urls = _useMMAuth.urls;
|
|
1699
1964
|
|
|
1700
|
-
var
|
|
1701
|
-
|
|
1702
|
-
setConnection = _useState[1];
|
|
1703
|
-
|
|
1704
|
-
var _useState2 = React.useState(),
|
|
1705
|
-
eventStream = _useState2[0],
|
|
1706
|
-
setEventStream = _useState2[1];
|
|
1965
|
+
var _useMMAuthInternal2 = _useMMAuthInternal(),
|
|
1966
|
+
natsCredsRef = _useMMAuthInternal2.natsCredsRef;
|
|
1707
1967
|
|
|
1968
|
+
var connectionRef = React.useRef();
|
|
1969
|
+
var eventStreamRef = React.useRef();
|
|
1708
1970
|
React.useEffect(function () {
|
|
1709
|
-
if (
|
|
1710
|
-
if (natsCreds && subject) {
|
|
1711
|
-
connectToServer(urls.natsUrl, natsCreds).then(function (conn) {
|
|
1712
|
-
try {
|
|
1713
|
-
var _temp2 = function _temp2(stream) {
|
|
1714
|
-
return jc.consumers.get(stream, {
|
|
1715
|
-
filterSubjects: subject,
|
|
1716
|
-
deliver_policy: 'last_per_subject'
|
|
1717
|
-
});
|
|
1718
|
-
};
|
|
1971
|
+
if (!urls.natsUrl || !natsCredsRef.current || !streamName || !locationRef) return;
|
|
1719
1972
|
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1973
|
+
var setupStream = function setupStream() {
|
|
1974
|
+
try {
|
|
1975
|
+
return Promise.resolve(_catch(function () {
|
|
1976
|
+
return Promise.resolve(connectToServer(urls.natsUrl, natsCredsRef.current)).then(function (conn) {
|
|
1977
|
+
connectionRef.current = conn;
|
|
1978
|
+
var subject = buildSubject(streamName, locationRef, filters === null || filters === void 0 ? void 0 : filters[0]);
|
|
1979
|
+
console.info("Consuming events from stream " + streamName + " filtering by subject " + subject);
|
|
1980
|
+
return Promise.resolve(conn.jetstream().consumers.get(streamName, {
|
|
1981
|
+
deliver_policy: deliverPolicy,
|
|
1982
|
+
filterSubjects: subject
|
|
1983
|
+
})).then(function (consumer) {
|
|
1984
|
+
return Promise.resolve(consumer.consume({
|
|
1985
|
+
max_messages: 1000
|
|
1986
|
+
})).then(function (messages) {
|
|
1987
|
+
var eventStream = decode(messages);
|
|
1988
|
+
eventStreamRef.current = eventStream;
|
|
1989
|
+
return function () {
|
|
1990
|
+
if (typeof dispatch === 'function') {
|
|
1991
|
+
var _iteratorAbruptCompletion2 = false;
|
|
1992
|
+
var _didIteratorError2 = false;
|
|
1993
|
+
|
|
1994
|
+
var _iteratorError2;
|
|
1995
|
+
|
|
1996
|
+
return _finallyRethrows(function () {
|
|
1997
|
+
return _catch(function () {
|
|
1998
|
+
var _iterator2 = _asyncIterator(eventStream),
|
|
1999
|
+
_step2;
|
|
2000
|
+
|
|
2001
|
+
var _temp = _for(function () {
|
|
2002
|
+
return Promise.resolve(_iterator2.next()).then(function (_iterator2$next) {
|
|
2003
|
+
return _iteratorAbruptCompletion2 = !(_step2 = _iterator2$next).done;
|
|
2004
|
+
});
|
|
2005
|
+
}, function () {
|
|
2006
|
+
return !!(_iteratorAbruptCompletion2 = false);
|
|
2007
|
+
}, function () {
|
|
2008
|
+
var event = _step2.value;
|
|
2009
|
+
dispatch(event);
|
|
2010
|
+
});
|
|
2011
|
+
|
|
2012
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
2013
|
+
}, function (err) {
|
|
2014
|
+
_didIteratorError2 = true;
|
|
2015
|
+
_iteratorError2 = err;
|
|
2016
|
+
});
|
|
2017
|
+
}, function (_wasThrown, _result2) {
|
|
2018
|
+
var _exit = false;
|
|
2019
|
+
|
|
2020
|
+
function _temp4(_result3) {
|
|
2021
|
+
if (_exit) return _result3;
|
|
2022
|
+
if (_wasThrown) throw _result2;
|
|
2023
|
+
return _result2;
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
var _temp3 = _finallyRethrows(function () {
|
|
2027
|
+
var _temp2 = function () {
|
|
2028
|
+
if (_iteratorAbruptCompletion2 && _iterator2["return"] != null) {
|
|
2029
|
+
return Promise.resolve(_iterator2["return"]()).then(function () {});
|
|
2030
|
+
}
|
|
2031
|
+
}();
|
|
2032
|
+
|
|
2033
|
+
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
2034
|
+
}, function (_wasThrown2, _result3) {
|
|
2035
|
+
if (_didIteratorError2) {
|
|
2036
|
+
throw _iteratorError2;
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
if (_wasThrown2) throw _result3;
|
|
2040
|
+
return _result3;
|
|
2041
|
+
});
|
|
2042
|
+
|
|
2043
|
+
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
2044
|
+
});
|
|
2045
|
+
}
|
|
2046
|
+
}();
|
|
2047
|
+
});
|
|
1734
2048
|
});
|
|
1735
|
-
}
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
});
|
|
2049
|
+
});
|
|
2050
|
+
}, function (error) {
|
|
2051
|
+
console.error("Error setting up event stream. " + error);
|
|
2052
|
+
}));
|
|
2053
|
+
} catch (e) {
|
|
2054
|
+
return Promise.reject(e);
|
|
1739
2055
|
}
|
|
1740
|
-
}
|
|
1741
|
-
return function () {
|
|
1742
|
-
if (eventStream) {
|
|
1743
|
-
setEventStream(undefined);
|
|
1744
|
-
}
|
|
2056
|
+
};
|
|
1745
2057
|
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
2058
|
+
setupStream();
|
|
2059
|
+
return function () {
|
|
2060
|
+
return closeConnection(eventStreamRef, connectionRef);
|
|
2061
|
+
};
|
|
2062
|
+
}, [streamName, locationRef, deliverPolicy, urls.natsUrl, natsCredsRef]);
|
|
2063
|
+
return [eventStreamRef.current, function () {
|
|
2064
|
+
return closeConnection(eventStreamRef, connectionRef);
|
|
2065
|
+
}];
|
|
1753
2066
|
};
|
|
1754
2067
|
|
|
1755
2068
|
exports.MMProvider = MMProvider;
|