-
Notifications
You must be signed in to change notification settings - Fork 3k
/
MiscJSDoc.ts
155 lines (152 loc) · 3.58 KB
/
MiscJSDoc.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
import { Subscriber } from '../../Subscriber';
import { AjaxResponse } from './AjaxObservable';
import { NextObserver } from '../../Observer';
/**
* @see {@link ajax}
*
* @interface
* @name AjaxRequest
* @noimport true
*/
export class AjaxRequestDoc {
/**
* @type {string}
*/
url: string = '';
/**
* @type {number}
*/
body: any = 0;
/**
* @type {string}
*/
user: string = '';
/**
* @type {boolean}
*/
async: boolean = false;
/**
* @type {string}
*/
method: string = '';
/**
* @type {Object}
*/
headers: Object = null;
/**
* @type {number}
*/
timeout: number = 0;
/**
* @type {string}
*/
password: string = '';
/**
* @type {boolean}
*/
hasContent: boolean = false;
/**
* @type {boolean}
*/
crossDomain: boolean = false;
/**
* @return {XMLHttpRequest}
*/
createXHR(): XMLHttpRequest {
return null;
}
/**
* @type {Subscriber}
*/
progressSubscriber: Subscriber<any> = null;
/**
* @param {AjaxResponse} response
* @return {T}
*/
resultSelector<T>(response: AjaxResponse): T {
return null;
}
/**
* @type {string}
*/
responseType: string = '';
}
/**
* Optional configuration for `webSocket` method.
*
* Bear in mind that the only required property in this
* object is `url`.
*
* @see {@link webSocket}
*
* @interface
* @name WebSocketSubjectConfig
* @noimport true
*/
export class WebSocketSubjectConfigDoc {
/**
* Url of WebSocket endpoint which we will be connecting to.
*
* @type {string}
*/
url: string = '';
/**
* A protocol or an array of protocols with which we want to communicate
* with server.
*
* @type {string|string[]}
*/
protocol?: string | Array<string> = '';
/**
* A function which takes WebSocket MessageEvent and returns value which will
* be emitted in the stream. By default it is a function that parses `data`
* property with `JSON.parse`.
*
* @type {function(e: MessageEvent): T}
*/
resultSelector?: <T>(e: MessageEvent) => T = null;
/**
* When WebSocket connection is opened, `next` method
* of that object will be called. Event object injected
* to WebSocket `onopen` callback will be passed as a
* parameter.
*
* @type {NextObserver<Event>}
*/
openObserver?: NextObserver<Event> = null;
/**
* When WebSocket connection is closed, `next` method
* of that object will be called. CloseEvent object injected
* to WebSocket `onclose` callback will be passed as a
* parameter.
*
* @type {NextObserver<CloseEvent>}
*/
closeObserver?: NextObserver<CloseEvent> = null;
/**
* When `complete` or `error` methods on `WebSocketSubject`
* are called, `next` will be called on this Observer,
* without any arguments. Note that it is called when
* closing of socket connection is triggered, so
* before {@link closeObserver}, which is called when
* process of closing connection ends.
*
* @type {NextObserver<void>}
*/
closingObserver?: NextObserver<void> = null;
/**
* `WebSocket` constructor which will be used for creating an instance.
* You can provide polyfills, mocks or anything else you'd like,
* as long as returned value (when called with `new`) implements `WebSocket` interface.
*
* @type {WebSocket constructor}
*/
WebSocketCtor?: { new(url: string, protocol?: string|Array<string>): WebSocket } = null;
/**
* String specifying which binary type should be transmitted by the connection.
* Must be either `blob` or `arraybuffer`.
*
* @type {string}
*/
binaryType?: 'blob' | 'arraybuffer' = 'blob';
}