UNPKG

1.98 kBPlain TextView Raw
1import {injectable} from "inversify";
2import {
3 IPostal, ICallback, IConfiguration, IChannelDefinition, ISubscriptionDefinition,
4 IEnvelope
5} from "../interfaces/postal";
6
7const _postal: IPostal = require('postal');
8
9@injectable()
10export class PostalImpl implements IPostal {
11 get configuration(): IConfiguration {
12 return _postal.configuration;
13 }
14
15 set configuration(newConfiguration: IConfiguration) {
16 _postal.configuration = newConfiguration;
17 }
18
19 set subscriptions(newSubscriptions: any) {
20 _postal.subscriptions = newSubscriptions;
21 }
22
23 get subscriptions() {
24 return _postal.subscriptions;
25 }
26
27 set wireTaps(newWireTaps: ICallback<any>[]) {
28 _postal.wireTaps = newWireTaps;
29 }
30
31 get wireTaps(): ICallback<any>[] {
32 return _postal.wireTaps;
33 }
34
35 addWireTap(callback: ICallback<any>): ()=>void {
36 return _postal.addWireTap(callback);
37 }
38
39 channel<T>(name?: string): IChannelDefinition<T> {
40 return _postal.channel(name);
41 }
42
43 getSubscribersFor(): ISubscriptionDefinition<any>[];
44 getSubscribersFor(options: {channel?: string; topic?: string; context?: any}): ISubscriptionDefinition<any>[];
45 getSubscribersFor(predicateFn: (sub: ISubscriptionDefinition<any>)=>boolean): ISubscriptionDefinition<any>[];
46 getSubscribersFor(options?): ISubscriptionDefinition<any>[] {
47 return _postal.getSubscribersFor(options);
48 }
49
50 publish(envelope: IEnvelope<any>): void {
51 _postal.publish(envelope);
52 }
53
54 reset(): void {
55 _postal.reset();
56 }
57
58 subscribe(options: {channel?: string; topic: string; callback: ICallback<any>}): ISubscriptionDefinition<any> {
59 return _postal.subscribe(options);
60 }
61
62 unsubscribe(sub: ISubscriptionDefinition<any>): void {
63 _postal.unsubscribe(sub);
64 }
65
66 unsubscribeFor(): void;
67 unsubscribeFor(options: {channel?: string; topic?: string; context?: any}): void;
68 unsubscribeFor(options?: {channel?: string; topic?: string; context?: any}): void {
69 _postal.unsubscribeFor(options);
70 }
71}