2025-04-19 15:38:48 +08:00

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