@utiliread/http 1.1.8 → 1.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/event-aggregator.js +89 -5
- package/dist/cjs/event-aggregator.js.map +1 -1
- package/dist/cjs/http-builder.js +43 -101
- package/dist/cjs/http-builder.js.map +1 -1
- package/dist/cjs/http-response.js +7 -0
- package/dist/cjs/http-response.js.map +1 -1
- package/dist/cjs/http.js +26 -2
- package/dist/cjs/http.js.map +1 -1
- package/dist/esm/event-aggregator.d.ts +7 -12
- package/dist/esm/event-aggregator.js +88 -4
- package/dist/esm/event-aggregator.js.map +1 -1
- package/dist/esm/http-builder.d.ts +14 -15
- package/dist/esm/http-builder.js +43 -101
- package/dist/esm/http-builder.js.map +1 -1
- package/dist/esm/http-response.d.ts +1 -0
- package/dist/esm/http-response.js +7 -0
- package/dist/esm/http-response.js.map +1 -1
- package/dist/esm/http.d.ts +7 -6
- package/dist/esm/http.js +26 -2
- package/dist/esm/http.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/event-aggregator.ts +32 -0
- package/src/http-builder.ts +30 -76
- package/src/http-response.ts +4 -0
- package/src/http.ts +34 -9
- package/src/index.ts +1 -1
- package/tsconfig.json +2 -1
- package/src/settings.ts +0 -7
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import { Fetch
|
|
1
|
+
import { Fetch } from './http';
|
|
2
2
|
import { HttpResponse, HttpResponseOfT } from './http-response';
|
|
3
|
-
import {
|
|
3
|
+
import { Http } from '.';
|
|
4
4
|
export declare class HttpBuilder {
|
|
5
5
|
message: Message;
|
|
6
|
-
options:
|
|
6
|
+
options: RequestOptions;
|
|
7
7
|
private _ensureSuccessStatusCode;
|
|
8
8
|
private _onSend;
|
|
9
9
|
private _onSent;
|
|
10
|
-
constructor(message: Message, options:
|
|
11
|
-
onSend(callback: (request: Message) => void | Promise<
|
|
12
|
-
onSent(callback: (
|
|
10
|
+
constructor(message: Message, options: RequestOptions, /** @internal */ http: Http);
|
|
11
|
+
onSend(callback: (request: Message) => void | Promise<void>): this;
|
|
12
|
+
onSent(callback: (response: HttpResponse, request: Message) => void | Promise<void>): this;
|
|
13
13
|
protected useHandler<T>(handler: (response: Response) => Promise<T>): HttpBuilderOfT<T>;
|
|
14
14
|
send(abortSignal?: AbortSignal): Promise<HttpResponse>;
|
|
15
15
|
getUrl(): string;
|
|
16
16
|
ensureSuccessStatusCode(ensureSuccessStatusCode?: boolean): this;
|
|
17
|
-
use(settings: Settings): this;
|
|
18
|
-
useFetch(fetch: Fetch): this;
|
|
19
17
|
useCors(mode: RequestMode): this;
|
|
20
|
-
useBaseUrl(baseUrl: string): this;
|
|
21
18
|
useTimeout(timeout: number | null): this;
|
|
22
19
|
with(content: any, contentType?: string): this;
|
|
23
20
|
withForm(content: FormData): this;
|
|
@@ -30,16 +27,13 @@ export declare class HttpBuilderOfT<T> extends HttpBuilder {
|
|
|
30
27
|
private handler;
|
|
31
28
|
private _onReceived;
|
|
32
29
|
constructor(inner: HttpBuilder, handler: (response: Response) => Promise<T>);
|
|
33
|
-
onSend(callback: (request: Message) => void | Promise<
|
|
34
|
-
onSent(callback: (
|
|
30
|
+
onSend(callback: (request: Message) => void | Promise<void>): this;
|
|
31
|
+
onSent(callback: (response: HttpResponse, request: Message) => void | Promise<void>): this;
|
|
35
32
|
ensureSuccessStatusCode(ensureSuccessStatusCode?: boolean): this;
|
|
36
|
-
use(settings: Settings): this;
|
|
37
|
-
useFetch(fetch: Fetch): this;
|
|
38
33
|
useCors(mode: RequestMode): this;
|
|
39
|
-
useBaseUrl(baseUrl: string): this;
|
|
40
34
|
useTimeout(timeout: number): this;
|
|
41
35
|
allowEmptyResponse(): HttpBuilderOfT<T | null>;
|
|
42
|
-
onReceived(callback: (
|
|
36
|
+
onReceived(callback: (response: HttpResponseOfT<T>, request: Message, value: T) => void | Promise<void>): this;
|
|
43
37
|
send(abortSignal?: AbortSignal): SendPromise<T>;
|
|
44
38
|
transfer(abortSignal?: AbortSignal): Promise<T>;
|
|
45
39
|
private handleReceive;
|
|
@@ -53,6 +47,11 @@ export interface Message {
|
|
|
53
47
|
contentType?: string;
|
|
54
48
|
mode?: RequestMode;
|
|
55
49
|
}
|
|
50
|
+
export interface RequestOptions {
|
|
51
|
+
fetch: Fetch;
|
|
52
|
+
timeout?: number;
|
|
53
|
+
baseUrl?: string;
|
|
54
|
+
}
|
|
56
55
|
export interface SendPromise<T> extends Promise<HttpResponseOfT<T>> {
|
|
57
56
|
thenReceive(): Promise<T>;
|
|
58
57
|
}
|
package/dist/esm/http-builder.js
CHANGED
|
@@ -51,23 +51,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
51
51
|
};
|
|
52
52
|
import { HttpResponse, HttpResponseOfT } from './http-response';
|
|
53
53
|
import { TimeoutError } from './timeout-error';
|
|
54
|
+
import { EventAggregator } from './event-aggregator';
|
|
54
55
|
var HttpBuilder = /** @class */ (function () {
|
|
55
|
-
function HttpBuilder(message, options) {
|
|
56
|
+
function HttpBuilder(message, options, /** @internal */ http) {
|
|
56
57
|
this.message = message;
|
|
57
58
|
this.options = options;
|
|
59
|
+
this.http = http;
|
|
58
60
|
this._ensureSuccessStatusCode = true;
|
|
59
|
-
this._onSend =
|
|
60
|
-
this._onSent =
|
|
61
|
-
if (options.onSent) {
|
|
62
|
-
this._onSent.push(options.onSent);
|
|
63
|
-
}
|
|
61
|
+
this._onSend = new EventAggregator();
|
|
62
|
+
this._onSent = new EventAggregator();
|
|
64
63
|
}
|
|
65
64
|
HttpBuilder.prototype.onSend = function (callback) {
|
|
66
|
-
this._onSend.
|
|
65
|
+
this._onSend.subscribe(callback);
|
|
67
66
|
return this;
|
|
68
67
|
};
|
|
69
68
|
HttpBuilder.prototype.onSent = function (callback) {
|
|
70
|
-
this._onSent.
|
|
69
|
+
this._onSent.subscribe(callback);
|
|
71
70
|
return this;
|
|
72
71
|
};
|
|
73
72
|
HttpBuilder.prototype.useHandler = function (handler) {
|
|
@@ -75,33 +74,23 @@ var HttpBuilder = /** @class */ (function () {
|
|
|
75
74
|
};
|
|
76
75
|
HttpBuilder.prototype.send = function (abortSignal) {
|
|
77
76
|
return __awaiter(this, void 0, void 0, function () {
|
|
78
|
-
var
|
|
77
|
+
var init, outerController, fetchResponsePromise, fetchResponse, httpResponse;
|
|
79
78
|
var _this = this;
|
|
80
|
-
return __generator(this, function (
|
|
81
|
-
switch (
|
|
79
|
+
return __generator(this, function (_a) {
|
|
80
|
+
switch (_a.label) {
|
|
82
81
|
case 0:
|
|
83
|
-
if (!this.options.fetch) {
|
|
84
|
-
throw Error('fetch() is not properly configured');
|
|
85
|
-
}
|
|
86
82
|
if (this.message.contentType) {
|
|
87
83
|
this.message.headers.set('Content-Type', this.message.contentType);
|
|
88
84
|
}
|
|
89
85
|
// Resolve the final url and assign it to the message
|
|
90
86
|
// This makes the final url apper in onSend, onSent, and on Received handlers
|
|
91
87
|
this.message.url = this.getUrl();
|
|
92
|
-
|
|
93
|
-
_d.label = 1;
|
|
88
|
+
return [4 /*yield*/, this._onSend.publish(this.message)];
|
|
94
89
|
case 1:
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return [4 /*yield*/, Promise.resolve(callback(this.message))];
|
|
90
|
+
_a.sent();
|
|
91
|
+
return [4 /*yield*/, this.http._onSend.publish(this.message)];
|
|
98
92
|
case 2:
|
|
99
|
-
|
|
100
|
-
_d.label = 3;
|
|
101
|
-
case 3:
|
|
102
|
-
_i++;
|
|
103
|
-
return [3 /*break*/, 1];
|
|
104
|
-
case 4:
|
|
93
|
+
_a.sent();
|
|
105
94
|
init = {
|
|
106
95
|
method: this.message.method,
|
|
107
96
|
body: this.message.content,
|
|
@@ -118,7 +107,7 @@ var HttpBuilder = /** @class */ (function () {
|
|
|
118
107
|
init.signal = outerController.signal;
|
|
119
108
|
}
|
|
120
109
|
fetchResponsePromise = this.options.fetch(this.message.url, init);
|
|
121
|
-
if (!this.options.timeout) return [3 /*break*/,
|
|
110
|
+
if (!this.options.timeout) return [3 /*break*/, 4];
|
|
122
111
|
return [4 /*yield*/, Promise.race([
|
|
123
112
|
fetchResponsePromise,
|
|
124
113
|
new Promise(function (_, reject) { return setTimeout(function () {
|
|
@@ -126,31 +115,25 @@ var HttpBuilder = /** @class */ (function () {
|
|
|
126
115
|
reject(new TimeoutError());
|
|
127
116
|
}, _this.options.timeout); })
|
|
128
117
|
])];
|
|
118
|
+
case 3:
|
|
119
|
+
fetchResponse = _a.sent();
|
|
120
|
+
return [3 /*break*/, 6];
|
|
121
|
+
case 4: return [4 /*yield*/, fetchResponsePromise];
|
|
129
122
|
case 5:
|
|
130
|
-
fetchResponse =
|
|
131
|
-
|
|
132
|
-
case 6:
|
|
133
|
-
case 7:
|
|
134
|
-
fetchResponse = _d.sent();
|
|
135
|
-
_d.label = 8;
|
|
136
|
-
case 8:
|
|
123
|
+
fetchResponse = _a.sent();
|
|
124
|
+
_a.label = 6;
|
|
125
|
+
case 6:
|
|
137
126
|
httpResponse = new HttpResponse(fetchResponse);
|
|
138
127
|
if (this._ensureSuccessStatusCode) {
|
|
139
128
|
httpResponse.ensureSuccessfulStatusCode();
|
|
140
129
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
_d.sent();
|
|
149
|
-
_d.label = 11;
|
|
150
|
-
case 11:
|
|
151
|
-
_b++;
|
|
152
|
-
return [3 /*break*/, 9];
|
|
153
|
-
case 12: return [2 /*return*/, httpResponse];
|
|
130
|
+
return [4 /*yield*/, this._onSent.publish(httpResponse, this.message)];
|
|
131
|
+
case 7:
|
|
132
|
+
_a.sent();
|
|
133
|
+
return [4 /*yield*/, this.http._onSent.publish(httpResponse, this.message)];
|
|
134
|
+
case 8:
|
|
135
|
+
_a.sent();
|
|
136
|
+
return [2 /*return*/, httpResponse];
|
|
154
137
|
}
|
|
155
138
|
});
|
|
156
139
|
});
|
|
@@ -174,30 +157,10 @@ var HttpBuilder = /** @class */ (function () {
|
|
|
174
157
|
this._ensureSuccessStatusCode = ensureSuccessStatusCode === false ? false : true;
|
|
175
158
|
return this;
|
|
176
159
|
};
|
|
177
|
-
HttpBuilder.prototype.use = function (settings) {
|
|
178
|
-
if (settings.fetch) {
|
|
179
|
-
this.useFetch(settings.fetch);
|
|
180
|
-
}
|
|
181
|
-
if (settings.corsMode) {
|
|
182
|
-
this.useCors(settings.corsMode);
|
|
183
|
-
}
|
|
184
|
-
if (settings.baseUrl) {
|
|
185
|
-
this.useBaseUrl(settings.baseUrl);
|
|
186
|
-
}
|
|
187
|
-
return this;
|
|
188
|
-
};
|
|
189
|
-
HttpBuilder.prototype.useFetch = function (fetch) {
|
|
190
|
-
this.options.fetch = fetch;
|
|
191
|
-
return this;
|
|
192
|
-
};
|
|
193
160
|
HttpBuilder.prototype.useCors = function (mode) {
|
|
194
161
|
this.message.mode = mode;
|
|
195
162
|
return this;
|
|
196
163
|
};
|
|
197
|
-
HttpBuilder.prototype.useBaseUrl = function (baseUrl) {
|
|
198
|
-
this.options.baseUrl = baseUrl;
|
|
199
|
-
return this;
|
|
200
|
-
};
|
|
201
164
|
HttpBuilder.prototype.useTimeout = function (timeout) {
|
|
202
165
|
this.options.timeout = timeout || undefined;
|
|
203
166
|
return this;
|
|
@@ -235,13 +198,10 @@ export { HttpBuilder };
|
|
|
235
198
|
var HttpBuilderOfT = /** @class */ (function (_super) {
|
|
236
199
|
__extends(HttpBuilderOfT, _super);
|
|
237
200
|
function HttpBuilderOfT(inner, handler) {
|
|
238
|
-
var _this = _super.call(this, inner.message, inner.options) || this;
|
|
201
|
+
var _this = _super.call(this, inner.message, inner.options, inner.http) || this;
|
|
239
202
|
_this.inner = inner;
|
|
240
203
|
_this.handler = handler;
|
|
241
|
-
_this._onReceived =
|
|
242
|
-
if (inner.options.onReceived) {
|
|
243
|
-
_this._onReceived.push(inner.options.onReceived);
|
|
244
|
-
}
|
|
204
|
+
_this._onReceived = new EventAggregator();
|
|
245
205
|
return _this;
|
|
246
206
|
}
|
|
247
207
|
HttpBuilderOfT.prototype.onSend = function (callback) {
|
|
@@ -256,30 +216,18 @@ var HttpBuilderOfT = /** @class */ (function (_super) {
|
|
|
256
216
|
this.inner.ensureSuccessStatusCode(ensureSuccessStatusCode);
|
|
257
217
|
return this;
|
|
258
218
|
};
|
|
259
|
-
HttpBuilderOfT.prototype.use = function (settings) {
|
|
260
|
-
this.inner.use(settings);
|
|
261
|
-
return this;
|
|
262
|
-
};
|
|
263
|
-
HttpBuilderOfT.prototype.useFetch = function (fetch) {
|
|
264
|
-
this.inner.useFetch(fetch);
|
|
265
|
-
return this;
|
|
266
|
-
};
|
|
267
219
|
HttpBuilderOfT.prototype.useCors = function (mode) {
|
|
268
220
|
this.inner.useCors(mode);
|
|
269
221
|
return this;
|
|
270
222
|
};
|
|
271
|
-
HttpBuilderOfT.prototype.useBaseUrl = function (baseUrl) {
|
|
272
|
-
this.inner.useBaseUrl(baseUrl);
|
|
273
|
-
return this;
|
|
274
|
-
};
|
|
275
223
|
HttpBuilderOfT.prototype.useTimeout = function (timeout) {
|
|
276
224
|
this.inner.useTimeout(timeout);
|
|
277
225
|
return this;
|
|
278
226
|
};
|
|
279
227
|
HttpBuilderOfT.prototype.allowEmptyResponse = function () {
|
|
280
228
|
var _this = this;
|
|
281
|
-
if (this._onReceived.
|
|
282
|
-
throw new Error("onReceived()
|
|
229
|
+
if (this._onReceived.any) {
|
|
230
|
+
throw new Error("onReceived() must be called after allowEmptyResponse() because the callback type changes");
|
|
283
231
|
}
|
|
284
232
|
return new HttpBuilderOfT(this.inner, function (response) {
|
|
285
233
|
if (response.status === 204) {
|
|
@@ -289,7 +237,7 @@ var HttpBuilderOfT = /** @class */ (function (_super) {
|
|
|
289
237
|
});
|
|
290
238
|
};
|
|
291
239
|
HttpBuilderOfT.prototype.onReceived = function (callback) {
|
|
292
|
-
this._onReceived.
|
|
240
|
+
this._onReceived.subscribe(callback);
|
|
293
241
|
return this;
|
|
294
242
|
};
|
|
295
243
|
HttpBuilderOfT.prototype.send = function (abortSignal) {
|
|
@@ -303,27 +251,21 @@ var HttpBuilderOfT = /** @class */ (function (_super) {
|
|
|
303
251
|
};
|
|
304
252
|
HttpBuilderOfT.prototype.handleReceive = function (response) {
|
|
305
253
|
return __awaiter(this, void 0, void 0, function () {
|
|
306
|
-
var request, value
|
|
307
|
-
return __generator(this, function (
|
|
308
|
-
switch (
|
|
254
|
+
var request, value;
|
|
255
|
+
return __generator(this, function (_a) {
|
|
256
|
+
switch (_a.label) {
|
|
309
257
|
case 0:
|
|
310
258
|
request = this.message;
|
|
311
259
|
return [4 /*yield*/, response.receive()];
|
|
312
260
|
case 1:
|
|
313
|
-
value =
|
|
314
|
-
|
|
315
|
-
_b.label = 2;
|
|
261
|
+
value = _a.sent();
|
|
262
|
+
return [4 /*yield*/, this._onReceived.publish(response, request, value)];
|
|
316
263
|
case 2:
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
return [4 /*yield*/, Promise.resolve(callback(request, response, value))];
|
|
264
|
+
_a.sent();
|
|
265
|
+
return [4 /*yield*/, this.http._onReceived.publish(response, request, value)];
|
|
320
266
|
case 3:
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
case 4:
|
|
324
|
-
_i++;
|
|
325
|
-
return [3 /*break*/, 2];
|
|
326
|
-
case 5: return [2 /*return*/, value];
|
|
267
|
+
_a.sent();
|
|
268
|
+
return [2 /*return*/, value];
|
|
327
269
|
}
|
|
328
270
|
});
|
|
329
271
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-builder.js","sourceRoot":"","sources":["../../src/http-builder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"http-builder.js","sourceRoot":"","sources":["../../src/http-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,13 @@ var HttpResponse = /** @class */ (function () {
|
|
|
32
32
|
enumerable: false,
|
|
33
33
|
configurable: true
|
|
34
34
|
});
|
|
35
|
+
Object.defineProperty(HttpResponse.prototype, "headers", {
|
|
36
|
+
get: function () {
|
|
37
|
+
return this.rawResponse.headers;
|
|
38
|
+
},
|
|
39
|
+
enumerable: false,
|
|
40
|
+
configurable: true
|
|
41
|
+
});
|
|
35
42
|
Object.defineProperty(HttpResponse.prototype, "isInformational", {
|
|
36
43
|
get: function () {
|
|
37
44
|
return this.statusCode >= 100 && this.statusCode < 200;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-response.js","sourceRoot":"","sources":["../../src/http-response.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;
|
|
1
|
+
{"version":3,"file":"http-response.js","sourceRoot":"","sources":["../../src/http-response.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;IAiCI,sBAAmB,WAAqB;QAArB,gBAAW,GAAX,WAAW,CAAU;IACxC,CAAC;IAjCD,sBAAI,6BAAG;aAAP;YACI,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;QAChC,CAAC;;;OAAA;IAED,sBAAI,oCAAU;aAAd;YACI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACnC,CAAC;;;OAAA;IAED,sBAAI,iCAAO;aAAX;YACI,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACpC,CAAC;;;OAAA;IAED,sBAAI,yCAAe;aAAnB;YACI,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3D,CAAC;;;OAAA;IAED,sBAAI,sCAAY;aAAhB;YACI,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3D,CAAC;;;OAAA;IAED,sBAAI,uCAAa;aAAjB;YACI,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3D,CAAC;;;OAAA;IAED,sBAAI,uCAAa;aAAjB;YACI,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3D,CAAC;;;OAAA;IAED,sBAAI,uCAAa;aAAjB;YACI,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3D,CAAC;;;OAAA;IAKD,iDAA0B,GAA1B;QACI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SAC9C;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,mBAAC;AAAD,CAAC,AA3CD,IA2CC;;AAED;IAAwC,mCAAY;IAChD,yBAAY,WAAqB,EAAU,OAA2C;QAAtF,YACI,kBAAM,WAAW,CAAC,SACrB;QAF0C,aAAO,GAAP,OAAO,CAAoC;;IAEtF,CAAC;IAED,iCAAO,GAAP;QACI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACL,sBAAC;AAAD,CAAC,AARD,CAAwC,YAAY,GAQnD"}
|
package/dist/esm/http.d.ts
CHANGED
|
@@ -2,10 +2,10 @@ import { HttpBuilder, HttpMethod, Message } from './http-builder';
|
|
|
2
2
|
import { HttpResponse, HttpResponseOfT } from './http-response';
|
|
3
3
|
export declare type Fetch = (input: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
4
4
|
export declare class Http {
|
|
5
|
-
static defaults:
|
|
5
|
+
static defaults: HttpOptions;
|
|
6
6
|
private static instance?;
|
|
7
|
-
options:
|
|
8
|
-
constructor(options?: Partial<
|
|
7
|
+
options: HttpOptions;
|
|
8
|
+
constructor(options?: Partial<HttpOptions>);
|
|
9
9
|
static request(method: HttpMethod, url: string, params?: any): HttpBuilder;
|
|
10
10
|
static head(url: string, params?: any): HttpBuilder;
|
|
11
11
|
static post(url: string, params?: any): HttpBuilder;
|
|
@@ -21,11 +21,12 @@ export declare class Http {
|
|
|
21
21
|
put(url: string, params?: any): HttpBuilder;
|
|
22
22
|
patch(url: string, params?: any): HttpBuilder;
|
|
23
23
|
delete(url: string, params?: any): HttpBuilder;
|
|
24
|
+
onSend(callback: (request: Message) => void | Promise<void>): import("./event-aggregator").Subscription;
|
|
25
|
+
onSent(callback: (response: HttpResponse, request: Message) => void | Promise<void>): import("./event-aggregator").Subscription;
|
|
26
|
+
onReceived(callback: (response: HttpResponseOfT<any>, request: Message, value: any) => void | Promise<void>): import("./event-aggregator").Subscription;
|
|
24
27
|
}
|
|
25
|
-
export interface
|
|
28
|
+
export interface HttpOptions {
|
|
26
29
|
fetch?: Fetch;
|
|
27
30
|
timeout?: number;
|
|
28
31
|
baseUrl?: string;
|
|
29
|
-
onSent?: (request: Message, response: HttpResponse) => void | Promise<any>;
|
|
30
|
-
onReceived?: <T>(request: Message, response: HttpResponseOfT<T>, value: T) => void | Promise<any>;
|
|
31
32
|
}
|
package/dist/esm/http.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
import { EventAggregator } from './event-aggregator';
|
|
1
2
|
import { HttpBuilder } from './http-builder';
|
|
2
3
|
import { QueryString } from './query-string';
|
|
3
4
|
var Http = /** @class */ (function () {
|
|
4
5
|
function Http(options) {
|
|
6
|
+
/** @internal */
|
|
7
|
+
this._onSend = new EventAggregator();
|
|
8
|
+
/** @internal */
|
|
9
|
+
this._onSent = new EventAggregator();
|
|
10
|
+
/** @internal */
|
|
11
|
+
this._onReceived = new EventAggregator();
|
|
5
12
|
this.options = Object.assign({}, Http.defaults, options); // Later sources' properties overwrite earlier ones.
|
|
6
13
|
}
|
|
7
14
|
Http.request = function (method, url, params) {
|
|
@@ -39,8 +46,16 @@ var Http = /** @class */ (function () {
|
|
|
39
46
|
url: url + QueryString.serialize(params),
|
|
40
47
|
headers: new Headers()
|
|
41
48
|
};
|
|
42
|
-
var
|
|
43
|
-
|
|
49
|
+
var fetch = this.options.fetch;
|
|
50
|
+
if (!fetch) {
|
|
51
|
+
throw Error('fetch() is not properly configured');
|
|
52
|
+
}
|
|
53
|
+
var builder = new HttpBuilder(message, {
|
|
54
|
+
fetch: fetch,
|
|
55
|
+
timeout: this.options.timeout,
|
|
56
|
+
baseUrl: this.options.baseUrl,
|
|
57
|
+
}, this);
|
|
58
|
+
return builder;
|
|
44
59
|
};
|
|
45
60
|
Http.prototype.head = function (url, params) {
|
|
46
61
|
return this.request('HEAD', url, params);
|
|
@@ -60,6 +75,15 @@ var Http = /** @class */ (function () {
|
|
|
60
75
|
Http.prototype.delete = function (url, params) {
|
|
61
76
|
return this.request('DELETE', url, params);
|
|
62
77
|
};
|
|
78
|
+
Http.prototype.onSend = function (callback) {
|
|
79
|
+
return this._onSend.subscribe(callback);
|
|
80
|
+
};
|
|
81
|
+
Http.prototype.onSent = function (callback) {
|
|
82
|
+
return this._onSent.subscribe(callback);
|
|
83
|
+
};
|
|
84
|
+
Http.prototype.onReceived = function (callback) {
|
|
85
|
+
return this._onReceived.subscribe(callback);
|
|
86
|
+
};
|
|
63
87
|
Http.defaults = {
|
|
64
88
|
fetch: window.fetch ? window.fetch.bind(window) : undefined,
|
|
65
89
|
};
|
package/dist/esm/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
type Callback<P extends any[] = any[]> = (...params: P) => void | Promise<void>;
|
|
2
|
+
|
|
3
|
+
export class EventAggregator<P extends any[]> {
|
|
4
|
+
private callbacks: Function[] = [];
|
|
5
|
+
|
|
6
|
+
get any() {
|
|
7
|
+
return this.callbacks.length > 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
subscribe(callback: Callback<P>): Subscription {
|
|
11
|
+
this.callbacks.push(callback);
|
|
12
|
+
return {
|
|
13
|
+
dispose: () => {
|
|
14
|
+
const index = this.callbacks.indexOf(callback);
|
|
15
|
+
if (index >= 0) {
|
|
16
|
+
this.callbacks.splice(index, 1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async publish(...params: P) {
|
|
23
|
+
const callbacks = this.callbacks.slice();
|
|
24
|
+
for (const callback of callbacks) {
|
|
25
|
+
await Promise.resolve(callback.apply(this, params));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface Subscription {
|
|
31
|
+
dispose(): void;
|
|
32
|
+
}
|