@aimee-blue/ab-service-kit
Version:
Aimee Blue Service Template
43 lines (31 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.reportErrorsToCloud = void 0;
var _abContracts = require("@aimee-blue/ab-contracts");
var _rxjs = require("rxjs");
var _operators = require("rxjs/operators");
var _ofType = require("../ofType");
var _app = require("../app");
var _apps = require("../apps");
var _isTest = require("../isTest");
const reportError = async errorAction => {
const [source, version] = await Promise.all([(0, _app.appName)(), (0, _app.appVersion)()]);
return (0, _apps.appsLogError)({
error: errorAction.payload,
source,
version
});
};
const reportErrorsToCloud = (events, ctx) => {
if ((0, _isTest.isDevBuild)()) {
return (0, _rxjs.empty)();
}
return events.pipe((0, _ofType.ofType)(_abContracts.Apps.ERROR), (0, _operators.mergeMap)(errorAction => (0, _rxjs.from)(reportError(errorAction)).pipe((0, _operators.catchError)(err => {
ctx.logger.error('💥 Couldnt send error to Cloud', err);
return (0, _rxjs.empty)();
}))), (0, _operators.ignoreElements)());
};
exports.reportErrorsToCloud = reportErrorsToCloud;
//# sourceMappingURL=reportErrorsToCloud.js.map