1 | import {injectable} from "inversify";
|
2 | import {
|
3 | IPostal, ICallback, IConfiguration, IChannelDefinition, ISubscriptionDefinition,
|
4 | IEnvelope
|
5 | } from "../interfaces/postal";
|
6 |
|
7 | const _postal: IPostal = require('postal');
|
8 |
|
9 | @injectable()
|
10 | export 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 | }
|