@graphql-hive/pubsub
Version:
17 lines (14 loc) • 830 B
text/typescript
import { T as TopicDataMap, P as PubSub, a as PubSubListener } from './pubsub-VtDb_TZC.js';
import { DisposableSymbols } from '@whatwg-node/disposablestack';
import { MaybePromise } from '@whatwg-node/promise-helpers';
/** In-memory {@link PubSub} implementation. */
declare class MemPubSub<M extends TopicDataMap = TopicDataMap> implements PubSub<M> {
#private;
subscribedTopics(): MapIterator<keyof M>;
publish<Topic extends keyof M>(topic: Topic, data: M[Topic]): void;
subscribe<Topic extends keyof M>(topic: Topic): AsyncIterable<M[Topic]>;
subscribe<Topic extends keyof M>(topic: Topic, listener: PubSubListener<M, Topic>): MaybePromise<() => MaybePromise<void>>;
dispose(): void;
[DisposableSymbols.asyncDispose](): Promise<void>;
}
export { MemPubSub, PubSub, PubSubListener, TopicDataMap };