source: trip-planner-front/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js

Last change on this file was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.6 KB
Line 
1/** PURE_IMPORTS_START tslib,_.._Observable,_.._Subscription,_.._observable_from PURE_IMPORTS_END */
2import * as tslib_1 from "tslib";
3import { Observable } from '../../Observable';
4import { Subscription } from '../../Subscription';
5import { from } from '../../observable/from';
6export function fromFetch(input, initWithSelector) {
7 if (initWithSelector === void 0) {
8 initWithSelector = {};
9 }
10 var selector = initWithSelector.selector, init = tslib_1.__rest(initWithSelector, ["selector"]);
11 return new Observable(function (subscriber) {
12 var controller = new AbortController();
13 var signal = controller.signal;
14 var abortable = true;
15 var unsubscribed = false;
16 var subscription = new Subscription();
17 subscription.add(function () {
18 unsubscribed = true;
19 if (abortable) {
20 controller.abort();
21 }
22 });
23 var perSubscriberInit;
24 if (init) {
25 if (init.signal) {
26 if (init.signal.aborted) {
27 controller.abort();
28 }
29 else {
30 var outerSignal_1 = init.signal;
31 var outerSignalHandler_1 = function () {
32 if (!signal.aborted) {
33 controller.abort();
34 }
35 };
36 outerSignal_1.addEventListener('abort', outerSignalHandler_1);
37 subscription.add(function () { return outerSignal_1.removeEventListener('abort', outerSignalHandler_1); });
38 }
39 }
40 perSubscriberInit = tslib_1.__assign({}, init, { signal: signal });
41 }
42 else {
43 perSubscriberInit = { signal: signal };
44 }
45 fetch(input, perSubscriberInit).then(function (response) {
46 if (selector) {
47 subscription.add(from(selector(response)).subscribe(function (value) { return subscriber.next(value); }, function (err) {
48 abortable = false;
49 if (!unsubscribed) {
50 subscriber.error(err);
51 }
52 }, function () {
53 abortable = false;
54 subscriber.complete();
55 }));
56 }
57 else {
58 abortable = false;
59 subscriber.next(response);
60 subscriber.complete();
61 }
62 }).catch(function (err) {
63 abortable = false;
64 if (!unsubscribed) {
65 subscriber.error(err);
66 }
67 });
68 return subscription;
69 });
70}
71//# sourceMappingURL=fetch.js.map
Note: See TracBrowser for help on using the repository browser.