UNPKG

matrix-react-sdk

Version:
60 lines (58 loc) 6.96 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.TransactionStatus = exports.EchoTransaction = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _Whenable = require("../../utils/Whenable"); /* Copyright 2024 New Vector Ltd. Copyright 2020 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ let TransactionStatus = exports.TransactionStatus = /*#__PURE__*/function (TransactionStatus) { TransactionStatus[TransactionStatus["Pending"] = 0] = "Pending"; TransactionStatus[TransactionStatus["Success"] = 1] = "Success"; TransactionStatus[TransactionStatus["Error"] = 2] = "Error"; return TransactionStatus; }({}); class EchoTransaction extends _Whenable.Whenable { constructor(auditName, runFn) { super(); (0, _defineProperty2.default)(this, "_status", TransactionStatus.Pending); (0, _defineProperty2.default)(this, "didFail", false); (0, _defineProperty2.default)(this, "startTime", new Date()); this.auditName = auditName; this.runFn = runFn; } get didPreviouslyFail() { return this.didFail; } get status() { return this._status; } run() { if (this.status === TransactionStatus.Success) { throw new Error("Cannot re-run a successful echo transaction"); } this.setStatus(TransactionStatus.Pending); this.runFn().then(() => this.setStatus(TransactionStatus.Success)).catch(() => this.setStatus(TransactionStatus.Error)); } cancel() { // Success basically means "done" this.setStatus(TransactionStatus.Success); } setStatus(status) { this._status = status; if (status === TransactionStatus.Error) { this.didFail = true; } else if (status === TransactionStatus.Success) { this.didFail = false; } this.notifyCondition(status); } } exports.EchoTransaction = EchoTransaction; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfV2hlbmFibGUiLCJyZXF1aXJlIiwiVHJhbnNhY3Rpb25TdGF0dXMiLCJleHBvcnRzIiwiRWNob1RyYW5zYWN0aW9uIiwiV2hlbmFibGUiLCJjb25zdHJ1Y3RvciIsImF1ZGl0TmFtZSIsInJ1bkZuIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJQZW5kaW5nIiwiRGF0ZSIsImRpZFByZXZpb3VzbHlGYWlsIiwiZGlkRmFpbCIsInN0YXR1cyIsIl9zdGF0dXMiLCJydW4iLCJTdWNjZXNzIiwiRXJyb3IiLCJzZXRTdGF0dXMiLCJ0aGVuIiwiY2F0Y2giLCJjYW5jZWwiLCJub3RpZnlDb25kaXRpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmVzL2xvY2FsLWVjaG8vRWNob1RyYW5zYWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IFdoZW5hYmxlIH0gZnJvbSBcIi4uLy4uL3V0aWxzL1doZW5hYmxlXCI7XG5cbmV4cG9ydCB0eXBlIFJ1bkZuID0gKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25TdGF0dXMge1xuICAgIFBlbmRpbmcsXG4gICAgU3VjY2VzcyxcbiAgICBFcnJvcixcbn1cblxuZXhwb3J0IGNsYXNzIEVjaG9UcmFuc2FjdGlvbiBleHRlbmRzIFdoZW5hYmxlPFRyYW5zYWN0aW9uU3RhdHVzPiB7XG4gICAgcHJpdmF0ZSBfc3RhdHVzID0gVHJhbnNhY3Rpb25TdGF0dXMuUGVuZGluZztcbiAgICBwcml2YXRlIGRpZEZhaWwgPSBmYWxzZTtcblxuICAgIHB1YmxpYyByZWFkb25seSBzdGFydFRpbWUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgYXVkaXROYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBydW5GbjogUnVuRm4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaWRQcmV2aW91c2x5RmFpbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlkRmFpbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN0YXR1cygpOiBUcmFuc2FjdGlvblN0YXR1cyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJ1bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBUcmFuc2FjdGlvblN0YXR1cy5TdWNjZXNzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcmUtcnVuIGEgc3VjY2Vzc2Z1bCBlY2hvIHRyYW5zYWN0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKFRyYW5zYWN0aW9uU3RhdHVzLlBlbmRpbmcpO1xuICAgICAgICB0aGlzLnJ1bkZuKClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuc2V0U3RhdHVzKFRyYW5zYWN0aW9uU3RhdHVzLlN1Y2Nlc3MpKVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2V0U3RhdHVzKFRyYW5zYWN0aW9uU3RhdHVzLkVycm9yKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgLy8gU3VjY2VzcyBiYXNpY2FsbHkgbWVhbnMgXCJkb25lXCJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoVHJhbnNhY3Rpb25TdGF0dXMuU3VjY2Vzcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdGF0dXMoc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1cyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRyYW5zYWN0aW9uU3RhdHVzLkVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmRpZEZhaWwgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gVHJhbnNhY3Rpb25TdGF0dXMuU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5kaWRGYWlsID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ub3RpZnlDb25kaXRpb24oc3RhdHVzKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQSxJQVlZQyxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSwwQkFBakJBLGlCQUFpQjtFQUFqQkEsaUJBQWlCLENBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQixDQUFqQkEsaUJBQWlCO0VBQWpCQSxpQkFBaUIsQ0FBakJBLGlCQUFpQjtFQUFBLE9BQWpCQSxpQkFBaUI7QUFBQTtBQU10QixNQUFNRSxlQUFlLFNBQVNDLGtCQUFRLENBQW9CO0VBTXREQyxXQUFXQSxDQUNFQyxTQUFpQixFQUMxQkMsS0FBWSxFQUNyQjtJQUNFLEtBQUssQ0FBQyxDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxtQkFUTVIsaUJBQWlCLENBQUNTLE9BQU87SUFBQSxJQUFBRixnQkFBQSxDQUFBQyxPQUFBLG1CQUN6QixLQUFLO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQSxxQkFFSyxJQUFJRSxJQUFJLENBQUMsQ0FBQztJQUFBLEtBR2xCTCxTQUFpQixHQUFqQkEsU0FBaUI7SUFBQSxLQUMxQkMsS0FBWSxHQUFaQSxLQUFZO0VBR3ZCO0VBRUEsSUFBV0ssaUJBQWlCQSxDQUFBLEVBQVk7SUFDcEMsT0FBTyxJQUFJLENBQUNDLE9BQU87RUFDdkI7RUFFQSxJQUFXQyxNQUFNQSxDQUFBLEVBQXNCO0lBQ25DLE9BQU8sSUFBSSxDQUFDQyxPQUFPO0VBQ3ZCO0VBRU9DLEdBQUdBLENBQUEsRUFBUztJQUNmLElBQUksSUFBSSxDQUFDRixNQUFNLEtBQUtiLGlCQUFpQixDQUFDZ0IsT0FBTyxFQUFFO01BQzNDLE1BQU0sSUFBSUMsS0FBSyxDQUFDLDZDQUE2QyxDQUFDO0lBQ2xFO0lBQ0EsSUFBSSxDQUFDQyxTQUFTLENBQUNsQixpQkFBaUIsQ0FBQ1MsT0FBTyxDQUFDO0lBQ3pDLElBQUksQ0FBQ0gsS0FBSyxDQUFDLENBQUMsQ0FDUGEsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDRCxTQUFTLENBQUNsQixpQkFBaUIsQ0FBQ2dCLE9BQU8sQ0FBQyxDQUFDLENBQ3JESSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUNGLFNBQVMsQ0FBQ2xCLGlCQUFpQixDQUFDaUIsS0FBSyxDQUFDLENBQUM7RUFDN0Q7RUFFT0ksTUFBTUEsQ0FBQSxFQUFTO0lBQ2xCO0lBQ0EsSUFBSSxDQUFDSCxTQUFTLENBQUNsQixpQkFBaUIsQ0FBQ2dCLE9BQU8sQ0FBQztFQUM3QztFQUVRRSxTQUFTQSxDQUFDTCxNQUF5QixFQUFRO0lBQy9DLElBQUksQ0FBQ0MsT0FBTyxHQUFHRCxNQUFNO0lBQ3JCLElBQUlBLE1BQU0sS0FBS2IsaUJBQWlCLENBQUNpQixLQUFLLEVBQUU7TUFDcEMsSUFBSSxDQUFDTCxPQUFPLEdBQUcsSUFBSTtJQUN2QixDQUFDLE1BQU0sSUFBSUMsTUFBTSxLQUFLYixpQkFBaUIsQ0FBQ2dCLE9BQU8sRUFBRTtNQUM3QyxJQUFJLENBQUNKLE9BQU8sR0FBRyxLQUFLO0lBQ3hCO0lBQ0EsSUFBSSxDQUFDVSxlQUFlLENBQUNULE1BQU0sQ0FBQztFQUNoQztBQUNKO0FBQUNaLE9BQUEsQ0FBQUMsZUFBQSxHQUFBQSxlQUFBIiwiaWdub3JlTGlzdCI6W119