{"_id":"react-native-fetch-api","_rev":"4576698","name":"react-native-fetch-api","description":"A fetch API polyfill for React Native with text streaming support.","dist-tags":{"latest":"3.0.0"},"maintainers":[{"name":"acostalima","email":"andreclima.pt@gmail.com"}],"time":{"modified":"2026-04-10T15:45:02.000Z","created":"2021-01-25T15:42:43.334Z","3.0.0":"2021-08-02T20:13:22.198Z","2.0.0":"2021-06-28T10:10:39.992Z","1.0.2":"2021-01-31T21:26:48.130Z","1.0.1":"2021-01-25T16:56:30.730Z","1.0.0":"2021-01-25T15:42:43.334Z"},"users":{},"author":{"name":"André Costa Lima","email":"andreclima.pt@gmail.com","url":"https://github.com/acostalima/"},"repository":{"type":"git","url":"git+https://github.com/react-native-community/fetch.git"},"versions":{"3.0.0":{"name":"react-native-fetch-api","description":"A fetch API polyfill for React Native with text streaming support.","version":"3.0.0","main":"fetch.js","author":{"name":"André Costa Lima","email":"andreclima.pt@gmail.com","url":"https://github.com/acostalima/"},"repository":{"type":"git","url":"git+https://github.com/react-native-community/fetch.git"},"license":"MIT","keywords":["react-native","fetch","stream"],"devDependencies":{"@babel/core":"^7.12.3","@babel/eslint-parser":"^7.12.1","@babel/eslint-plugin":"^7.12.1","@babel/plugin-syntax-class-properties":"^7.12.1","@babel/preset-flow":"^7.12.1","@commitlint/cli":"^11.0.0","@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0","conventional-github-releaser":"^3.1.5","delay":"^4.4.0","eslint":"^6.5.1","eslint-config-prettier":"^6.15.0","eslint-plugin-flowtype":"^5.2.0","execa":"^5.0.0","flow-bin":"^0.136.0","husky":"^4.3.7","lint-staged":"^10.5.3","querystring":"^0.2.0","react-native-polyfill-globals":"^2.0.0","react-native-test-runner":"^5.0.0","react-native-url-polyfill":"^1.2.0","standard-version":"^9.1.0","text-encoding":"^0.7.0","web-streams-polyfill":"^3.0.1","zora":"^4.0.2"},"scripts":{"flow":"flow","lint":"eslint --cache --ignore-path .gitignore .","test:ios":"./run-tests.js --platform ios test/index.js","test:android":"./run-tests.js --platform android test/index.js","release":"standard-version","postrelease":"git push --follow-tags origin HEAD && conventional-github-releaser -p angular"},"dependencies":{"p-defer":"^3.0.0"},"gitHead":"ca8b7df212da92fa63542e6ab8c1b1643a8e6c4a","bugs":{"url":"https://github.com/react-native-community/fetch/issues"},"homepage":"https://github.com/react-native-community/fetch#readme","_id":"react-native-fetch-api@3.0.0","_nodeVersion":"15.10.0","_npmVersion":"7.5.3","dist":{"shasum":"81e1bb6562c292521bc4eca52fe1097f4c1ebab5","size":11619,"noattachment":false,"key":"/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-native-fetch-api/download/react-native-fetch-api-3.0.0.tgz"},"_npmUser":{"name":"acostalima","email":"andreclima.pt@gmail.com"},"directories":{},"maintainers":[{"name":"acostalima","email":"andreclima.pt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-fetch-api_3.0.0_1627935202048_0.8221541747205963"},"_hasShrinkwrap":false,"publish_time":1627935202198,"_cnpm_publish_time":1627935202198,"_cnpmcore_publish_time":"2021-12-16T13:35:33.845Z"},"2.0.0":{"name":"react-native-fetch-api","description":"A fetch API polyfill for React Native with text streaming support.","version":"2.0.0","main":"fetch.js","author":{"name":"André Costa Lima","email":"andreclima.pt@gmail.com","url":"https://github.com/acostalima/"},"repository":{"type":"git","url":"git+https://github.com/react-native-community/fetch.git"},"license":"MIT","keywords":["react-native","fetch","stream"],"devDependencies":{"@babel/core":"^7.12.3","@babel/eslint-parser":"^7.12.1","@babel/eslint-plugin":"^7.12.1","@babel/plugin-syntax-class-properties":"^7.12.1","@babel/preset-flow":"^7.12.1","@commitlint/cli":"^11.0.0","@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0","conventional-github-releaser":"^3.1.5","delay":"^4.4.0","eslint":"^6.5.1","eslint-config-prettier":"^6.15.0","eslint-plugin-flowtype":"^5.2.0","execa":"^5.0.0","flow-bin":"^0.136.0","husky":"^4.3.7","lint-staged":"^10.5.3","querystring":"^0.2.0","react-native-polyfill-globals":"^2.0.0","react-native-test-runner":"^5.0.0","react-native-url-polyfill":"^1.2.0","standard-version":"^9.1.0","text-encoding":"^0.7.0","web-streams-polyfill":"^3.0.1","zora":"^4.0.2"},"scripts":{"flow":"flow","lint":"eslint --cache --ignore-path .gitignore .","test:ios":"./run-tests.js --platform ios test/index.js","test:android":"./run-tests.js --platform android test/index.js","release":"standard-version","postrelease":"git push --follow-tags origin HEAD && conventional-github-releaser -p angular"},"dependencies":{"p-defer":"^3.0.0"},"gitHead":"74f6a96ba1d720e6effd42ee9a47655b44ec9e3b","bugs":{"url":"https://github.com/react-native-community/fetch/issues"},"homepage":"https://github.com/react-native-community/fetch#readme","_id":"react-native-fetch-api@2.0.0","_nodeVersion":"15.10.0","_npmVersion":"7.5.3","dist":{"shasum":"c4af188b4fce3f3eaf1f1ff4e61dae1a00d4ffa0","size":11889,"noattachment":false,"key":"/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-native-fetch-api/download/react-native-fetch-api-2.0.0.tgz"},"_npmUser":{"name":"acostalima","email":"andreclima.pt@gmail.com"},"directories":{},"maintainers":[{"name":"acostalima","email":"andreclima.pt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-fetch-api_2.0.0_1624875039884_0.509390720614324"},"_hasShrinkwrap":false,"publish_time":1624875039992,"_cnpm_publish_time":1624875039992,"_cnpmcore_publish_time":"2021-12-16T13:35:34.138Z"},"1.0.2":{"name":"react-native-fetch-api","description":"A fetch API polyfill for React Native with text streaming support.","version":"1.0.2","main":"fetch.js","author":{"name":"André Costa Lima","email":"andreclima.pt@gmail.com","url":"https://github.com/acostalima/"},"repository":{"type":"git","url":"git+https://github.com/react-native-community/fetch.git"},"license":"MIT","keywords":["react-native","fetch","stream"],"devDependencies":{"@babel/core":"^7.12.3","@babel/eslint-parser":"^7.12.1","@babel/eslint-plugin":"^7.12.1","@babel/plugin-syntax-class-properties":"^7.12.1","@babel/preset-flow":"^7.12.1","@commitlint/cli":"^11.0.0","@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0","conventional-github-releaser":"^3.1.5","delay":"^4.4.0","eslint":"^6.5.1","eslint-config-prettier":"^6.15.0","eslint-plugin-flowtype":"^5.2.0","execa":"^5.0.0","flow-bin":"^0.136.0","husky":"^4.3.7","lint-staged":"^10.5.3","querystring":"^0.2.0","react-native-polyfill-globals":"^2.0.0","react-native-test-runner":"^2.0.0","react-native-url-polyfill":"^1.2.0","standard-version":"^9.1.0","text-encoding":"^0.7.0","web-streams-polyfill":"^3.0.1","zora":"^4.0.2"},"scripts":{"flow":"flow","lint":"eslint --cache --ignore-path .gitignore .","test:ios":"./run-tests.js --platform ios --simulator 'iPhone 11 (14.1)' test/index.js","test:android":"./run-tests.js --platform android --emulator Pixel_API_28_AOSP test/index.js","release":"standard-version","postrelease":"git push --follow-tags origin HEAD && conventional-github-releaser -p angular"},"dependencies":{"p-defer":"^3.0.0"},"peerDependencies":{"react-native":">=0.62"},"gitHead":"42c5bc5471034456d1e5a3b53c81e117160220d9","bugs":{"url":"https://github.com/react-native-community/fetch/issues"},"homepage":"https://github.com/react-native-community/fetch#readme","_id":"react-native-fetch-api@1.0.2","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"shasum":"14acda0049f554625b96486d4a87a1c3e8448b59","size":11762,"noattachment":false,"key":"/react-native-fetch-api/-/react-native-fetch-api-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-native-fetch-api/download/react-native-fetch-api-1.0.2.tgz"},"_npmUser":{"name":"acostalima","email":"andreclima.pt@gmail.com"},"directories":{},"maintainers":[{"name":"acostalima","email":"andreclima.pt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-fetch-api_1.0.2_1612128407989_0.6240760549683584"},"_hasShrinkwrap":false,"publish_time":1612128408130,"_cnpm_publish_time":1612128408130,"_cnpmcore_publish_time":"2021-12-16T13:35:35.170Z"},"1.0.1":{"name":"react-native-fetch-api","description":"A fetch API polyfill for React Native with text streaming support.","version":"1.0.1","main":"fetch.js","author":{"name":"André Costa Lima","email":"andreclima.pt@gmail.com","url":"https://github.com/acostalima/"},"repository":{"type":"git","url":"git+https://github.com/react-native-community/fetch.git"},"license":"MIT","keywords":["react-native","fetch","stream"],"devDependencies":{"@babel/core":"^7.12.3","@babel/eslint-parser":"^7.12.1","@babel/eslint-plugin":"^7.12.1","@babel/plugin-syntax-class-properties":"^7.12.1","@babel/preset-flow":"^7.12.1","@commitlint/cli":"^11.0.0","@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0","conventional-github-releaser":"^3.1.5","delay":"^4.4.0","eslint":"^6.5.1","eslint-config-prettier":"^6.15.0","eslint-plugin-flowtype":"^5.2.0","execa":"^5.0.0","flow-bin":"^0.136.0","husky":"^4.3.7","lint-staged":"^10.5.3","querystring":"^0.2.0","react-native-polyfill-globals":"^2.0.0","react-native-test-runner":"^2.0.0","react-native-url-polyfill":"^1.2.0","standard-version":"^9.1.0","text-encoding":"^0.7.0","web-streams-polyfill":"^3.0.1","zora":"^4.0.2"},"scripts":{"flow":"flow","lint":"eslint --cache --ignore-path .gitignore .","test:ios":"./run-tests.js --platform ios --simulator 'iPhone 11 (14.1)' test/index.js","test:android":"./run-tests.js --platform android --emulator Pixel_API_28_AOSP test/index.js","release":"standard-version","postrelease":"git push --follow-tags origin HEAD && conventional-github-releaser -p angular"},"dependencies":{"p-defer":"^3.0.0"},"peerDependencies":{"react-native":">=0.62"},"gitHead":"e445e649c05a3515d00feb75016f44abf5e89464","bugs":{"url":"https://github.com/react-native-community/fetch/issues"},"homepage":"https://github.com/react-native-community/fetch#readme","_id":"react-native-fetch-api@1.0.1","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"shasum":"d60046ff5d2e2d5e5a6db11e5cfc392f17c560fb","size":11513,"noattachment":false,"key":"/react-native-fetch-api/-/react-native-fetch-api-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-native-fetch-api/download/react-native-fetch-api-1.0.1.tgz"},"_npmUser":{"name":"acostalima","email":"andreclima.pt@gmail.com"},"directories":{},"maintainers":[{"name":"acostalima","email":"andreclima.pt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-fetch-api_1.0.1_1611593790641_0.6962048680847579"},"_hasShrinkwrap":false,"publish_time":1611593790730,"_cnpm_publish_time":1611593790730,"_cnpmcore_publish_time":"2021-12-16T13:35:35.416Z"},"1.0.0":{"name":"react-native-fetch-api","description":"A fetch API polyfill for React Native with text streaming support.","version":"1.0.0","main":"fetch.js","author":{"name":"André Costa Lima","email":"andreclima.pt@gmail.com","url":"https://github.com/acostalima/"},"repository":{"type":"git","url":"git+https://github.com/react-native-community/fetch.git"},"license":"MIT","keywords":["react-native","fetch","stream"],"devDependencies":{"@babel/core":"^7.12.3","@babel/eslint-parser":"^7.12.1","@babel/eslint-plugin":"^7.12.1","@babel/plugin-syntax-class-properties":"^7.12.1","@babel/preset-flow":"^7.12.1","@commitlint/cli":"^11.0.0","@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0","conventional-github-releaser":"^3.1.5","delay":"^4.4.0","eslint":"^6.5.1","eslint-config-prettier":"^6.15.0","eslint-plugin-flowtype":"^5.2.0","execa":"^5.0.0","flow-bin":"^0.136.0","husky":"^4.3.7","lint-staged":"^10.5.3","querystring":"^0.2.0","react-native-polyfill-globals":"^1.0.7","react-native-test-runner":"^2.0.0","standard-version":"^9.1.0","zora":"^4.0.2"},"scripts":{"flow":"flow","lint":"eslint --cache --ignore-path .gitignore .","test:ios":"./run-tests.js --platform ios --simulator 'iPhone 11 (14.1)' test/index.js","test:android":"./run-tests.js --platform android --emulator Pixel_API_28_AOSP test/index.js","release":"standard-version","postrelease":"git push --follow-tags origin HEAD && conventional-github-releaser -p angular"},"dependencies":{"p-defer":"^3.0.0"},"peerDependencies":{"react-native":">=0.62"},"gitHead":"fd750a04f3eb6683dbf1c61669f9dd88eec0fcb4","bugs":{"url":"https://github.com/react-native-community/fetch/issues"},"homepage":"https://github.com/react-native-community/fetch#readme","_id":"react-native-fetch-api@1.0.0","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"shasum":"c2549269ed28b5a5b18a2a82cfa53c5e4d36429b","size":11378,"noattachment":false,"key":"/react-native-fetch-api/-/react-native-fetch-api-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-native-fetch-api/download/react-native-fetch-api-1.0.0.tgz"},"_npmUser":{"name":"acostalima","email":"andreclima.pt@gmail.com"},"directories":{},"maintainers":[{"name":"acostalima","email":"andreclima.pt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-fetch-api_1.0.0_1611589363205_0.7917620129883103"},"_hasShrinkwrap":false,"publish_time":1611589363334,"_cnpm_publish_time":1611589363334,"_cnpmcore_publish_time":"2021-12-16T13:35:35.697Z"}},"readme":"# fetch\n\n[![npm version][npm-image]][npm-url] [![ci][github-ci-image]][github-ci-url]\n\n[npm-url]:https://www.npmjs.com/package/react-native-fetch-api\n[npm-image]:https://img.shields.io/npm/v/react-native-fetch-api.svg\n[github-ci-url]:https://github.com/react-native-community/fetch/actions\n[github-ci-image]:https://github.com/react-native-community/fetch/workflows/Node%20CI/badge.svg\n\n> A fetch API polyfill for React Native with text streaming support\n\nThis is a fork of GitHub's fetch [polyfill](https://github.com/github/fetch), the fetch implementation React Native currently [provides](https://github.com/facebook/react-native/blob/master/Libraries/Network/fetch.js). This project features an alternative fetch implementation directy built on top of React Native's [Networking API](https://github.com/facebook/react-native/tree/master/Libraries/Network) instead of `XMLHttpRequest` for performance gains. At the same time, it aims to fill in some gaps of the [WHATWG specification](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) for fetch, namely the support for text streaming.\n\nIn practice, this implementation is a drop-in replacement to GitHub's polyfill as it closely follows its implementation. Do not use this implementation if your application does not require to stream text.\n\n## Motivation\n\nGitHub's fetch polyfill, originally designed with the intention to be used in web browsers without support for the fetch standard, most notably does not support the consumption of a response body as a stream.\n\nHowever, as React Native does not yet provide direct access to the underlying byte stream for responses, we either have to fallback to [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) or React Native's networking API for [iOS](https://github.com/facebook/react-native/blob/v0.63.4/Libraries/Network/RCTNetworking.ios.js) and [Android](https://github.com/facebook/react-native/blob/v0.63.4/Libraries/Network/RCTNetworking.android.js). Currently, only strings can be transfered through the bridge, thus binary data has to be base64-encoded ([source](https://github.com/react-native-community/discussions-and-proposals/issues/107)) and while React Native's XHR provides [progress events](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/progress_event) to receive incremental data, it concatenates the response string as data comes in. Although [very inefficient](https://github.com/jonnyreeves/fetch-readablestream/blob/cabccb98788a0141b001e6e775fc7fce87c62081/src/defaultTransportFactory.js#L33), the response can be sliced up, each chunk encoded into its UTF-8 representation with [TextEncoder](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder) and finally enqueued to the stream.\n\nInstead of relying on `XMLHttpRequest`, which degrades performance, we remove it out of the equation and have fetch interact with React Native's Networking API directly instead. To make `Response.body` work, `ReadableStream`'s controller was integrated with native progress events. It's important to stress that progress events are only fired when the native response type is set to `text` (https://github.com/facebook/react-native/blob/v0.63.4/Libraries/Network/RCTNetworking.mm#L544-L547), therefore limiting streaming to text-only transfers. If you wish to consume binary data, either `blob` or `base64` response types have to be used. In this case, the downside is that the final response body is read as a whole and enqueued to the stream's controller as a single chunk. There is no way to read a partial response of a binary transfer.\n\nFor more context, read the following:\n- https://github.com/github/fetch/issues/746\n- https://github.com/facebook/react-native/issues/27741\n- https://hpbn.co/xmlhttprequest/#streaming-data-with-xhr\n\nRelated:\n- https://github.com/react-native-community/discussions-and-proposals/issues/99\n\n## Requirements\n\nReact Native v0.62.0+ is the minimum version supported where the [Networking API has been made public](https://github.com/facebook/react-native/commit/42ee5ec93425c95dee6125a6ff6864ec647636aa).\n\nThis implementation depends on the following web APIs which are not currently available in React Native:\n\n- [`TextEncoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder) \n- [`TextDecoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextDecoder)\n- [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)\n\nIt should be possible remove the dependency on `TextEncoder` and `TextDecoder`, but not on `ReadableStream`. Either way, beware the bundle size of your application will inevitable increase.\n\nTo polyfill the above APIs, use [react-native-polyfill-globals](https://github.com/acostalima/react-native-polyfill-globals).\n\n## Install\n\n```\n$ npm install react-native-fetch-api --save\n```\n\n## Setup\n\nThe APIs provided by GitHub's implementation in React Native  have to be replaced by those provided by this implementation. To do so, check and install [react-native-polyfill-globals](https://github.com/acostalima/react-native-polyfill-globals) and follow the instructions therein.\n\n## Usage\n\nNo need to import anything after the [setup](#setup) is done. All APIs will be available globally.\n\nExample:\n\n```js\nfetch('https://jsonplaceholder.typicode.com/todos/1')\n  .then(response => response.json())\n  .then(json => console.log(json))\n```\n\nCheck fetch's [official documentation](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to learn more about the concepts and extended usage.\n\n### Enable text streaming\n\nA non-standard option was added to `fetch` to enable incremental events in React Native's networking layer.\n\n```js\nfetch('https://jsonplaceholder.typicode.com/todos/1', { reactNative: { textStreaming: true } })\n  .then(response => response.body)\n  .then(stream => ...)\n```\n### Aborting requests\n\nIt's possible to [abort an on-going request](https://developers.google.com/web/updates/2017/09/abortable-fetch) and React Native already supports [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController), so there is no need for a polyfill.\n\n```js\nconst controller = new AbortController();\n\nfetch('https://jsonplaceholder.typicode.com/todos/1', { signal: controller.signal })\n  .then(response => response.json())\n  .then(json => console.log(json))\n```\n\nLearn more about aborting fetch at https://developers.google.com/web/updates/2017/09/abortable-fetch.\n\n### Cookies\n\nThere is no concept of Cross-Origin Resource Sharing (CORS) in native apps. React Native only accepts a boolean value for the [`credentials`](https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials) option. As such, to send cookies you can either use `same-origin` and `include`.\n\nThe `Set-Cookie` response header returned from the server is a [forbidden header name](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name) and therefore can't be programmatically read with `response.headers.get()`. Instead, the platform's native networking stack automatically manages cookies for you.\n\nIf you run into issues with cookie-based authentication, read the following:\n- https://reactnative.dev/docs/network#known-issues-with-fetch-and-cookie-based-authentication\n- https://build.affinity.co/persisting-sessions-with-react-native-4c46af3bfd83\n- https://medium.com/locastic/react-native-cookie-based-authentication-80ee18f4c71b\n\nAlternatively, you may consider using the [react-native-cookies](https://github.com/react-native-cookies/cookies).\n\n### Request caching directive\n\nThe only values supported for the [`cache`](https://developer.mozilla.org/en-US/docs/Web/API/Request/cache) option are `no-cache` and `no-store` and Both achieve exactly the same result. All other values are ignored. Following GitHub's implementation, a cache-busting mechanism is provided by using the query parameter `_` which holds the number of milliseconds elapsed since the Epoch when either `no-cache` or `no-store` are specified.\n\n### Redirect modes directive\n\nThe fetch specification defines these values for the [`redirect`](https://developer.mozilla.org/en-US/docs/Web/API/Request/redirect) option: `follow` (the default), `error`, and `manual`. React Native does not accept such option but it does transparently follow a redirect response given the `Location` header for 30x status codes.\n\n## Tests\n\nTo run the test suite, you must use [`react-native-test-runner`](https://github.com/acostalima/react-native-test-runner) CLI. Run the `run-tests.js` wrapper script to spin up a local HTTP server to execute the networking tests against.\n\n### iOS\n\n```\n$ ./run-tests.js --platform ios --simulator '<simulator>' test/index.js \n```\n\nWhere `<simulator>` can be a combination of a device type and iOS version, e.g. `iPhone 11 (14.1)`, or a device UUID.\nCheck which simulators are available in your system by running the following command:\n\n```\n$ xcrun xctrace list devices\n```\n\n### Android\n\n```\n$ ./run-tests.js --platform android --emulator '<emulator>' test/index.js \n```\n\nWhere `<emulator>` is the name of the Android Virtual Device (AVD), e.g. `Pixel_API_28_AOSP`.\nCheck which emulators are available in your system by running the following command:\n\n```\n$ emulator -list-avds\n```\n\n","_attachments":{},"homepage":"https://github.com/react-native-community/fetch#readme","bugs":{"url":"https://github.com/react-native-community/fetch/issues"},"license":"MIT"}