diffusion
Version:
Diffusion JavaScript client
68 lines (67 loc) • 3.25 kB
JavaScript
;
/**
* @module Services.UnsubscriptionNotification
*/
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.UnsubscriptionNotificationSerialiser = exports.UnsubscriptionNotificationSerialiserClass = void 0;
var errors_1 = require("./../../../errors/errors");
var BEES = require("./../../serialisers/byte-encoded-enum-serialiser");
var serialiser_1 = require("./../../serialisers/serialiser");
var TopicIdSerialiser = require("./../../topics/details/topic-id-serialiser");
var topics_1 = require("../../../topics/topics");
var unsubscription_notification_1 = require("./unsubscription-notification");
/**
* Serialiser for {@link UnsubscriptionNotification}
*/
var UnsubscriptionNotificationSerialiserClass = /** @class */ (function (_super) {
__extends(UnsubscriptionNotificationSerialiserClass, _super);
function UnsubscriptionNotificationSerialiserClass() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Read a {@link UnsubscriptionNotification} from the stream
*
* @param bis the input stream
* @return the {@link UnsubscriptionNotification} that was read
*/
UnsubscriptionNotificationSerialiserClass.prototype.read = function (bis) {
var id = TopicIdSerialiser.read(bis);
var reason = BEES.read(bis, topics_1.UnsubscribeReasonEnum);
return new unsubscription_notification_1.UnsubscriptionNotification(id, reason);
};
/**
* Write a {@link UnsubscriptionNotification} to the stream
*
* @param bos the output stream
* @param value the {@link UnsubscriptionNotification} to be written
*/
UnsubscriptionNotificationSerialiserClass.prototype.write = function (bos, value) {
TopicIdSerialiser.write(bos, value.id);
// eslint-disable-next-line deprecation/deprecation
if (value.reason.id === undefined) {
throw new errors_1.IOError('Cannot serialise UnsubscribeReason ${value.reason.reason}');
}
BEES.write(bos, value.reason);
};
return UnsubscriptionNotificationSerialiserClass;
}(serialiser_1.AbstractSerialiser));
exports.UnsubscriptionNotificationSerialiserClass = UnsubscriptionNotificationSerialiserClass;
/**
* The {@link UnsubscriptionNotificationSerialiser} singleton
*/ // eslint-disable-next-line @typescript-eslint/naming-convention
exports.UnsubscriptionNotificationSerialiser = new UnsubscriptionNotificationSerialiserClass();