UNPKG

@airgram/vue

Version:
44 lines (43 loc) 1.58 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var vue_1 = __importDefault(require("vue")); var AirgramProvider = /** @class */ (function () { function AirgramProvider(_a) { var airgram = _a.airgram; this.isInitialized = false; this.airgram = airgram; this.eventBus = new vue_1.default(); } AirgramProvider.prototype.off = function (eventName, handler) { this.eventBus.$off(eventName, handler); }; AirgramProvider.prototype.on = function (eventName, handler) { return this.listen('$on', eventName, handler); }; AirgramProvider.prototype.once = function (eventName, handler) { return this.listen('$once', eventName, handler); }; AirgramProvider.prototype.initialize = function () { var _this = this; this.airgram.use(function (ctx, next) { if ('update' in ctx) { _this.eventBus.$emit(ctx._, ctx); } return next(); }); }; AirgramProvider.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 AirgramProvider; }()); exports.AirgramProvider = AirgramProvider;