UNPKG

@tanstack/query-core

Version:

The framework agnostic core that powers TanStack Query

34 lines (25 loc) 620 B
type Listener = () => void export class Subscribable<TListener extends Function = Listener> { protected listeners: Set<TListener> constructor() { this.listeners = new Set() 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 } }