ziron-server
Version:
24 lines (23 loc) • 962 B
TypeScript
import EventEmitter from "emitix";
import { ComplexTypesOption } from "ziron-engine";
import { PublisherOption } from "./Options";
type PublishEmitter = EventEmitter<{
[key: string]: [any, boolean, boolean];
}>;
export default class ChannelExchange {
readonly subscriptions: ReadonlySet<string>;
subscribe: (channel: string) => void;
unsubscribe: (channel: string) => void;
publish: (channel: string, data: any, options?: ComplexTypesOption & PublisherOption) => void;
private readonly _publishEmitter;
readonly oncePublish: PublishEmitter['once'];
readonly onPublish: PublishEmitter['on'];
readonly offPublish: PublishEmitter['off'];
constructor(connector: {
subscriptions: ReadonlySet<string>;
subscribe: (channel: string) => void;
unsubscribe: (channel: string) => void;
publish: (channel: string, data: any, options?: ComplexTypesOption & PublisherOption) => void;
});
}
export {};