MCPcopy Index your code
hub / github.com/wendux/fly / Fly

Class Fly

_.js:4–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2var isBrowser = typeof document !== "undefined";
3
4class Fly {
5 constructor(engine) {
6 this.engine = engine || XMLHttpRequest;
7
8 this.default = this //For typeScript
9
10 /**
11 * Add lock/unlock API for interceptor.
12 *
13 * Once an request/response interceptor is locked, the incoming request/response
14 * will be added to a queue before they enter the interceptor, they will not be
15 * continued until the interceptor is unlocked.
16 *
17 * @param [interceptor] either is interceptors.request or interceptors.response
18 */
19 function wrap(interceptor) {
20 var resolve;
21 var reject;
22
23 function _clear() {
24 interceptor.p = resolve = reject = null;
25 }
26
27 utils.merge(interceptor, {
28 lock() {
29 if (!resolve) {
30 interceptor.p = new Promise((_resolve, _reject) => {
31 resolve = _resolve
32 reject = _reject;
33 })
34 }
35 },
36 unlock() {
37 if (resolve) {
38 resolve()
39 _clear();
40 }
41 },
42 clear() {
43 if (reject) {
44 reject("cancel");
45 _clear();
46 }
47 }
48 })
49 }
50
51 var interceptors = this.interceptors = {
52 response: {
53 use(handler, onerror) {
54 this.handler = handler;
55 this.onerror = onerror;
56 }
57 },
58 request: {
59 use(handler) {
60 this.handler = handler;
61 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected