response-iterator 0.2.2 → 0.2.5
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/LICENSE +1 -1
- package/README.md +7 -7
- package/dist/cjs/index.js +25 -44
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/iterators/async.js +22 -16
- package/dist/cjs/iterators/async.js.map +1 -1
- package/dist/cjs/iterators/nodeStream.js +76 -90
- package/dist/cjs/iterators/nodeStream.js.map +1 -1
- package/dist/cjs/iterators/promise.js +27 -37
- package/dist/cjs/iterators/promise.js.map +1 -1
- package/dist/cjs/iterators/reader.js +14 -24
- package/dist/cjs/iterators/reader.js.map +1 -1
- package/dist/esm/index.mjs +26 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/iterators/async.mjs +23 -0
- package/dist/esm/iterators/async.mjs.map +1 -0
- package/dist/esm/iterators/nodeStream.mjs +76 -0
- package/dist/esm/iterators/nodeStream.mjs.map +1 -0
- package/dist/esm/iterators/promise.mjs +27 -0
- package/dist/esm/iterators/promise.mjs.map +1 -0
- package/dist/esm/iterators/reader.mjs +14 -0
- package/dist/esm/iterators/reader.mjs.map +1 -0
- package/dist/{cjs → types}/index.d.ts +0 -0
- package/dist/{cjs → types}/iterators/async.d.ts +0 -0
- package/dist/{esm → types}/iterators/nodeStream.d.ts +1 -1
- package/dist/{cjs → types}/iterators/promise.d.ts +0 -0
- package/dist/{cjs → types}/iterators/reader.d.ts +0 -0
- package/dist/umd/response-iterator.js +142 -174
- package/dist/umd/response-iterator.min.js +173 -2
- package/package.json +17 -15
- package/dist/cjs/iterators/nodeStream.d.ts +0 -3
- package/dist/esm/index.d.ts +0 -4
- package/dist/esm/index.js +0 -34
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/iterators/async.d.ts +0 -1
- package/dist/esm/iterators/async.js +0 -14
- package/dist/esm/iterators/async.js.map +0 -1
- package/dist/esm/iterators/nodeStream.js +0 -87
- package/dist/esm/iterators/nodeStream.js.map +0 -1
- package/dist/esm/iterators/promise.d.ts +0 -1
- package/dist/esm/iterators/promise.js +0 -34
- package/dist/esm/iterators/promise.js.map +0 -1
- package/dist/esm/iterators/reader.d.ts +0 -1
- package/dist/esm/iterators/reader.js +0 -21
- package/dist/esm/iterators/reader.js.map +0 -1
- package/dist/umd/response-iterator.js.map +0 -1
- package/dist/umd/response-iterator.min.js.map +0 -1
@@ -0,0 +1,76 @@
|
|
1
|
+
var hasIterator = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
2
|
+
/* c8 ignore start */ export default function nodeStreamIterator(stream) {
|
3
|
+
var onData = function onData(chunk) {
|
4
|
+
if (error) return;
|
5
|
+
if (waiting.length) return waiting.shift()[0]({
|
6
|
+
value: chunk,
|
7
|
+
done: false
|
8
|
+
});
|
9
|
+
data.push(chunk);
|
10
|
+
};
|
11
|
+
var onError = function onError(err) {
|
12
|
+
error = err;
|
13
|
+
var all = waiting.slice();
|
14
|
+
all.forEach(function(pair) {
|
15
|
+
pair[1](err);
|
16
|
+
});
|
17
|
+
!cleanup || cleanup();
|
18
|
+
};
|
19
|
+
var onEnd = function onEnd() {
|
20
|
+
done = true;
|
21
|
+
var all = waiting.slice();
|
22
|
+
all.forEach(function(pair) {
|
23
|
+
pair[0]({
|
24
|
+
value: undefined,
|
25
|
+
done: true
|
26
|
+
});
|
27
|
+
});
|
28
|
+
!cleanup || cleanup();
|
29
|
+
};
|
30
|
+
var getNext = function getNext() {
|
31
|
+
return new Promise(function(resolve, reject) {
|
32
|
+
if (error) return reject(error);
|
33
|
+
if (data.length) return resolve({
|
34
|
+
value: data.shift(),
|
35
|
+
done: false
|
36
|
+
});
|
37
|
+
if (done) return resolve({
|
38
|
+
value: undefined,
|
39
|
+
done: true
|
40
|
+
});
|
41
|
+
waiting.push([
|
42
|
+
resolve,
|
43
|
+
reject
|
44
|
+
]);
|
45
|
+
});
|
46
|
+
};
|
47
|
+
var cleanup = null;
|
48
|
+
var error = null;
|
49
|
+
var done = false;
|
50
|
+
var data = [];
|
51
|
+
var waiting = [];
|
52
|
+
cleanup = function() {
|
53
|
+
cleanup = null;
|
54
|
+
stream.removeListener("data", onData);
|
55
|
+
stream.removeListener("error", onError);
|
56
|
+
stream.removeListener("end", onEnd);
|
57
|
+
stream.removeListener("finish", onEnd);
|
58
|
+
stream.removeListener("close", onEnd);
|
59
|
+
};
|
60
|
+
stream.on("data", onData);
|
61
|
+
stream.on("error", onError);
|
62
|
+
stream.on("end", onEnd);
|
63
|
+
stream.on("finish", onEnd);
|
64
|
+
stream.on("close", onEnd);
|
65
|
+
var iterator = {
|
66
|
+
next: function next() {
|
67
|
+
return getNext();
|
68
|
+
}
|
69
|
+
};
|
70
|
+
if (hasIterator) {
|
71
|
+
iterator[Symbol.asyncIterator] = function() {
|
72
|
+
return this;
|
73
|
+
};
|
74
|
+
}
|
75
|
+
return iterator;
|
76
|
+
}; /* c8 ignore stop */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["nodeStream.ts"],"sourcesContent":["import { Readable as NodeReadableStream } from 'stream';\n\nconst hasIterator = typeof Symbol !== 'undefined' && Symbol.asyncIterator;\n\n/* c8 ignore start */\nexport default function nodeStreamIterator<T>(stream: NodeReadableStream): AsyncIterableIterator<T> {\n let cleanup = null;\n let error = null;\n let done = false;\n const data = [];\n const waiting = [];\n\n function onData(chunk) {\n if (error) return;\n if (waiting.length) return waiting.shift()[0]({ value: chunk, done: false });\n data.push(chunk);\n }\n function onError(err) {\n error = err;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n\n cleanup = function () {\n cleanup = null;\n stream.removeListener('data', onData);\n stream.removeListener('error', onError);\n stream.removeListener('end', onEnd);\n stream.removeListener('finish', onEnd);\n stream.removeListener('close', onEnd);\n };\n stream.on('data', onData);\n stream.on('error', onError);\n stream.on('end', onEnd);\n stream.on('finish', onEnd);\n stream.on('close', onEnd);\n\n function getNext(): Promise<IteratorResult<T, boolean>> {\n return new Promise(function (resolve, reject) {\n if (error) return reject(error);\n if (data.length) return resolve({ value: data.shift(), done: false });\n if (done) return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n\n const iterator = {\n next(): Promise<IteratorResult<T, boolean>> {\n return getNext();\n },\n };\n\n if (hasIterator) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<T> {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator<T>;\n}\n/* c8 ignore stop */\n"],"names":["hasIterator","Symbol","asyncIterator","nodeStreamIterator","stream","onData","chunk","error","waiting","length","shift","value","done","data","push","onError","err","all","slice","forEach","pair","cleanup","onEnd","undefined","getNext","Promise","resolve","reject","removeListener","on","iterator","next"],"mappings":"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"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
var hasIterator = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
2
|
+
/* c8 ignore start */ export default function promiseIterator(promise) {
|
3
|
+
var resolved = false;
|
4
|
+
var iterator = {
|
5
|
+
next: function next() {
|
6
|
+
if (resolved) return Promise.resolve({
|
7
|
+
value: undefined,
|
8
|
+
done: true
|
9
|
+
});
|
10
|
+
resolved = true;
|
11
|
+
return new Promise(function(resolve, reject) {
|
12
|
+
promise.then(function(value) {
|
13
|
+
resolve({
|
14
|
+
value: value,
|
15
|
+
done: false
|
16
|
+
});
|
17
|
+
})["catch"](reject);
|
18
|
+
});
|
19
|
+
}
|
20
|
+
};
|
21
|
+
if (hasIterator) {
|
22
|
+
iterator[Symbol.asyncIterator] = function() {
|
23
|
+
return this;
|
24
|
+
};
|
25
|
+
}
|
26
|
+
return iterator;
|
27
|
+
}; /* c8 ignore stop */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["promise.ts"],"sourcesContent":["const hasIterator = typeof Symbol !== 'undefined' && Symbol.asyncIterator;\n\n/* c8 ignore start */\nexport default function promiseIterator<T>(promise): AsyncIterableIterator<T> {\n let resolved = false;\n\n const iterator = {\n next(): Promise<IteratorResult<T, boolean>> {\n if (resolved) return Promise.resolve({ value: undefined, done: true });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value, done: false });\n })\n .catch(reject);\n });\n },\n };\n\n if (hasIterator) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<T> {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator<T>;\n}\n/* c8 ignore stop */\n"],"names":["hasIterator","Symbol","asyncIterator","promiseIterator","promise","resolved","iterator","next","Promise","resolve","value","undefined","done","reject","then","catch"],"mappings":"AAAA,IAAMA,WAAW,GAAG,OAAOC,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACC,aAAa,AAAC;AAE1E,qBAAqB,CACrB,eAAe,SAASC,eAAe,CAAIC,OAAO,EAA4B;IAC5E,IAAIC,QAAQ,GAAG,KAAK,AAAC;IAErB,IAAMC,QAAQ,GAAG;QACfC,IAAI,EAAJA,SAAAA,IAAI,GAAwC;YAC1C,IAAIF,QAAQ,EAAE,OAAOG,OAAO,CAACC,OAAO,CAAC;gBAAEC,KAAK,EAAEC,SAAS;gBAAEC,IAAI,EAAE,IAAI;aAAE,CAAC,CAAC;YACvEP,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,IAAIG,OAAO,CAAC,SAAUC,OAAO,EAAEI,MAAM,EAAE;gBAC5CT,OAAO,CACJU,IAAI,CAAC,SAAUJ,KAAK,EAAE;oBACrBD,OAAO,CAAC;wBAAEC,KAAK,EAALA,KAAK;wBAAEE,IAAI,EAAE,KAAK;qBAAE,CAAC,CAAC;iBACjC,CAAC,AACDG,CAAAA,OAAK,CAAA,CAACF,MAAM,CAAC,CAAC;aAClB,CAAC,CAAC;SACJ;KACF,AAAC;IAEF,IAAIb,WAAW,EAAE;QACfM,QAAQ,CAACL,MAAM,CAACC,aAAa,CAAC,GAAG,WAA8B;YAC7D,OAAO,IAAI,CAAC;SACb,CAAC;KACH;IAED,OAAOI,QAAQ,CAA6B;CAC7C,CAAA,CACD,oBAAoB"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
var hasIterator = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
2
|
+
/* c8 ignore start */ export default function readerIterator(reader) {
|
3
|
+
var iterator = {
|
4
|
+
next: function next() {
|
5
|
+
return reader.read();
|
6
|
+
}
|
7
|
+
};
|
8
|
+
if (hasIterator) {
|
9
|
+
iterator[Symbol.asyncIterator] = function() {
|
10
|
+
return this;
|
11
|
+
};
|
12
|
+
}
|
13
|
+
return iterator;
|
14
|
+
}; /* c8 ignore stop */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["reader.ts"],"sourcesContent":["const hasIterator = typeof Symbol !== 'undefined' && Symbol.asyncIterator;\n\n/* c8 ignore start */\nexport default function readerIterator<T>(reader): AsyncIterableIterator<T> {\n const iterator = {\n next(): Promise<IteratorResult<T, boolean>> {\n return reader.read();\n },\n };\n\n if (hasIterator) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<T> {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator<T>;\n}\n/* c8 ignore stop */\n"],"names":["hasIterator","Symbol","asyncIterator","readerIterator","reader","iterator","next","read"],"mappings":"AAAA,IAAMA,WAAW,GAAG,OAAOC,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACC,aAAa,AAAC;AAE1E,qBAAqB,CACrB,eAAe,SAASC,cAAc,CAAIC,MAAM,EAA4B;IAC1E,IAAMC,QAAQ,GAAG;QACfC,IAAI,EAAJA,SAAAA,IAAI,GAAwC;YAC1C,OAAOF,MAAM,CAACG,IAAI,EAAE,CAAC;SACtB;KACF,AAAC;IAEF,IAAIP,WAAW,EAAE;QACfK,QAAQ,CAACJ,MAAM,CAACC,aAAa,CAAC,GAAG,WAA8B;YAC7D,OAAO,IAAI,CAAC;SACb,CAAC;KACH;IAED,OAAOG,QAAQ,CAA6B;CAC7C,CAAA,CACD,oBAAoB"}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,201 +5,169 @@
|
|
5
5
|
})(this, (function () { 'use strict';
|
6
6
|
|
7
7
|
function _defineProperty(obj, key, value) {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
return obj;
|
8
|
+
if (key in obj) {
|
9
|
+
Object.defineProperty(obj, key, {
|
10
|
+
value: value,
|
11
|
+
enumerable: true,
|
12
|
+
configurable: true,
|
13
|
+
writable: true
|
14
|
+
});
|
15
|
+
} else {
|
16
|
+
obj[key] = value;
|
17
|
+
}
|
18
|
+
return obj;
|
20
19
|
}
|
21
|
-
|
22
20
|
function asyncIterator(source) {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
21
|
+
var iterator = source[Symbol.asyncIterator]();
|
22
|
+
return _defineProperty({
|
23
|
+
next: function next() {
|
24
|
+
return iterator.next();
|
25
|
+
}
|
26
|
+
}, Symbol.asyncIterator, function() {
|
27
|
+
return this;
|
28
|
+
});
|
31
29
|
}
|
32
30
|
|
33
31
|
var hasIterator$3 = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
34
|
-
/* c8 ignore start */
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
function onData(chunk) {
|
44
|
-
if (error) return;
|
45
|
-
if (waiting.length) return waiting.shift()[0]({
|
46
|
-
value: chunk,
|
47
|
-
done: false
|
48
|
-
});
|
49
|
-
data.push(chunk);
|
50
|
-
}
|
51
|
-
|
52
|
-
function onError(err) {
|
53
|
-
error = err;
|
54
|
-
var all = waiting.slice();
|
55
|
-
all.forEach(function (pair) {
|
56
|
-
pair[1](err);
|
57
|
-
});
|
58
|
-
!_cleanup || _cleanup();
|
59
|
-
}
|
60
|
-
|
61
|
-
function onEnd() {
|
62
|
-
done = true;
|
63
|
-
var all = waiting.slice();
|
64
|
-
all.forEach(function (pair) {
|
65
|
-
pair[0]({
|
66
|
-
value: undefined,
|
67
|
-
done: true
|
68
|
-
});
|
69
|
-
});
|
70
|
-
!_cleanup || _cleanup();
|
71
|
-
}
|
72
|
-
|
73
|
-
_cleanup = function cleanup() {
|
74
|
-
_cleanup = null;
|
75
|
-
stream.removeListener("data", onData);
|
76
|
-
stream.removeListener("error", onError);
|
77
|
-
stream.removeListener("end", onEnd);
|
78
|
-
stream.removeListener("finish", onEnd);
|
79
|
-
stream.removeListener("close", onEnd);
|
80
|
-
};
|
81
|
-
|
82
|
-
stream.on("data", onData);
|
83
|
-
stream.on("error", onError);
|
84
|
-
stream.on("end", onEnd);
|
85
|
-
stream.on("finish", onEnd);
|
86
|
-
stream.on("close", onEnd);
|
87
|
-
|
88
|
-
function getNext() {
|
89
|
-
return new Promise(function (resolve, reject) {
|
90
|
-
if (error) return reject(error);
|
91
|
-
if (data.length) return resolve({
|
92
|
-
value: data.shift(),
|
93
|
-
done: false
|
94
|
-
});
|
95
|
-
if (done) return resolve({
|
96
|
-
value: undefined,
|
97
|
-
done: true
|
98
|
-
});
|
99
|
-
waiting.push([resolve, reject]);
|
100
|
-
});
|
101
|
-
}
|
102
|
-
|
103
|
-
var iterator = {
|
104
|
-
next: function next() {
|
105
|
-
return getNext();
|
106
|
-
}
|
107
|
-
};
|
108
|
-
|
109
|
-
if (hasIterator$3) {
|
110
|
-
iterator[Symbol.asyncIterator] = function () {
|
111
|
-
return this;
|
32
|
+
/* c8 ignore start */ function nodeStreamIterator(stream) {
|
33
|
+
var onData = function onData(chunk) {
|
34
|
+
if (error) return;
|
35
|
+
if (waiting.length) return waiting.shift()[0]({
|
36
|
+
value: chunk,
|
37
|
+
done: false
|
38
|
+
});
|
39
|
+
data.push(chunk);
|
112
40
|
};
|
113
|
-
|
114
|
-
|
115
|
-
|
41
|
+
var onError = function onError(err) {
|
42
|
+
error = err;
|
43
|
+
var all = waiting.slice();
|
44
|
+
all.forEach(function(pair) {
|
45
|
+
pair[1](err);
|
46
|
+
});
|
47
|
+
!cleanup || cleanup();
|
48
|
+
};
|
49
|
+
var onEnd = function onEnd() {
|
50
|
+
done = true;
|
51
|
+
var all = waiting.slice();
|
52
|
+
all.forEach(function(pair) {
|
53
|
+
pair[0]({
|
54
|
+
value: undefined,
|
55
|
+
done: true
|
56
|
+
});
|
57
|
+
});
|
58
|
+
!cleanup || cleanup();
|
59
|
+
};
|
60
|
+
var getNext = function getNext() {
|
61
|
+
return new Promise(function(resolve, reject) {
|
62
|
+
if (error) return reject(error);
|
63
|
+
if (data.length) return resolve({
|
64
|
+
value: data.shift(),
|
65
|
+
done: false
|
66
|
+
});
|
67
|
+
if (done) return resolve({
|
68
|
+
value: undefined,
|
69
|
+
done: true
|
70
|
+
});
|
71
|
+
waiting.push([
|
72
|
+
resolve,
|
73
|
+
reject
|
74
|
+
]);
|
75
|
+
});
|
76
|
+
};
|
77
|
+
var cleanup = null;
|
78
|
+
var error = null;
|
79
|
+
var done = false;
|
80
|
+
var data = [];
|
81
|
+
var waiting = [];
|
82
|
+
cleanup = function() {
|
83
|
+
cleanup = null;
|
84
|
+
stream.removeListener("data", onData);
|
85
|
+
stream.removeListener("error", onError);
|
86
|
+
stream.removeListener("end", onEnd);
|
87
|
+
stream.removeListener("finish", onEnd);
|
88
|
+
stream.removeListener("close", onEnd);
|
89
|
+
};
|
90
|
+
stream.on("data", onData);
|
91
|
+
stream.on("error", onError);
|
92
|
+
stream.on("end", onEnd);
|
93
|
+
stream.on("finish", onEnd);
|
94
|
+
stream.on("close", onEnd);
|
95
|
+
var iterator = {
|
96
|
+
next: function next() {
|
97
|
+
return getNext();
|
98
|
+
}
|
99
|
+
};
|
100
|
+
if (hasIterator$3) {
|
101
|
+
iterator[Symbol.asyncIterator] = function() {
|
102
|
+
return this;
|
103
|
+
};
|
104
|
+
}
|
105
|
+
return iterator;
|
116
106
|
}
|
117
|
-
/* c8 ignore stop */
|
118
107
|
|
119
108
|
var hasIterator$2 = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
120
|
-
/* c8 ignore start */
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
}
|
138
|
-
});
|
139
|
-
}
|
140
|
-
};
|
141
|
-
|
142
|
-
if (hasIterator$2) {
|
143
|
-
iterator[Symbol.asyncIterator] = function () {
|
144
|
-
return this;
|
109
|
+
/* c8 ignore start */ function promiseIterator(promise) {
|
110
|
+
var resolved = false;
|
111
|
+
var iterator = {
|
112
|
+
next: function next() {
|
113
|
+
if (resolved) return Promise.resolve({
|
114
|
+
value: undefined,
|
115
|
+
done: true
|
116
|
+
});
|
117
|
+
resolved = true;
|
118
|
+
return new Promise(function(resolve, reject) {
|
119
|
+
promise.then(function(value) {
|
120
|
+
resolve({
|
121
|
+
value: value,
|
122
|
+
done: false
|
123
|
+
});
|
124
|
+
})["catch"](reject);
|
125
|
+
});
|
126
|
+
}
|
145
127
|
};
|
146
|
-
|
147
|
-
|
148
|
-
|
128
|
+
if (hasIterator$2) {
|
129
|
+
iterator[Symbol.asyncIterator] = function() {
|
130
|
+
return this;
|
131
|
+
};
|
132
|
+
}
|
133
|
+
return iterator;
|
149
134
|
}
|
150
|
-
/* c8 ignore stop */
|
151
135
|
|
152
136
|
var hasIterator$1 = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
153
|
-
/* c8 ignore start */
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
return reader.read();
|
159
|
-
}
|
160
|
-
};
|
161
|
-
|
162
|
-
if (hasIterator$1) {
|
163
|
-
iterator[Symbol.asyncIterator] = function () {
|
164
|
-
return this;
|
137
|
+
/* c8 ignore start */ function readerIterator(reader) {
|
138
|
+
var iterator = {
|
139
|
+
next: function next() {
|
140
|
+
return reader.read();
|
141
|
+
}
|
165
142
|
};
|
166
|
-
|
167
|
-
|
168
|
-
|
143
|
+
if (hasIterator$1) {
|
144
|
+
iterator[Symbol.asyncIterator] = function() {
|
145
|
+
return this;
|
146
|
+
};
|
147
|
+
}
|
148
|
+
return iterator;
|
169
149
|
}
|
170
|
-
/* c8 ignore stop */
|
171
150
|
|
151
|
+
// @ts-ignore
|
172
152
|
var hasIterator = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
173
153
|
/**
|
174
154
|
* @param response A response. Supports fetch, node-fetch, and cross-fetch
|
175
|
-
*/
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
if (hasIterator && body[Symbol.asyncIterator]) return asyncIterator(body);
|
191
|
-
/* c8 ignore start */
|
192
|
-
|
193
|
-
if (body.getReader) return readerIterator(body.getReader());
|
194
|
-
if (body.stream) return readerIterator(body.stream().getReader());
|
195
|
-
if (body.arrayBuffer) return promiseIterator(body.arrayBuffer());
|
196
|
-
if (body.pipe) return nodeStreamIterator(body);
|
197
|
-
/* c8 ignore stop */
|
198
|
-
|
199
|
-
throw new Error("Unknown body type for responseIterator. Maybe you are not passing a streamable response");
|
155
|
+
*/ function responseIterator(response) {
|
156
|
+
if (response === undefined) throw new Error("Missing response for responseIterator");
|
157
|
+
// determine the body
|
158
|
+
var body = response;
|
159
|
+
if (response.body) body = response.body;
|
160
|
+
else if (response.data) body = response.data;
|
161
|
+
else if (response._bodyBlob) body = response._bodyBlob; // cross-fetch
|
162
|
+
/* c8 ignore stop */ // adapt the body
|
163
|
+
if (hasIterator && body[Symbol.asyncIterator]) return asyncIterator(body);
|
164
|
+
/* c8 ignore start */ if (body.getReader) return readerIterator(body.getReader());
|
165
|
+
if (body.stream) return readerIterator(body.stream().getReader());
|
166
|
+
if (body.arrayBuffer) return promiseIterator(body.arrayBuffer());
|
167
|
+
if (body.pipe) return nodeStreamIterator(body);
|
168
|
+
/* c8 ignore stop */ throw new Error("Unknown body type for responseIterator. Maybe you are not passing a streamable response");
|
200
169
|
}
|
201
170
|
|
202
171
|
return responseIterator;
|
203
172
|
|
204
173
|
}));
|
205
|
-
//# sourceMappingURL=response-iterator.js.map
|