UNPKG

xhr-mock

Version:

Utility for mocking XMLHttpRequest.

61 lines (60 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var MockEventTarget = /** @class */ (function () { function MockEventTarget() { this.listeners = {}; } MockEventTarget.prototype.addEventListener = function (type, listener, options) { this.listeners = this.listeners || {}; if (!listener) { return; } if (!this.listeners[type]) { this.listeners[type] = []; } //handleEvent if (this.listeners[type].indexOf(listener) === -1) { this.listeners[type].push(listener); } }; MockEventTarget.prototype.removeEventListener = function (type, listener, options) { this.listeners = this.listeners || {}; if (!listener) { return; } if (!this.listeners[type]) { return; } var index = this.listeners[type].indexOf(listener); if (index !== -1) { this.listeners[type].splice(index, 1); } }; MockEventTarget.prototype.dispatchEvent = function (event) { var _this = this; this.listeners = this.listeners || {}; //set the event target event.target = this; event.currentTarget = this; //call any built-in listeners //FIXME: the listener should be added on set var method = this["on" + event.type]; if (method) { method.call(this, event); } if (!this.listeners[event.type]) { return true; } this.listeners[event.type].forEach(function (listener) { if (typeof listener === 'function') { listener.call(_this, event); } else { listener.handleEvent.call(_this, event); } }); return true; //TODO: return type based on .cancellable and .preventDefault() }; return MockEventTarget; }()); exports.default = MockEventTarget;