forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Arbiter.d.ts
133 lines (109 loc) · 4.65 KB
/
Arbiter.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// Type definitions for Arbiter.js 1.0
// Project: http://arbiterjs.com/
// Definitions by: Arash Shakery <https://github.com/arash16>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// May 22 2013
declare module ArbiterDef {
export interface SubscribeHandler {
(data: any, message: string, subscriber_context: any): void;
}
export interface SubscribeOptions {
/**
* By default, all subscribers have a priority of 0. Higher values get higher
* priority and are executed first. Negative values are allowed.
*/
priority?: number;
/**
* A subscriber can be set to execute asynchronously, even if the message wasn't published as async.
*/
async?: boolean;
/**
* If your subscriber is not interested in any past messages that may have been
* persisted, you can force them to be ignored.
*/
persist?: boolean;
}
export interface PublishOptions {
/**
* By default, subscribers can return "false" to prevent subsequent subscribers from
* receiving the message. By passing cancelable:false in the options, the publisher
* can prevent canceling.
*/
cancelable?: boolean;
/**
* If the publishers wants subscribers to be notified even if they subscribe later,
* setting the persist flag will do that.
*/
persist?: boolean;
/**
* If you wish to notify the subscribers but return from the publish() call before
* the subscriber functions execute, use asynchronous mode
*/
async?: boolean;
}
export interface ArbiterStatic {
version: string;
updated_on: string;
/**
* Creates a separate Arbiter instance.
*/
create(): ArbiterStatic;
/**
* Publishes a message to all subscribers.
* Returns: true on success, false if any subscriber has thrown a js exception.
*
* @param msg Message may be in any format, but may not contain [ ,*]. A structure like a/b/c is recommended by convention, to allow messages to be categorized.
* @param data Pass data to subscribers that contains details about the message.
*/
publish(msg: string, data?: any, options?: PublishOptions): boolean;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string, func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string, options: SubscribeOptions, func: SubscribeHandler): any;
/**
* Subscribes to messages. Can use comma separated or wildcards in message.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*/
subscribe(msg: string, options: SubscribeOptions, context: any, func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string[], func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string[], options: SubscribeOptions, func: SubscribeHandler): any;
/**
* Subscribes to messages.
* Returns: subscription id or [id1,id2] if subscribing to multiple messages
*
* @param msg comma separated messages or use wildcard like a/b/*
*/
subscribe(msg: string[], options: SubscribeOptions, context: any, func: SubscribeHandler): any;
/**
* Unsubscribing simply sets a flag which prevents the subscriber from executing, in case you want to re-subscribe later.
*/
unsubscribe(subscription_id: number): boolean;
/**
* After unsubscribing, you can later re-subscribe to begin receiving messages again.
*/
resubscribe(subscription_id: number): boolean;
}
}
declare var Arbiter: ArbiterDef.ArbiterStatic;