aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/dist/esm/internal/observable/dom/fetch.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/dist/esm/internal/observable/dom/fetch.js')
-rw-r--r--node_modules/rxjs/dist/esm/internal/observable/dom/fetch.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm/internal/observable/dom/fetch.js b/node_modules/rxjs/dist/esm/internal/observable/dom/fetch.js
new file mode 100644
index 0000000..48b0af3
--- /dev/null
+++ b/node_modules/rxjs/dist/esm/internal/observable/dom/fetch.js
@@ -0,0 +1,53 @@
+import { __rest } from "tslib";
+import { createOperatorSubscriber } from '../../operators/OperatorSubscriber';
+import { Observable } from '../../Observable';
+import { innerFrom } from '../../observable/innerFrom';
+export function fromFetch(input, initWithSelector = {}) {
+ const { selector } = initWithSelector, init = __rest(initWithSelector, ["selector"]);
+ return new Observable((subscriber) => {
+ const controller = new AbortController();
+ const { signal } = controller;
+ let abortable = true;
+ const { signal: outerSignal } = init;
+ if (outerSignal) {
+ if (outerSignal.aborted) {
+ controller.abort();
+ }
+ else {
+ const outerSignalHandler = () => {
+ if (!signal.aborted) {
+ controller.abort();
+ }
+ };
+ outerSignal.addEventListener('abort', outerSignalHandler);
+ subscriber.add(() => outerSignal.removeEventListener('abort', outerSignalHandler));
+ }
+ }
+ const perSubscriberInit = Object.assign(Object.assign({}, init), { signal });
+ const handleError = (err) => {
+ abortable = false;
+ subscriber.error(err);
+ };
+ fetch(input, perSubscriberInit)
+ .then((response) => {
+ if (selector) {
+ innerFrom(selector(response)).subscribe(createOperatorSubscriber(subscriber, undefined, () => {
+ abortable = false;
+ subscriber.complete();
+ }, handleError));
+ }
+ else {
+ abortable = false;
+ subscriber.next(response);
+ subscriber.complete();
+ }
+ })
+ .catch(handleError);
+ return () => {
+ if (abortable) {
+ controller.abort();
+ }
+ };
+ });
+}
+//# sourceMappingURL=fetch.js.map \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage