Commit Graph

64 Commits

Author SHA1 Message Date
Antoni Kepinski b50fbc1057
Require Node.js 12.20.0 and move to ESM (#1141)
* Use ESM import in runkit example file

* Update dependencies, version and transition to ESM

* Use ESM imports, add ESM-related info

* Remove rollup

* Lint TypeScript-related files

* Update dependency

* Lint & update dependency

* Lint

* Remove commonjs tests

* chore: update changelog

* Remove commonjs GitHub action

* Update funding.yml

* Update linter rules

* Lint

* Fix tsd

* Remove unnecessary types

* Simplify

* Use top-level await

* Update GitHub Actions

* Use Mocha with ESM

* Revamp

* specify what node version

* update formdata-node dep

* remove lint from example using top await

* updated name and link to formdata-polyfill

* Stop recommend form-data

* filter example - it has many duplicate variables

* Update type definitions to ESM

* Remove unused lint rule disable comment

* Remove leftover rollup and dist folder

* updated depn

* updated d.ts

* lint

* Fix breaking changes with blob v3 stream()

* revert eslint comment

* revert back to xo 0.39

Don't want to deal with all those new rules right now. will fix it later
fixed some of them...

* none TS fan trying to fix type definition

* Give me a break

* Test on all minimum supported Node.js versions (#1170)

* Test on all minimum supported Node.js versions

* Tweak Node.js workaround version range

* Handle Node.js 16 aborted error message

* fix node version string compare

Co-authored-by: Jimmy Wärting <[email protected]>

* bumped fetch-blob version

* import from dom lib

* rm unused comment

* updated required version in docs

* fixed named import

* set lowest support to 12.20.0

* comment explaining both

* rm log

Co-authored-by: Jimmy Wärting <[email protected]>
Co-authored-by: Linus Unnebäck <[email protected]>
2021-07-18 22:15:19 +02:00
Travis D. Warlick, Jr 8eeeec18c1
Fix premature close with chunked transfer encoding and for async iterators in Node 12 (#1064)
Co-authored-by: Irakli Gozalishvili <[email protected]>
2021-02-23 07:14:09 +00:00
Travis D. Warlick, Jr cb032ea44f
Throw a `TypeError` on an invalid redirect option (#1019) 2021-01-01 18:38:44 +13:00
Travis D. Warlick, Jr 5c657e7990
Fix missing return after reject (#1022)
The bad Location header is escaped by the URL module, so any "corrupted" headers become valid or otherwise cause errors earlier in processing
2021-01-01 18:38:11 +13:00
Jimmy Wärting cbd4d89576
Minor optimization (#956) 2020-09-18 12:33:15 +02:00
Antoni Kepinski eaff0094c4
Honor the `size` option after following a redirect 2020-09-05 14:44:41 +02:00
Konstantin Vyatkin 8f406b789a
chore: remove code duplication in custom errors (#842)
* remove code duplication in custom errors

* check using base class
2020-06-10 07:17:35 -04:00
Konstantin Vyatkin 1cb9070cce
[Spec] Should check body _source_ on redirect (#866)
* correct stream tests

* bump Node.JS min to 10.17

* lint
2020-06-10 07:16:51 -04:00
Konstantin Vyatkin df1a4fafa9
fix: Correct Node versions were not installed on test matrix (#846)
* fix Node install and add engines

* use minimum-node-version
2020-06-09 20:26:24 -04:00
Konstantin Vyatkin 69d25b904a
Fix Data URI handling and drop all URL analysis RegExps (#853)
* add breaking test
* don't use RegExp for URLs
2020-05-31 11:15:27 -04:00
Konstantin Vyatkin 769f75d054
Drop custom Promises and refactor to `async` functions (#845)
* refactor to async

* no custsom promises anymore

* restore server premature handler

* simplify

* fixing break

* lint

* remove promise dependency

* fix docs
2020-05-28 23:57:57 +02:00
Antoni Kepinski 079b11e257
fix: export 2020-05-25 19:20:30 +02:00
Antoni Kepinski fa627f4b0c
Follow xo linter rules more strictly (#829)
Co-authored-by: Moni <[email protected]>
2020-05-25 17:11:56 +02:00
Konstantin Vyatkin ca4703dd15
revamp Headers module (#834)
Co-authored-by: Antoni Kepinski <[email protected]>
2020-05-25 16:43:10 +02:00
Richie Bendall 94e5b92de1
Remove `timeout` option (#831) 2020-05-25 13:30:05 +02:00
Antoni Kepinski c822ff4719
Replace istanbul ignore next with c8 ignore next 2020-05-24 00:28:17 +02:00
Konstantin Vyatkin ead6b458e9
normalize export (#827) 2020-05-23 13:32:10 -04:00
Konstantin Vyatkin 07c6b7490d
Move `isRedirect` function to a seperate file (#821)
* fix isRedirect export

Co-authored-by: Richie Bendall <[email protected]>
2020-05-23 00:00:02 -04:00
Konstantin Vyatkin 28655e1390
Add Brotli support in Request (#819)
* document and request brotli

* Document different minimum version

Co-authored-by: Richie Bendall <[email protected]>
2020-05-22 22:48:14 -04:00
Jonathan Stewmon 63d3663466
fix: disambiguate timeout behavior for response headers and body (#770)
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.
2020-05-22 15:19:05 -04:00
Konstantin Vyatkin 0f97d62844
drop Babel (while keeping ESM) (#805)
* drop Babel

* fix lint

* just to trigger CI

* Update package.json

Co-authored-by: Linus Unnebäck <[email protected]>

* fix all imports

* coverage only from Node 14.x

* remove esm

* restore travis

* fix lint

Co-authored-by: Linus Unnebäck <[email protected]>
2020-05-21 02:50:31 -04:00
Richie Bendall 553bb5dc56
Export `AbortError` (Fixes: #792)
Signed-off-by: Richie Bendall <[email protected]>
2020-05-06 23:47:43 +12:00
Richie Bendall d15476bb5d
Compile CJS modules as a seperate set of files (#778)
* Switch to seperate babel compilation

Signed-off-by: Richie Bendall <[email protected]>

* resolve merge conflict

* add missing devDependency

* fix wrong name

* Specify ES version under `module` property and specify `sideEffects`

Co-authored-by: Antoni Kepinski <[email protected]>
2020-04-14 13:03:24 +02:00
Antoni Kepinski c167190c6e
revert fix: Properly export fetch 2020-03-28 19:03:23 +01:00
Richie Bendall 7c66f9ce82
fix: Properly export fetch
Signed-off-by: Richie Bendall <[email protected]>
2020-03-14 23:08:36 +13:00
David Frank 0959ca9739
merge 3.x into master branch (#745)
* 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]>
2020-03-13 23:06:25 +08:00
Ramit Mittal 1e99050f94 fix: Change error message thrown with redirect mode set to error (#653)
The original error message does not provide enough information about what went wrong. It simply states a configuration setting.
2019-10-11 09:26:58 +13:00
Richie Bendall eb3a57255b
feat: Data URI support (#659)
Adds support for Data URIs using native methods in Node 5.10.0+
2019-09-08 09:44:40 +12:00
David Frank 0c2294ec48
2.5.0 release (#630)
* redirected property
* changelog update
* readme update
* 2.5.0
2019-05-01 13:05:32 +08:00
David Frank 49d77600a7
Pass custom timeout to subsequent requests on redirect (#615) 2019-04-27 00:46:53 +08:00
Muhammet Öztürk 2a2d4384af Adding Brotli Support (#598)
* adding brotli support
* support old node versions
* better test
2019-04-27 00:20:15 +08:00
David Frank 5367fe6a97
v2.3.0 (#548)
* doc update
* handle corrupted location header during redirect
2018-11-13 14:35:09 +08:00
Joseph Nields ecd3d52c55 Add support for AbortSignal to cancel requests (#539)
Thx @jnields @FrogTheFrog @TimothyGu for their work!
2018-11-13 12:40:11 +08:00
David Frank 1daae67e9e
Fix import style to workaround node < 10 and webpack issues. (#544)
* fix import rule for stream PassThrough

* avoid named export for compatibility below node 10

* compress flag should not overwrite accept encoding header

* doc update

* 2.2.1
2018-11-05 17:42:51 +08:00
Timothy Gu 1d4ab5a0de Switch to .mjs for ES module output for Node.js compat
This also reverts commit 60cf26c2f3.
2018-07-22 14:06:25 -07:00
Timothy Gu c01a5d22d4 Move .default assignment to plugins 2018-07-22 14:06:25 -07:00
Timothy Gu aed2e69a39
Make sure to finalize the request properly (#432)
Unfortunately, I could not write a test case that allows testing the bug
in #428. Credits to Roman Zaharenkov <[email protected]> for
discovering this long-standing bug and proposing a first version of the
fix.

Co-authored-by: Roman Zaharenkov <[email protected]>
Fixes: #428
2018-03-24 20:50:33 -07:00
Timothy Gu 8aac53679d
Fix custom Host header with arbitrary case (#430)
Regression since 1592ca1148.

Fixes: #416
Fixes: #425
2018-03-22 22:01:45 -07:00
Timothy Gu 780598ad72
Harmonize style (#413) 2018-03-04 20:29:12 -08:00
Timothy Gu 119138ef64 Update existing algorithm step numbers 2018-03-04 20:25:16 -08:00
Timothy Gu 35722f19e5 Significant rework of redirection
- Handle Location-less redirect like non-redirect response.
- Include bodies when redirecting to non-POST 301/302 and all 307/308
  response.

Co-authored-by: Gregor Martynus <[email protected]>
2018-03-04 20:25:16 -08:00
Timothy Gu feae6d6ec8
Ignore illegal HTTP headers
Fixes: #411
2018-03-04 13:12:36 -08:00
Timothy Gu b1cd2dd438
Better compliance with Web IDL
- Make read-only attributes actually read-only
- Set @@toStringTag on the prototype only
- Make prototype methods/getters enumerable

Based on #354.

Co-authored-by: Benjamin Seber <[email protected]>
2018-02-03 12:12:14 -08:00
Timothy Gu cf5975cb5c Support TypeScript import (#332)
Fixes #307.
2017-09-24 13:06:41 +08:00
Timothy Gu 60cf26c2f3
Use require() for Node.js core modules
Fixes: #318
2017-07-27 00:15:32 +08:00
David Frank 770388db1b only enable Z_SYNC_FLUSH for gzip response 2017-05-15 19:45:04 +08:00
Kat Marchán e5ff203ef4 Revert "Allow passing agent option as an object (#236)" (#263)
This reverts commit ec29e3d264.

This patch prevents any agent being passed in which is not explicitly
an instance of `http.Agent`. This makes `node-fetch` no longer
compatible with https://npm.im/proxy-agent, which is one example of a
library that does not directly inherit from `http.Agent` directly.

Sorry for the revert -- I don't have an alternative patch because I
don't believe this is something node-fetch should be doing
automatically, because of how much of a limitation this could impose.

The original PR stated that this was to prevent requiring http/https,
and the effect would effectively be to force creation of an Agent on
every call. Note that this is already the behavior specified for
http.Agent when http.request received `false`. (See the bottom of the
[section on http.Agent in the Node
docs](https://nodejs.org/dist/latest-v7.x/docs/api/http.html#http_class_http_agent).

Cheers, and with apologies to @ahmadnassri for reverting their PR.
2017-04-08 18:33:46 -07:00
Ahmad Nassri ec29e3d264 Allow passing agent option as an object (#236) 2017-04-03 02:54:31 -07:00
Grzegorz Graczyk a1e76b97e1 More lenient gzip decompression (#239)
Ref: https://github.com/nodejs/node/issues/8701#issuecomment-268224481
Ref: https://github.com/request/request/issues/2482
Ref: https://github.com/request/request/pull/2492
Fixes: http://www.mantovanispa.it
Fixes: #139
2017-02-27 10:02:45 -08:00
Timothy Gu 397eab7757 compress: use spec nomenclature 2017-02-26 21:27:27 -08:00