envio
Version:
A latency and sync speed optimized, developer friendly blockchain data indexer.
57 lines (48 loc) • 1.29 kB
JavaScript
// Generated by ReScript, PLEASE EDIT WITH CARE
;
var Utils = require("./Utils.res.js");
var Logging = require("./Logging.res.js");
function make(exn, loggerOpt, msg) {
var logger = loggerOpt !== undefined ? loggerOpt : Logging.getLogger();
return {
logger: logger,
exn: exn,
msg: msg
};
}
function log(self) {
var msg = self.msg;
var exn = self.exn;
var logger = self.logger;
if (msg !== undefined) {
return Logging.childErrorWithExn(logger, Utils.prettifyExn(exn), msg);
} else {
return Logging.childError(logger, Utils.prettifyExn(exn));
}
}
function raiseExn(self) {
throw Utils.prettifyExn(self.exn);
}
function mkLogAndRaise(logger, msg, exn) {
var exn$1 = Utils.prettifyExn(exn);
log(make(exn$1, logger, msg));
throw exn$1;
}
function unwrapLogAndRaise(logger, msg, result) {
if (result.TAG === "Ok") {
return result._0;
} else {
return mkLogAndRaise(logger, msg, result._0);
}
}
function logAndRaise(self) {
log(self);
throw Utils.prettifyExn(self.exn);
}
exports.make = make;
exports.log = log;
exports.raiseExn = raiseExn;
exports.mkLogAndRaise = mkLogAndRaise;
exports.unwrapLogAndRaise = unwrapLogAndRaise;
exports.logAndRaise = logAndRaise;
/* Utils Not a pure module */