Skip to content

Omitting fetcher function argument is ambiguous? #148

Description

@tmladek

The README states:

Note that fetcher can be any asynchronous function, so you can use your favorite data-fetching library to handle that part. If ommitted, swrv uses the Fetch api.

But later also:

To only retrieve a swrv cache response without revalidating, you can omit the fetcher function from the useSWRV call.

So, which one is it? :) Or am I misunderstanding what omitting means in the first case?

Activity

  1. darrenjennings commented on Mar 22, 2021

    @darrenjennings
    Contributor

    yes it is ambiguous, thanks for noting! We need to document and maybe add some tests so it's clear. It should be:

    - To only retrieve a swrv cache response without revalidating, you can omit the fetcher function from the useSWRV call
    + To only retrieve a swrv cache response without revalidating, you can set the fetcher function to `null` from the useSWRV call 

    If it is "omitted" (aka undefined) then the Fetch api will be used.

    if (typeof fn === 'undefined') {

  2. darrenjennings commented on Mar 22, 2021

    @darrenjennings
    Contributor

    Relevant swr issue: vercel/swr#738

  3. tochoromero commented on Aug 3, 2021

    @tochoromero
    Contributor

    This is great, but the typings for it do not allow null, it should be a quick fix to just add null to the type definition.

  4. LumaKernel commented on Mar 10, 2022

    @LumaKernel

    My PR resolves typing problem.
    #274

  5. LumaKernel commented on Mar 10, 2022

    @LumaKernel

    Current doc is not ambiguous for me, function calls f(), f(undefined) and f(undefined, undefined) have the same arguments (geek note: except argument length). In JS, omitting argument always means supplying undefined.

    Yeah, but I think it's good to clarify the doc.

  6. LumaKernel commented on Mar 10, 2022

    @LumaKernel

    afaik, the null fetcher behaves like Promise.race([]) or () => new Promise<never>(() => {}) (meaning resolves after infinite minutes), but isVaildating value differs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions