26 lines
825 B
JavaScript
26 lines
825 B
JavaScript
class NetworkMonitor {
|
|
constructor() {
|
|
this._eventEmitters = [];
|
|
if (typeof window !== "undefined" && typeof window.addEventListener !== "undefined") {
|
|
window.addEventListener("online", () => this.trigger("online"));
|
|
window.addEventListener("offline", () => this.trigger("offline"));
|
|
}
|
|
}
|
|
on(event, callback) {
|
|
this._eventEmitters.push({
|
|
event,
|
|
callback,
|
|
});
|
|
}
|
|
trigger(event) {
|
|
let eventEmitters = [];
|
|
if (event) {
|
|
eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);
|
|
}
|
|
eventEmitters.forEach((eventEmitter) => {
|
|
eventEmitter.callback();
|
|
});
|
|
}
|
|
}
|
|
export default NetworkMonitor;
|
|
//# sourceMappingURL=network.js.map
|