Initial Sample.
This commit is contained in:
1 parent
ef2b65f673
commit
5269ec3c66
2575 files changed
+282312
No files matched your search
+1
@@ -0,0 +1 @@
|
||||
{ "type": "commonjs" }
|
||||
Generated
Vendored
+174
@@ -0,0 +1,174 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.responseIterator = factory());
|
||||
})(this, (function () { 'use strict';
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
function asyncIterator(source) {
|
||||
var iterator = source[Symbol.asyncIterator]();
|
||||
return _defineProperty({
|
||||
next: function next() {
|
||||
return iterator.next();
|
||||
}
|
||||
}, Symbol.asyncIterator, function() {
|
||||
return this;
|
||||
});
|
||||
}
|
||||
|
||||
var hasIterator$3 = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
||||
/* c8 ignore start */ function nodeStreamIterator(stream) {
|
||||
var onData = function onData(chunk) {
|
||||
if (error) return;
|
||||
if (waiting.length) return waiting.shift()[0]({
|
||||
value: chunk,
|
||||
done: false
|
||||
});
|
||||
data.push(chunk);
|
||||
};
|
||||
var onError = function onError(err) {
|
||||
error = err;
|
||||
var all = waiting.slice();
|
||||
all.forEach(function(pair) {
|
||||
pair[1](err);
|
||||
});
|
||||
!cleanup || cleanup();
|
||||
};
|
||||
var onEnd = function onEnd() {
|
||||
done = true;
|
||||
var all = waiting.slice();
|
||||
all.forEach(function(pair) {
|
||||
pair[0]({
|
||||
value: undefined,
|
||||
done: true
|
||||
});
|
||||
});
|
||||
!cleanup || cleanup();
|
||||
};
|
||||
var getNext = function getNext() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
if (error) return reject(error);
|
||||
if (data.length) return resolve({
|
||||
value: data.shift(),
|
||||
done: false
|
||||
});
|
||||
if (done) return resolve({
|
||||
value: undefined,
|
||||
done: true
|
||||
});
|
||||
waiting.push([
|
||||
resolve,
|
||||
reject
|
||||
]);
|
||||
});
|
||||
};
|
||||
var cleanup = null;
|
||||
var error = null;
|
||||
var done = false;
|
||||
var data = [];
|
||||
var waiting = [];
|
||||
cleanup = function() {
|
||||
cleanup = null;
|
||||
stream.removeListener("data", onData);
|
||||
stream.removeListener("error", onError);
|
||||
stream.removeListener("end", onEnd);
|
||||
stream.removeListener("finish", onEnd);
|
||||
stream.removeListener("close", onEnd);
|
||||
};
|
||||
stream.on("data", onData);
|
||||
stream.on("error", onError);
|
||||
stream.on("end", onEnd);
|
||||
stream.on("finish", onEnd);
|
||||
stream.on("close", onEnd);
|
||||
var iterator = {
|
||||
next: function next() {
|
||||
return getNext();
|
||||
}
|
||||
};
|
||||
if (hasIterator$3) {
|
||||
iterator[Symbol.asyncIterator] = function() {
|
||||
return this;
|
||||
};
|
||||
}
|
||||
return iterator;
|
||||
}
|
||||
|
||||
var hasIterator$2 = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
||||
/* c8 ignore start */ function promiseIterator(promise) {
|
||||
var resolved = false;
|
||||
var iterator = {
|
||||
next: function next() {
|
||||
if (resolved) return Promise.resolve({
|
||||
value: undefined,
|
||||
done: true
|
||||
});
|
||||
resolved = true;
|
||||
return new Promise(function(resolve, reject) {
|
||||
promise.then(function(value) {
|
||||
resolve({
|
||||
value: value,
|
||||
done: false
|
||||
});
|
||||
}).catch(reject);
|
||||
});
|
||||
}
|
||||
};
|
||||
if (hasIterator$2) {
|
||||
iterator[Symbol.asyncIterator] = function() {
|
||||
return this;
|
||||
};
|
||||
}
|
||||
return iterator;
|
||||
}
|
||||
|
||||
var hasIterator$1 = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
||||
/* c8 ignore start */ function readerIterator(reader) {
|
||||
var iterator = {
|
||||
next: function next() {
|
||||
return reader.read();
|
||||
}
|
||||
};
|
||||
if (hasIterator$1) {
|
||||
iterator[Symbol.asyncIterator] = function() {
|
||||
return this;
|
||||
};
|
||||
}
|
||||
return iterator;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
var hasIterator = typeof Symbol !== "undefined" && Symbol.asyncIterator;
|
||||
/**
|
||||
* @param response A response. Supports fetch, node-fetch, and cross-fetch
|
||||
*/ function responseIterator(response) {
|
||||
if (response === undefined) throw new Error("Missing response for responseIterator");
|
||||
// determine the body
|
||||
var body = response;
|
||||
if (response.body) body = response.body;
|
||||
else if (response.data) body = response.data;
|
||||
else if (response._bodyBlob) body = response._bodyBlob; // cross-fetch
|
||||
/* c8 ignore stop */ // adapt the body
|
||||
if (hasIterator && body[Symbol.asyncIterator]) return asyncIterator(body);
|
||||
/* c8 ignore start */ if (body.getReader) return readerIterator(body.getReader());
|
||||
if (body.stream) return readerIterator(body.stream().getReader());
|
||||
if (body.arrayBuffer) return promiseIterator(body.arrayBuffer());
|
||||
if (body.pipe) return nodeStreamIterator(body);
|
||||
/* c8 ignore stop */ throw new Error("Unknown body type for responseIterator. Maybe you are not passing a streamable response");
|
||||
}
|
||||
|
||||
return responseIterator;
|
||||
|
||||
}));
|
||||
//# sourceMappingURL=response-iterator.js.map
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"response-iterator.js","sources":["../../src/iterators/async.ts","../../src/iterators/nodeStream.ts","../../src/iterators/promise.ts","../../src/iterators/reader.ts","../../src/index.ts"],"sourcesContent":["export default function asyncIterator<T>(source): AsyncIterableIterator<T> {\n const iterator = source[Symbol.asyncIterator]();\n return {\n next(): Promise<IteratorResult<T, boolean>> {\n return iterator.next();\n },\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n },\n } as AsyncIterableIterator<T>;\n}\n","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","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","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","import { AxiosResponse } from 'axios';\nimport { Response as NodeResponse } from 'node-fetch';\nimport { Readable as NodeReadableStream } from 'stream';\n\n// @ts-ignore\nimport asyncIterator from './iterators/async.ts';\n// @ts-ignore\nimport nodeStreamIterator from './iterators/nodeStream.ts';\n// @ts-ignore\nimport promiseIterator from './iterators/promise.ts';\n// @ts-ignore\nimport readerIterator from './iterators/reader.ts';\n\ninterface CrossFetchResponse {\n _bodyBlob: Blob;\n}\n\nconst hasIterator = typeof Symbol !== 'undefined' && Symbol.asyncIterator;\n\n/**\n * @param response A response. Supports fetch, node-fetch, and cross-fetch\n */\nexport default function responseIterator<T>(response: unknown): AsyncIterableIterator<T> {\n if (response === undefined) throw new Error('Missing response for responseIterator');\n\n // determine the body\n let body: unknown = response;\n if ((response as NodeResponse).body) body = (response as NodeResponse).body;\n // node-fetch, browser fetch, undici\n else if ((response as AxiosResponse).data) body = (response as AxiosRespLine truncated
|
||||
Generated
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).responseIterator=n()}(this,(function(){"use strict";function e(e){var n,r,o,t=e[Symbol.asyncIterator]();return n={next:function(){return t.next()}},r=Symbol.asyncIterator,o=function(){return this},r in n?Object.defineProperty(n,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[r]=o,n}var n="undefined"!=typeof Symbol&&Symbol.asyncIterator;function r(e){var r=function(e){if(!a)return s.length?s.shift()[0]({value:e,done:!1}):void f.push(e)},o=function(e){a=e,s.slice().forEach((function(n){n[1](e)})),!i||i()},t=function(){u=!0,s.slice().forEach((function(e){e[0]({value:void 0,done:!0})})),!i||i()},i=null,a=null,u=!1,f=[],s=[];i=function(){i=null,e.removeListener("data",r),e.removeListener("error",o),e.removeListener("end",t),e.removeListener("finish",t),e.removeListener("close",t)},e.on("data",r),e.on("error",o),e.on("end",t),e.on("finish",t),e.on("close",t);var l={next:function(){return new Promise((function(e,n){return a?n(a):f.length?e({value:f.shift(),done:!1}):u?e({value:void 0,done:!0}):void s.push([e,n])}))}};return n&&(l[Symbol.asyncIterator]=function(){return this}),l}var o="undefined"!=typeof Symbol&&Symbol.asyncIterator;var t="undefined"!=typeof Symbol&&Symbol.asyncIterator;function i(e){var n={next:function(){return e.read()}};return t&&(n[Symbol.asyncIterator]=function(){return this}),n}var a="undefined"!=typeof Symbol&&Symbol.asyncIterator;return function(n){if(void 0===n)throw new Error("Missing response for responseIterator");var t,u,f,s=n;if(n.body?s=n.body:n.data?s=n.data:n._bodyBlob&&(s=n._bodyBlob),a&&s[Symbol.asyncIterator])return e(s);if(s.getReader)return i(s.getReader());if(s.stream)return i(s.stream().getReader());if(s.arrayBuffer)return t=s.arrayBuffer(),u=!1,f={next:function(){return u?Promise.resolve({value:void 0,done:!0}):(u=!0,new Promise((function(e,n){t.then((function(n){e({value:n,done:!1})})).catch(n)})))}},o&&(f[Symbol.asyncIterator]=function(){return this}),f;if(s.pipe)return r(s);throw new Error("Unknown body type for responseIterator. Maybe you are not passing a streamable response")}}));
|
||||
//# sourceMappingURL=response-iterator.min.js.map
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"response-iterator.min.js","sources":["../../src/iterators/async.ts","../../src/iterators/nodeStream.ts","../../src/iterators/promise.ts","../../src/iterators/reader.ts","../../src/index.ts"],"sourcesContent":["export default function asyncIterator<T>(source): AsyncIterableIterator<T> {\n const iterator = source[Symbol.asyncIterator]();\n return {\n next(): Promise<IteratorResult<T, boolean>> {\n return iterator.next();\n },\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n },\n } as AsyncIterableIterator<T>;\n}\n","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","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","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","import { AxiosResponse } from 'axios';\nimport { Response as NodeResponse } from 'node-fetch';\nimport { Readable as NodeReadableStream } from 'stream';\n\n// @ts-ignore\nimport asyncIterator from './iterators/async.ts';\n// @ts-ignore\nimport nodeStreamIterator from './iterators/nodeStream.ts';\n// @ts-ignore\nimport promiseIterator from './iterators/promise.ts';\n// @ts-ignore\nimport readerIterator from './iterators/reader.ts';\n\ninterface CrossFetchResponse {\n _bodyBlob: Blob;\n}\n\nconst hasIterator = typeof Symbol !== 'undefined' && Symbol.asyncIterator;\n\n/**\n * @param response A response. Supports fetch, node-fetch, and cross-fetch\n */\nexport default function responseIterator<T>(response: unknown): AsyncIterableIterator<T> {\n if (response === undefined) throw new Error('Missing response for responseIterator');\n\n // determine the body\n let body: unknown = response;\n if ((response as NodeResponse).body) body = (response as NodeResponse).body;\n // node-fetch, browser fetch, undici\n else if ((response as AxiosResponse).data) body = (response as AxiosLine truncated
|
||||
Reference in new issue
Block a user