fetch.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. "use strict";
  2. var __assign = (this && this.__assign) || function () {
  3. __assign = Object.assign || function(t) {
  4. for (var s, i = 1, n = arguments.length; i < n; i++) {
  5. s = arguments[i];
  6. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  7. t[p] = s[p];
  8. }
  9. return t;
  10. };
  11. return __assign.apply(this, arguments);
  12. };
  13. var __rest = (this && this.__rest) || function (s, e) {
  14. var t = {};
  15. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
  16. t[p] = s[p];
  17. if (s != null && typeof Object.getOwnPropertySymbols === "function")
  18. for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  19. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
  20. t[p[i]] = s[p[i]];
  21. }
  22. return t;
  23. };
  24. Object.defineProperty(exports, "__esModule", { value: true });
  25. exports.fromFetch = void 0;
  26. var OperatorSubscriber_1 = require("../../operators/OperatorSubscriber");
  27. var Observable_1 = require("../../Observable");
  28. var innerFrom_1 = require("../../observable/innerFrom");
  29. function fromFetch(input, initWithSelector) {
  30. if (initWithSelector === void 0) { initWithSelector = {}; }
  31. var selector = initWithSelector.selector, init = __rest(initWithSelector, ["selector"]);
  32. return new Observable_1.Observable(function (subscriber) {
  33. var controller = new AbortController();
  34. var signal = controller.signal;
  35. var abortable = true;
  36. var outerSignal = init.signal;
  37. if (outerSignal) {
  38. if (outerSignal.aborted) {
  39. controller.abort();
  40. }
  41. else {
  42. var outerSignalHandler_1 = function () {
  43. if (!signal.aborted) {
  44. controller.abort();
  45. }
  46. };
  47. outerSignal.addEventListener('abort', outerSignalHandler_1);
  48. subscriber.add(function () { return outerSignal.removeEventListener('abort', outerSignalHandler_1); });
  49. }
  50. }
  51. var perSubscriberInit = __assign(__assign({}, init), { signal: signal });
  52. var handleError = function (err) {
  53. abortable = false;
  54. subscriber.error(err);
  55. };
  56. fetch(input, perSubscriberInit)
  57. .then(function (response) {
  58. if (selector) {
  59. innerFrom_1.innerFrom(selector(response)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, function () {
  60. abortable = false;
  61. subscriber.complete();
  62. }, handleError));
  63. }
  64. else {
  65. abortable = false;
  66. subscriber.next(response);
  67. subscriber.complete();
  68. }
  69. })
  70. .catch(handleError);
  71. return function () {
  72. if (abortable) {
  73. controller.abort();
  74. }
  75. };
  76. });
  77. }
  78. exports.fromFetch = fromFetch;
  79. //# sourceMappingURL=fetch.js.map