Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

node-fetch: restore types (for v2), update version, allow agent: false #58693

Commits on Feb 9, 2022

  1. Revert "🤖 Merge PR DefinitelyTyped#55533 Remove node-fetch - not need…

    …ed as of 3.0.0 by @ImRodry"
    
    This reverts commit 4d9b113.
    
    node-fetch@3 makes two major changes: they started shipping TS types
    with the package, and they switched it to being an ESM-only module. The
    latter means that apps which aren't built in a way that supports ESM (or
    other npm modules depending on `node-fetch` which don't want to break
    their non-ESM users) need to continue using v2. In fact, the README for
    `node-fetch` explicitly states
    
    > If you cannot switch to ESM, please use v2 which remains compatible
    > with CommonJS. Critical bug fixes will continue to be published for
    > v2.
    
    Stats on npmjs.com show that v2 has 43 times more downloads in the past
    7 days than v3.
    
    I applaud node-fetch's forward-thinking approach to ESM, and am not here
    to tell them that their choice for v3 is wrong. But practically speaking,
    v2 is still heavily used and many projects will not be able to upgrade
    to v3 without breaking their own backwards compatibility promises.
    So it makes sense to continue to maintain v2-specific node-fetch types
    (especially as there are specific issues with the published types,
    as the next commit in this PR shows).
    glasser committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    613277b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c0ef341 View commit details
    Browse the repository at this point in the history
  3. node-fetch: update version to 2.6

    v2.6 is the current (and presumably final) minor release of v2.
    Apparently these types already included at least one v2.6 feature
    (`agent` as a function). So, updating the version as suggested at-rule
    DefinitelyTyped#55533 (comment)
    glasser committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    2766011 View commit details
    Browse the repository at this point in the history
  4. node-fetch: agent can be a boolean

    The `agent` option is (after checking to see if it's a function, and if
    so replacing itself with the return value of calling it) passed directly
    to `http.request` (or `https.request`) so we should be able to pass any
    type supported there. Notably, `agent: false` is distinct from `agent:
    undefined`.
    
    A PR making essentially the same change was merged upstream (the
    upstream repo maintains their own types for v3 but not for v2):
    node-fetch/node-fetch#1502
    glasser committed Feb 9, 2022
    Configuration menu
    Copy the full SHA
    af88e00 View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2022

  1. Update types/node-fetch/tsconfig.json

    Co-authored-by: Nicolas Rodriguez <programnicolas@gmail.com>
    glasser and nicolas377 committed Feb 13, 2022
    Configuration menu
    Copy the full SHA
    5e1aa5d View commit details
    Browse the repository at this point in the history
  2. Update types/node-fetch/index.d.ts

    Co-authored-by: Niklas Lindgren <nikc@iki.fi>
    glasser and nikcorg committed Feb 13, 2022
    Configuration menu
    Copy the full SHA
    1492eaa View commit details
    Browse the repository at this point in the history
  3. Update types/node-fetch/package.json

    Co-authored-by: Piotr Błażejewicz (Peter Blazejewicz) <peterblazejewicz@users.noreply.github.com>
    glasser and peterblazejewicz committed Feb 13, 2022
    Configuration menu
    Copy the full SHA
    1ac3891 View commit details
    Browse the repository at this point in the history