The stream.finished function is used consolidate the terminal cases.
The writable option must be set to false, since the body stream is
a Duplex stream, but our terminal cases only apply to the Readable side.
There is a single timeout option which applies to both the receiving of
response headers and the receiving of the entire response body. Once
the response is received, the socket timeout must be cleared to allow
the timeout to apply to the receiving of the entire response body.
Without clearing the socket timeout, if the nearing the idle timeout
when the Promise for the body is created, then the request's timeout
handler will abort the request, emitting ERR_STREAM_PREMATURE_CLOSE in
the body Promise.
By clearing the socket timeout once the response headers are received,
the timeout for the entire body can be started when the body is awaited.
Since the request will no longer be aborted by the socket timeout,
destroy is called on the body to prevent it continuing to emit data
events.
* fix question mark stripped from url when no params are given (#776)
* add more tests
* whitespace
* modify the server to handle the new tests
Co-authored-by: dzek69 <[email protected]>
* feat: Migrate TypeScript types (#669)
* style: Introduce linting via XO
* fix: Fix tests
* chore!: Drop support for nodejs 4 and 6
* chore: Fix Travis CI yml
* Use old Babel (needs migration)
* chore: lint everything
* chore: Migrate to microbundle
* Default response.statusText should be blank (#578)
* fix: Use correct AbortionError message
Signed-off-by: Richie Bendall <[email protected]>
* chore: Use modern @babel/register
Signed-off-by: Richie Bendall <[email protected]>
* chore: Remove redundant packages
Signed-off-by: Richie Bendall <[email protected]>
* chore: Readd form-data
Signed-off-by: Richie Bendall <[email protected]>
* fix: Fix tests and force utf8-encoded urls
Signed-off-by: Richie Bendall <[email protected]>
* lint index.js
* Update devDependencies & ignore `test` directory in linter options
* Remove unnecessary eslint-ignore comment
* Update the `lint` script to run linter on every file
* Remove unused const & unnecessary import
* TypeScript: Fix Body.blob() wrong type (DefinitelyTyped/DefinitelyTyped#33721)
* chore: Lint as part of the build process
* fix: Convert Content-Encoding to lowercase (#672)
* fix: Better object checks (#673)
* Fix stream piping (#670)
* chore: Remove useless check
Signed-off-by: Richie Bendall <[email protected]>
* style: Fix lint
Signed-off-by: Richie Bendall <[email protected]>
* style: Fix lint
Signed-off-by: Richie Bendall <[email protected]>
* refactor: Modernise code
Signed-off-by: Richie Bendall <[email protected]>
* chore: Ensure all files are properly included
Signed-off-by: Richie Bendall <[email protected]>
* chore: Update deps and utf8 should be in dependencies
Signed-off-by: Richie Bendall <[email protected]>
* test: Drop Node v4 from tests
Signed-off-by: Richie Bendall <[email protected]>
* test: Modernise code
Signed-off-by: Richie Bendall <[email protected]>
* chore: Move errors to seperate directory
Signed-off-by: Richie Bendall <[email protected]>
* refactor: Add fetch-blob (#678)
* feat: Migrate data uri integration
Signed-off-by: Richie Bendall <[email protected]>
* Allow setting custom highWaterMark via node-fetch options (#386) (#671)
* Expose highWaterMark option to body clone function
* Add highWaterMark to responseOptions
* Add highWaterMark as node-fetch-only option
* a way to silently pass highWaterMark to clone
* Chai helper
* Server helper
* Tests
* Remove debug comments
* Document highWaterMark option
* Add TypeScript types for the new highWaterMark option
* feat: Include system error in FetchError if one occurs (#654)
* style: Add editorconfig
Signed-off-by: Richie Bendall <[email protected]>
* chore!: Drop NodeJS v8
Signed-off-by: Richie Bendall <[email protected]>
* chore: Remove legacy code for node < 8
Signed-off-by: Richie Bendall <[email protected]>
* chore: Use proper checks for ArrayBuffer and AbortError
Signed-off-by: Richie Bendall <[email protected]>
* chore: Use explicitly set error name in checks
Signed-off-by: Richie Bendall <[email protected]>
* Propagate size and timeout to cloned response (#664)
* Remove --save option as it isn't required anymore (#581)
* Propagate size and timeout to cloned response
Co-authored-by: Steve Moser <[email protected]>
Co-authored-by: Antoni Kepinski <[email protected]>
* Update Response types
* Update devDependencies
* feat: Fallback to blob type (Closes: #607)
Signed-off-by: Richie Bendall <[email protected]>
* style: Update formatting
Signed-off-by: Richie Bendall <[email protected]>
* style: Fix linting issues
Signed-off-by: Richie Bendall <[email protected]>
* docs: Add info on patching the global object
* docs: Added non-globalThis polyfill
* Replace deprecated `url.resolve` with the new WHATWG URL
* Update devDependencies
* Format code in examples to use `xo` style
* Verify examples with RunKit and edit them if necessary
* Add information about TypeScript support
* Document the new `highWaterMark` option
* Add Discord badge & information about Open Collective
* Style change
* Edit acknowledgement & add "Team" section
* fix table
* Format example code to use xo style
* chore: v3 release changelog
* Add the recommended way to fix `highWaterMark` issues
* docs: Add simple Runkit example
* fix: Properly set the name of the errors.
Signed-off-by: Richie Bendall <[email protected]>
* docs: Add AbortError to documented types
Signed-off-by: Richie Bendall <[email protected]>
* docs: AbortError proper typing parameters
Signed-off-by: Richie Bendall <[email protected]>
* docs: Add example code for Runkit
Signed-off-by: Richie Bendall <[email protected]>
* Replace microbundle with @pika/pack (#689)
* gitignore the pkg/ directory
* Move TypeScript types to the root of the project
* Replace microbundle with @pika/pack
* chore: Remove @pika/plugin-build-web and revert ./dist output directory
Signed-off-by: Richie Bendall <[email protected]>
Co-authored-by: Richie Bendall <[email protected]>
* fix incorrect statement in changelog
* chore: v3.x upgrade guide
* Change the Open Collective button
* docs: Encode support button as Markdown instead of HTML
* chore: Ignore proper directory in xo
* Add an "Upgrading" section to readme
* Split the upgrade guide into 2 files & add the missing changes about v3.x
* style: Lint test and example files
Signed-off-by: Richie Bendall <[email protected]>
* Move *.md files to the `docs` folder (except README.md)
* Update references to files
* Split LIMITS.md into 2 files (as of v2.x and v3.x)
* chore: Remove logging statement
Signed-off-by: Richie Bendall <[email protected]>
* style: Fix lint
* docs: Correct typings for systemError in FetchError (Fixes#697)
* refactor: Replace `encoding` with `fetch-charset-detection`. (#694)
* refactor: Replace `encoding` with `fetch-charset-detection`.
Signed-off-by: Richie Bendall <[email protected]>
* refactor: Move writing to stream back to body.js
Signed-off-by: Richie Bendall <[email protected]>
* refactor: Only put convertBody in fetch-charset-detection and refactor others.
Signed-off-by: Richie Bendall <[email protected]>
* test: Readd tests for getTotalBytes and extractContentType
Signed-off-by: Richie Bendall <[email protected]>
* chore: Revert package.json indention
Signed-off-by: Richie Bendall <[email protected]>
* chore: Remove optional dependency
* docs: Replace code for fetch-charset-detection with documentation.
Signed-off-by: Richie Bendall <[email protected]>
* chore: Remove iconv-lite
* fix: Use default export instead of named export for convertBody
Signed-off-by: Richie Bendall <[email protected]>
* chore: Remove unneeded installation of fetch-charset-detection in the build
* docs: Fix typo
* fix: Throw SyntaxError instead of FetchError in case of invalid… (#700)
* fix: Throw SyntaxError instead of FetchError in case of invalid JSON
Signed-off-by: Richie Bendall <[email protected]>
* docs: Add to upgrade guide
Signed-off-by: Richie Bendall <[email protected]>
* Remove deprecated url.parse from test
* Remove deprecated url.parse from server
* fix: Proper data uri to buffer conversion (#703)
Signed-off-by: Richie Bendall <[email protected]>
* chore: Add funding info
* fix: Flawed property existence test (#706)
Fix a problem where not all prototype methods are copied from the Body via the mixin method due to a failure to properly detect properties in the target. The current code uses the `in` operator, which may return properties lower down the inheritance chain, thus causing them to fail the copy. The new code properly calls the `.hasOwnProperty()` method to make the determination.
* fix: Properly handle stream pipeline double-fire
Signed-off-by: Richie Bendall <[email protected]>
* docs: Fix spelling
Signed-off-by: Richie Bendall <[email protected]>
* chore: Add `funding` field to package.json (#708)
* Fix: Do not set ContentLength to NaN (#709)
* do not set ContentLength to NaN
* lint
* docs: Add logo
Signed-off-by: Richie Bendall <[email protected]>
* chore: Update repository name from bitinn/node-fetch to node-fetch/node-fetch.
Signed-off-by: Richie Bendall <[email protected]>
* chore: Fix unit tests
Signed-off-by: Richie Bendall <[email protected]>
* chore(deps): Bump @pika/plugin-copy-assets from 0.7.1 to 0.8.1 (#713)
Bumps [@pika/plugin-copy-assets](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* chore(deps): Bump @pika/plugin-build-types from 0.7.1 to 0.8.1 (#710)
Bumps [@pika/plugin-build-types](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* Bump nyc from 14.1.1 to 15.0.0 (#714)
Bumps [nyc](https://github.com/istanbuljs/nyc) from 14.1.1 to 15.0.0.
- [Release notes](https://github.com/istanbuljs/nyc/releases)
- [Changelog](https://github.com/istanbuljs/nyc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/istanbuljs/nyc/compare/v14.1.1...v15.0.0)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* chore: Update travis ci url
Signed-off-by: Richie Bendall <[email protected]>
* chore(deps): Bump mocha from 6.2.2 to 7.0.0 (#711)
Bumps [mocha](https://github.com/mochajs/mocha) from 6.2.2 to 7.0.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v6.2.2...v7.0.0)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* feat: Allow excluding a user agent in a fetch request by setting… (#715)
Signed-off-by: Richie Bendall <[email protected]>
* Bump @pika/plugin-build-node from 0.7.1 to 0.8.1 (#717)
Bumps [@pika/plugin-build-node](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* Bump @pika/plugin-standard-pkg from 0.7.1 to 0.8.1 (#716)
Bumps [@pika/plugin-standard-pkg](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* Bump form-data from 2.5.1 to 3.0.0 (#712)
Bumps [form-data](https://github.com/form-data/form-data) from 2.5.1 to 3.0.0.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Commits](https://github.com/form-data/form-data/compare/v2.5.1...v3.0.0)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* fix: typo
* update suggestion
* feat: Added missing redirect function (#718)
* added missing redirect function
* chore: Add types
Co-authored-by: Richie Bendall <[email protected]>
* fix: Use req.setTimeout for timeout (#719)
* chore: Update typings comment
Signed-off-by: Richie Bendall <[email protected]>
* chore: Update deps
Signed-off-by: Richie Bendall <[email protected]>
* docs: center badges & Open Collective button
* docs: add missing comma
* Remove current stable & LTS node version numbers from the comments
I don't think we really want to update them
* Bump xo from 0.25.4 to 0.26.1 (#730)
Bumps [xo](https://github.com/xojs/xo) from 0.25.4 to 0.26.1.
- [Release notes](https://github.com/xojs/xo/releases)
- [Commits](https://github.com/xojs/xo/compare/v0.25.4...v0.26.1)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* Bump @pika/plugin-build-types from 0.8.3 to 0.9.2 (#729)
Bumps [@pika/plugin-build-types](https://github.com/pikapkg/builders) from 0.8.3 to 0.9.2.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.8.3...v0.9.2)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* Bump @pika/plugin-standard-pkg from 0.8.3 to 0.9.2 (#726)
Bumps [@pika/plugin-standard-pkg](https://github.com/pikapkg/builders) from 0.8.3 to 0.9.2.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.8.3...v0.9.2)
Signed-off-by: dependabot-preview[bot] <[email protected]>
* docs: Update information about `req.body` type in v3.x release
* Add information about removed body type to the v3 upgrade guide
* add awesome badge
* Show 2 ways of importing node-fetch (CommonJS & ES module)
* update dependencies
* lint
* refactor: Replace `url.parse` with `new URL()` (#701)
* chore: replace `url.parse` with `new URL()`
* lint
* handle relative URLs
* Change error message
* detect whether the url is absolute or not
* update tests
* drop relative url support
* lint
* fix tests
* typo
* Add information about dropped arbitrary URL support in v3.x upgrade guide
* set xo linting rule (node/no-deprecated-api) to on
* remove the `utf8` dependency
* fix
* refactor: split tests into several files, create the `utils` directory
* Update package.json scripts & remove unnecessary xo linting rules
* refactor: turn on some xo linting rules to improve code quality
* fix tests
* Remove invalid urls
* fix merge conflict
* update the upgrade guide
* test if URLs are encoded as UTF-8
* update xo to 0.28.0
* chore: Build before publishing
* v3.0.0-beta.1
* fix lint on test/main.js
Co-authored-by: Richie Bendall <[email protected]>
Co-authored-by: Antoni Kepinski <[email protected]>
Co-authored-by: aeb-sia <[email protected]>
Co-authored-by: Nazar Mokrynskyi <[email protected]>
Co-authored-by: Steve Moser <[email protected]>
Co-authored-by: Erick Calder <[email protected]>
Co-authored-by: Yaacov Rydzinski <[email protected]>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Jimmy Wärting <[email protected]>