4.2.0 • Published 8 months ago

@alwatr/fetch v4.2.0

Weekly downloads
-
License
AGPL-3.0-only
Repository
github
Last release
8 months ago

Alwatr Fetch

Enhanced fetch API with cache strategy, retry pattern, timeout, helper methods and enhanced types.

Installation

yarn add @alwatr/fetch

Usage

import {fetch} from 'https://esm.run/@alwatr/fetch';

const response = await fetch({
  url: '/api/products',
  queryParameters: {limit: 10},
  timeout: 5_000,
  retry: 3,
  cacheStrategy: 'stale_while_revalidate',
});

if (!response.ok) throw new Error('fetch_failed');

const productList = await response.json();

console.log(productList);

Fetch Options

FetchOptions inherited from the fetch standard parameters and some other...

  • url: Request URL.
  • bodyJson: Body as JS Object.
  • queryParameters: URL Query Parameters as JS Object.
  • timeout: A timeout in ms for the fetch request (default 10_000ms).
  • retry: If fetch response not acceptable or timed out, it will retry the request (default 3).
  • retryDelay: Delay before each retries (default 1_000).
  • removeDuplicate: Simple memory caching for remove duplicate/parallel requests (default never).
    • never: Never use memory caching.
    • always: Always use memory caching and remove all duplicate requests (just by method+url).
    • until_load: Cache parallel requests until request completed (it will be removed after the promise resolved).
    • auto: If CacheStorage was supported use until_load strategy else use always.
  • cacheStrategy: Strategies for caching (default network_only).
    • network_only: Only network request without any cache.
    • network_first: Network first, falling back to cache.
    • cache_only: Cache only without any network request.
    • cache_first: Cache first, falling back to network.
    • stale_while_revalidate: Fastest strategy, Use cached first but always request network to update the cache.
  • revalidateCallback: Revalidate callback for stale_while_revalidate cache strategy.
  • cacheStorageName: Cache storage custom name (default alwatr_fetch_cache).

Read more about standard cache strategies

4.1.7

8 months ago

4.2.0

8 months ago

4.1.4

8 months ago

4.1.3

8 months ago

4.1.6

8 months ago

4.1.5

8 months ago

4.1.0

9 months ago

4.1.2

8 months ago

4.1.1

8 months ago

3.1.8

10 months ago

4.0.1

9 months ago

4.0.0

9 months ago

3.1.7

10 months ago

3.1.6

10 months ago

3.1.5

12 months ago

3.1.4

1 year ago

3.1.3

1 year ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.0

1 year ago

2.2.1

1 year ago

2.2.0

1 year ago

2.1.4

2 years ago

2.1.5

2 years ago

2.1.3

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.0.8

2 years ago

2.1.0

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.32.0

2 years ago

0.31.0

2 years ago

0.30.0

2 years ago

0.29.0

2 years ago

0.28.0

2 years ago

0.26.1

2 years ago

0.27.0

2 years ago

0.21.0

3 years ago

0.20.0

3 years ago

0.19.0

3 years ago

0.17.0

3 years ago

0.18.0

3 years ago

0.26.0

2 years ago

0.25.0

3 years ago

0.24.1

3 years ago

0.24.0

3 years ago

0.23.0

3 years ago

0.22.1

3 years ago

0.22.0

3 years ago

0.14.0

3 years ago

0.15.0

3 years ago

0.16.0

3 years ago

0.12.0

3 years ago

0.13.0

3 years ago

0.11.0

3 years ago

0.10.0

3 years ago

0.9.0

3 years ago

0.8.0

3 years ago

0.7.2

3 years ago

0.7.0

3 years ago

0.6.0

3 years ago