vue-tdweb
Version:
Documentation is coming.
38 lines • 1.43 kB
JavaScript
import Vue from 'vue';
var TdProvider = /** @class */ (function () {
function TdProvider(_a) {
var airgram = _a.airgram;
this.isInitialized = false;
this.airgram = airgram;
this.eventBus = new Vue();
}
TdProvider.prototype.off = function (eventName, handler) {
this.eventBus.$off(eventName, handler);
};
TdProvider.prototype.on = function (eventName, handler) {
return this.listen('$on', eventName, handler);
};
TdProvider.prototype.once = function (eventName, handler) {
return this.listen('$once', eventName, handler);
};
TdProvider.prototype.initialize = function () {
var _this = this;
this.airgram.updates.use(function (_a) {
var airgram = _a.airgram, update = _a.update, getState = _a.getState, setState = _a.setState;
var context = { airgram: airgram, getState: getState, setState: setState };
_this.eventBus.$emit(update, context);
});
};
TdProvider.prototype.listen = function (type, eventName, handler) {
var _this = this;
if (!this.isInitialized) {
this.initialize();
}
this.isInitialized = true;
this.eventBus[type](eventName, handler);
return function () { return _this.off(eventName, handler); };
};
return TdProvider;
}());
export { TdProvider };
//# sourceMappingURL=TdProvider.js.map