asyncIterator.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. var _Symbol = require("@babel/runtime-corejs3/core-js/symbol");
  2. var _Symbol$asyncIterator = require("@babel/runtime-corejs3/core-js/symbol/async-iterator");
  3. var _Symbol$iterator = require("@babel/runtime-corejs3/core-js/symbol/iterator");
  4. var _Promise = require("@babel/runtime-corejs3/core-js/promise");
  5. function _asyncIterator(iterable) {
  6. var method,
  7. async,
  8. sync,
  9. retry = 2;
  10. if (typeof _Symbol !== "undefined") {
  11. async = _Symbol$asyncIterator;
  12. sync = _Symbol$iterator;
  13. }
  14. while (retry--) {
  15. if (async && (method = iterable[async]) != null) {
  16. return method.call(iterable);
  17. }
  18. if (sync && (method = iterable[sync]) != null) {
  19. return new AsyncFromSyncIterator(method.call(iterable));
  20. }
  21. async = "@@asyncIterator";
  22. sync = "@@iterator";
  23. }
  24. throw new TypeError("Object is not async iterable");
  25. }
  26. function AsyncFromSyncIterator(s) {
  27. AsyncFromSyncIterator = function AsyncFromSyncIterator(s) {
  28. this.s = s;
  29. this.n = s.next;
  30. };
  31. AsyncFromSyncIterator.prototype = {
  32. s: null,
  33. n: null,
  34. next: function next() {
  35. return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
  36. },
  37. "return": function _return(value) {
  38. var ret = this.s["return"];
  39. if (ret === undefined) {
  40. return _Promise.resolve({
  41. value: value,
  42. done: true
  43. });
  44. }
  45. return AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
  46. },
  47. "throw": function _throw(value) {
  48. var thr = this.s["return"];
  49. if (thr === undefined) return _Promise.reject(value);
  50. return AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
  51. }
  52. };
  53. function AsyncFromSyncIteratorContinuation(r) {
  54. if (Object(r) !== r) {
  55. return _Promise.reject(new TypeError(r + " is not an object."));
  56. }
  57. var done = r.done;
  58. return _Promise.resolve(r.value).then(function (value) {
  59. return {
  60. value: value,
  61. done: done
  62. };
  63. });
  64. }
  65. return new AsyncFromSyncIterator(s);
  66. }
  67. module.exports = _asyncIterator;
  68. module.exports["default"] = module.exports, module.exports.__esModule = true;