New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

response-iterator

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

response-iterator - npm Package Compare versions

Comparing version 0.1.1 to 0.2.0

15

dist/cjs/index.js

@@ -65,15 +65,18 @@ 'use strict';

/**
* @param response A response. Supports fetch, node-fetch, and cross-fetch
*/
function responseIterator(response) {
if (response === undefined) throw new Error("Missing response for responseIterator"); // node-fetch
if (response === undefined) throw new Error("Missing response for responseIterator"); // node node-fetch
if (response.body && response.body[Symbol.asyncIterator] !== undefined) return streamIterator(response.body);
/* c8 ignore start */
// browser fetch
else if (response.body && response.body.getReader) return readerIterator(response.body.getReader()); // browser cross-fetch
else if (response._bodyBlob) return promiseIterator(response._bodyBlob.arrayBuffer());
// browser fetch or undici
else if (response.body && response.body.getReader) return readerIterator(response.body.getReader()); // cross platform axios
else if (response.data) {
if (response.data.stream) return readerIterator(response.data.stream().getReader());else if (response.data[Symbol.asyncIterator] !== undefined) return streamIterator(response.data);
} // browser cross-fetch
else if (response._bodyBlob) return promiseIterator(response._bodyBlob.arrayBuffer()); // node got
else if (response.readable && response[Symbol.asyncIterator] !== undefined) return streamIterator(response);
/* c8 ignore stop */

@@ -80,0 +83,0 @@

@@ -57,15 +57,18 @@ function streamIterator(stream) {

/**
* @param response A response. Supports fetch, node-fetch, and cross-fetch
*/
function responseIterator(response) {
if (response === undefined) throw new Error("Missing response for responseIterator"); // node-fetch
if (response === undefined) throw new Error("Missing response for responseIterator"); // node node-fetch
if (response.body && response.body[Symbol.asyncIterator] !== undefined) return streamIterator(response.body);
/* c8 ignore start */
// browser fetch
else if (response.body && response.body.getReader) return readerIterator(response.body.getReader()); // browser cross-fetch
else if (response._bodyBlob) return promiseIterator(response._bodyBlob.arrayBuffer());
// browser fetch or undici
else if (response.body && response.body.getReader) return readerIterator(response.body.getReader()); // cross platform axios
else if (response.data) {
if (response.data.stream) return readerIterator(response.data.stream().getReader());else if (response.data[Symbol.asyncIterator] !== undefined) return streamIterator(response.data);
} // browser cross-fetch
else if (response._bodyBlob) return promiseIterator(response._bodyBlob.arrayBuffer()); // node got
else if (response.readable && response[Symbol.asyncIterator] !== undefined) return streamIterator(response);
/* c8 ignore stop */

@@ -72,0 +75,0 @@

6

dist/index.d.ts

@@ -0,9 +1,13 @@

import { AxiosResponse } from "axios";
import { Response as GotResponse } from "got";
import { Response as NodeResponse } from "node-fetch";
import { Response as UndiciResponse } from "undici";
interface CrossFetchResponse {
_bodyBlob: Blob;
}
export declare type ResponseType = AxiosResponse | CrossFetchResponse | GotResponse | NodeResponse | Response | UndiciResponse;
/**
* @param response A response. Supports fetch, node-fetch, and cross-fetch
*/
export default function responseIterator<T>(response: Response | NodeResponse | CrossFetchResponse): AsyncIterableIterator<T>;
export default function responseIterator<T>(response: ResponseType): AsyncIterableIterator<T>;
export {};

@@ -69,15 +69,18 @@ (function (global, factory) {

/**
* @param response A response. Supports fetch, node-fetch, and cross-fetch
*/
function responseIterator(response) {
if (response === undefined) throw new Error("Missing response for responseIterator"); // node-fetch
if (response === undefined) throw new Error("Missing response for responseIterator"); // node node-fetch
if (response.body && response.body[Symbol.asyncIterator] !== undefined) return streamIterator(response.body);
/* c8 ignore start */
// browser fetch
else if (response.body && response.body.getReader) return readerIterator(response.body.getReader()); // browser cross-fetch
else if (response._bodyBlob) return promiseIterator(response._bodyBlob.arrayBuffer());
// browser fetch or undici
else if (response.body && response.body.getReader) return readerIterator(response.body.getReader()); // cross platform axios
else if (response.data) {
if (response.data.stream) return readerIterator(response.data.stream().getReader());else if (response.data[Symbol.asyncIterator] !== undefined) return streamIterator(response.data);
} // browser cross-fetch
else if (response._bodyBlob) return promiseIterator(response._bodyBlob.arrayBuffer()); // node got
else if (response.readable && response[Symbol.asyncIterator] !== undefined) return streamIterator(response);
/* c8 ignore stop */

@@ -84,0 +87,0 @@

@@ -1,2 +0,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,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}return function(n){if(void 0===n)throw new Error("Missing response for responseIterator");if(n.body&&void 0!==n.body[Symbol.asyncIterator])return i=n.body,u=i[Symbol.asyncIterator](),e({next:function(){return u.next()}},Symbol.asyncIterator,(function(){return this}));if(n.body&&n.body.getReader)return t=n.body.getReader(),e({next:function(){return t.read()}},Symbol.asyncIterator,(function(){return this}));if(n._bodyBlob)return r=n._bodyBlob.arrayBuffer(),o=!1,e({next:function(){return o?Promise.resolve({value:void 0,done:!0}):(o=!0,new Promise((function(e,n){r.then((function(n){e({value:n,done:!1})})).catch(n)})))}},Symbol.asyncIterator,(function(){return this}));var r,o,t,i,u;throw new Error("Unknown body type for responseIterator")}}));
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e="undefined"!=typeof globalThis?globalThis:e||self).responseIterator=r()}(this,(function(){"use strict";function e(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function r(r){var t=r[Symbol.asyncIterator]();return e({next:function(){return t.next()}},Symbol.asyncIterator,(function(){return this}))}function t(r){return e({next:function(){return r.read()}},Symbol.asyncIterator,(function(){return this}))}return function(n){if(void 0===n)throw new Error("Missing response for responseIterator");if(n.body&&void 0!==n.body[Symbol.asyncIterator])return r(n.body);if(n.body&&n.body.getReader)return t(n.body.getReader());if(n.data){if(n.data.stream)return t(n.data.stream().getReader());if(void 0!==n.data[Symbol.asyncIterator])return r(n.data)}else{if(n._bodyBlob)return o=n._bodyBlob.arrayBuffer(),a=!1,e({next:function(){return a?Promise.resolve({value:void 0,done:!0}):(a=!0,new Promise((function(e,r){o.then((function(r){e({value:r,done:!1})})).catch(r)})))}},Symbol.asyncIterator,(function(){return this}));if(n.readable&&void 0!==n[Symbol.asyncIterator])return r(n)}var o,a;throw new Error("Unknown body type for responseIterator")}}));
//# sourceMappingURL=response-iterator.min.js.map
{
"name": "response-iterator",
"description": "Creates an async iterator for a variety of inputs in the browser and node. Supports fetch, node-fetch, and cross-fetch",
"version": "0.1.1",
"version": "0.2.0",
"author": {

@@ -28,4 +28,4 @@ "email": "kmalakoff@gmail.com",

"test:ci": "npm run pretest && nvu engines npm run test:node && npm run test:browser",
"test:debug": "mocha --config .config/mocharc.json \"test/**/*.test.*\"",
"test:node": "mocha --config .config/mocharc.json \"test/exports/*.test.*\" && rimraf coverage && c8 --config .config/c8rc.json mocha --config .config/mocharc.json \"test/unit/*.test.*\"",
"test:debug": "mocha --config .config/mocharc.json \"test/**/*.{test,test-node}.*\"",
"test:node": "mocha --config .config/mocharc.json \"test/exports/*.test.*\" && rimraf coverage && c8 --config .config/c8rc.json mocha --config .config/mocharc.json \"test/unit/*.{test,test-node}.*\"",
"version": "npm run docs && git add docs"

@@ -47,2 +47,3 @@ },

"asyncIterator",
"axios",
"blob",

@@ -53,2 +54,3 @@ "body",

"fetch",
"got",
"isomorphic-fetch",

@@ -61,3 +63,4 @@ "iteration",

"stream",
"typescript"
"typescript",
"undici"
],

@@ -76,2 +79,3 @@ "devDependencies": {

"allow-require-me": "^1.0.0",
"axios": "^0.22.0",
"c8": "^7.10.0",

@@ -87,2 +91,3 @@ "camelcase": "^6.2.0",

"gh-pages": "^3.2.3",
"got": "^11.8.2",
"isomorphic-fetch": "^3.0.0",

@@ -111,2 +116,3 @@ "karma": "^6.3.4",

"typescript": "^4.4.3",
"undici": "^4.7.1",
"webpack": "^5.58.1"

@@ -113,0 +119,0 @@ },

## response-iterator
Creates an async iterator for a variety of inputs in the browser and node. Supports fetch, node-fetch, and cross-fetch
Creates an async iterator for a variety of inputs in the browser and node. Supports fetch, node-fetch, cross-fetch, axios, got, undici.

@@ -20,4 +20,19 @@ ### Example 1

### Example 2
```typescript
import crossFetch from "cross-fetch";
import responseIterator from "response-iterator";
const res = await crossFetch("https://raw.githubusercontent.com/kmalakoff/response-iterator/master/package.json");
let data = "";
for await (const chunk of responseIterator(res)) {
data += chunk;
}
console.log(JSON.parse(data).name); // "response-iterator"
```
### Documentation
[API Docs](https://kmalakoff.github.io/response-iterator/)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc