@smash-sdk/downloader
Version:
<p align="center"> <a href="https://fromsmash.com/"><img src="https://developer.fromsmash.com/LOGO_SMASH_API.png" align="center" width="135" alt="Send big files"/></a> <h1 align="center">SmashDownloaderJS - Download library <br>powered by the Smash AP
41 lines • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomEventEmitter = void 0;
const isFunction_1 = require("../helpers/isFunction");
class CustomEventEmitter {
constructor() {
this.listeners = {};
}
on(event, callback) {
if ((0, isFunction_1.isFunction)(callback) === false) {
throw new Error('Second argument of on() should be a function');
}
if (!Object.prototype.hasOwnProperty.call(this.listeners, event)) {
this.listeners[event] = [];
}
this.listeners[event].push(callback);
return this;
}
off(event) {
if (event) {
this.listeners[event] = [];
}
else {
this.listeners = {};
}
return this;
}
emit(event, data) {
if (Object.prototype.hasOwnProperty.call(this.listeners, event)) {
this.listeners[event].forEach(listener => {
listener.call(this, data);
});
}
return this;
}
dispatch(event) {
return this.emit(event.name, event);
}
}
exports.CustomEventEmitter = CustomEventEmitter;
//# sourceMappingURL=customEventEmitter.js.map