UNPKG

@tanstack/query-core

Version:

The framework agnostic core that powers TanStack Query

31 lines (23 loc) 557 B
export class Subscribable<TListener extends Function> { protected listeners = new Set<TListener>() constructor() { this.subscribe = this.subscribe.bind(this) } subscribe(listener: TListener): () => void { this.listeners.add(listener) this.onSubscribe() return () => { this.listeners.delete(listener) this.onUnsubscribe() } } hasListeners(): boolean { return this.listeners.size > 0 } protected onSubscribe(): void { // Do nothing } protected onUnsubscribe(): void { // Do nothing } }