diff --git a/README.md b/README.md index a3bc584..d7a1e8f 100644 --- a/README.md +++ b/README.md @@ -653,6 +653,13 @@ const w = wretch().middlewares([retry(), dedupe()]) **Retries a request multiple times in case of an error (or until a custom condition is true).** +> **💡 By default, the request will be retried if the response status is not in the 2xx range.** +> +> ```js +> // Replace the default condition with a custom one to avoid retrying on 4xx errors: +> until: (response, error) => response && (response.ok || (response.status >= 400 && response.status < 500)) +> ``` + ```js import wretch from 'wretch' import { retry } from 'wretch/middlewares' diff --git a/docs/api/assets/highlight.css b/docs/api/assets/highlight.css index 3080ec8..bbb603e 100644 --- a/docs/api/assets/highlight.css +++ b/docs/api/assets/highlight.css @@ -21,6 +21,8 @@ --dark-hl-9: #D4D4D4; --light-hl-10: #267F99; --dark-hl-10: #4EC9B0; + --light-hl-11: #000000; + --dark-hl-11: #C8C8C8; --light-code-background: #FFFFFF; --dark-code-background: #1E1E1E; } @@ -37,6 +39,7 @@ --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } } @@ -52,6 +55,7 @@ --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } } @@ -67,6 +71,7 @@ --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } @@ -82,6 +87,7 @@ --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } @@ -96,4 +102,5 @@ .hl-8 { color: var(--hl-8); } .hl-9 { color: var(--hl-9); } .hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } pre, code { background: var(--code-background); } diff --git a/docs/api/functions/addons_abort.default.html b/docs/api/functions/addons_abort.default.html index 407c229..793224a 100644 --- a/docs/api/functions/addons_abort.default.html +++ b/docs/api/functions/addons_abort.default.html @@ -30,7 +30,7 @@

Function default

Returns WretchAddon<AbortWretch, AbortResolver>

+
  • Defined in src/addons/abort.ts:110
  • Returns WretchAddon<unknown, PerfsAddon>

    +
  • Defined in src/addons/perfs.ts:58
  • Returns WretchAddon<unknown, ProgressResolver>

    +
  • Defined in src/addons/progress.ts:45
  • +
  • Defined in src/index.ts:36
  • +
  • Defined in src/middlewares/dedupe.ts:33
  • +
  • Defined in src/middlewares/delay.ts:16
  • Returns ConfiguredMiddleware

    +
  • Defined in src/middlewares/retry.ts:119
  • +
  • Defined in src/middlewares/throttlingCache.ts:56
  • +
  • Defined in src/addons/abort.ts:68
  • onAbort: (<T, C, R>(this: C & WretchResponseChain<T, C, R>, cb: WretchErrorCallback<T, C, R>) => AbortResolver)
    @@ -96,7 +96,7 @@
    this: Ccb: WretchErrorCallback<T, C, R>

    Returns AbortResolver

    +
  • Defined in src/addons/abort.ts:72
  • setTimeout: (<T, C, R>(this: C & WretchResponseChain<T, C, R>, time: number, controller?: AbortController) => AbortResolver)
    @@ -136,7 +136,7 @@
    Optional controller:

    Returns AbortResolver

    +
  • Defined in src/addons/abort.ts:50
  • Returns AbortWretch

    +
  • Defined in src/addons/abort.ts:31
  • +
  • Defined in src/addons/formData.ts:80
  • Returns PerfsAddon

    +
  • Defined in src/addons/perfs.ts:9
  • Returns ProgressResolver

    +
  • Defined in src/addons/progress.ts:23
  • +
  • Defined in src/addons/queryString.ts:87
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:397
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:413
  • HTTP Methods

    @@ -142,7 +142,7 @@
    this: SelfOptional url: string

    Returns Resolver extends undefined ? Chain & WretchResponseChain<Self, Chain, Resolver> : Resolver

    +
  • Defined in src/types.ts:470
  • +
  • Defined in src/types.ts:444
  • Returns Resolver extends undefined ? Chain & WretchResponseChain<Self, Chain, Resolver> : Resolver

    +
  • Defined in src/types.ts:457
  • Returns Resolver extends undefined ? Chain & WretchResponseChain<Self, Chain, Resolver> : Resolver

    +
  • Defined in src/types.ts:522
  • Returns Resolver extends undefined ? Chain & WretchResponseChain<Self, Chain, Resolver> : Resolver

    +
  • Defined in src/types.ts:535
  • Returns Resolver extends undefined ? Chain & WretchResponseChain<Self, Chain, Resolver> : Resolver

    +
  • Defined in src/types.ts:509
  • Returns Resolver extends undefined ? Chain & WretchResponseChain<Self, Chain, Resolver> : Resolver

    +
  • Defined in src/types.ts:496
  • Returns Resolver extends undefined ? Chain & WretchResponseChain<Self, Chain, Resolver> : Resolver

    +
  • Defined in src/types.ts:483
  • Helpers Methods

    @@ -315,7 +315,7 @@
    headerValue: string

    Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:209
  • Returns W & Self & Wretch<Self & W, Chain & R, Resolver>

    +
  • Defined in src/types.ts:64
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:233
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:284
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:221
  • +
  • Defined in src/types.ts:316
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:86
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:197
  • Returns Wretch<Self, Chain, Resolver>

    +
  • Defined in src/types.ts:383
  • +
  • Defined in src/types.ts:182
  • +
  • Defined in src/types.ts:110
  • Returns Self & Wretch<Self, Chain, ResolverReturn>

    +
  • Defined in src/types.ts:352
  • +
  • Defined in src/types.ts:138
  • +
  • Defined in src/types.ts:659
  • error: ((this: Self & WretchResponseChain<T, Self, R>, code: string | number | symbol, cb: WretchErrorCallback<T, Self, R>) => WretchResponseChain<T, Self, R>)
    @@ -114,7 +114,7 @@
    code: stringWretchErrorCallback<T, Self, R>

    Returns WretchResponseChain<T, Self, R>

    +
  • Defined in src/types.ts:650
  • fetchError: ((this: Self & WretchResponseChain<T, Self, R>, cb: WretchErrorCallback<T, Self, R>) => WretchResponseChain<T, Self, R>)
    @@ -138,7 +138,7 @@
    this: Selfcb: WretchErrorCallback<T, Self, R>

    Returns WretchResponseChain<T, Self, R>

    +
  • Defined in src/types.ts:713
  • forbidden: ((this: Self & WretchResponseChain<T, Self, R>, cb: WretchErrorCallback<T, Self, R>) => WretchResponseChain<T, Self, R>)
    @@ -163,7 +163,7 @@
    this: Selfcb: WretchErrorCallback<T, Self, R>

    Returns WretchResponseChain<T, Self, R>

    +
  • Defined in src/types.ts:677
  • internalError: ((this: Self & WretchResponseChain<T, Self, R>, cb: WretchErrorCallback<T, Self, R>) => WretchResponseChain<T, Self, R>)
    @@ -188,7 +188,7 @@
    this: Selfcb: WretchErrorCallback<T, Self, R>

    Returns WretchResponseChain<T, Self, R>

    +
  • Defined in src/types.ts:706
  • notFound: ((this: Self & WretchResponseChain<T, Self, R>, cb: WretchErrorCallback<T, Self, R>) => WretchResponseChain<T, Self, R>)
    @@ -213,7 +213,7 @@
    this: Selfcb: WretchErrorCallback<T, Self, R>

    Returns WretchResponseChain<T, Self, R>

    +
  • Defined in src/types.ts:686
  • timeout: ((this: Self & WretchResponseChain<T, Self, R>, cb: WretchErrorCallback<T, Self, R>) => WretchResponseChain<T, Self, R>)
    @@ -238,7 +238,7 @@
    this: Selfcb: WretchErrorCallback<T, Self, R>

    Returns WretchResponseChain<T, Self, R>

    +
  • Defined in src/types.ts:696
  • unauthorized: ((this: Self & WretchResponseChain<T, Self, R>, cb: WretchErrorCallback<T, Self, R>) => WretchResponseChain<T, Self, R>)
    @@ -263,7 +263,7 @@
    this: Selfcb: WretchErrorCallback<T, Self, R>

    Returns WretchResponseChain<T, Self, R>

    +
  • Defined in src/types.ts:668
  • Response Type Properties

    @@ -303,7 +303,7 @@
    type: ArrayBuffer
    Returns Result | Promise<Result>

    Returns Promise<Awaited<Result>>

    +
  • Defined in src/types.ts:611
  • blob: (<Result>(cb?: ((type: Blob) => Result | Promise<Result>)) => Promise<Awaited<Result>>)
    @@ -341,7 +341,7 @@
    type: Blob

    Returns Result | Promise<Result>

    Returns Promise<Awaited<Result>>

    +
  • Defined in src/types.ts:591
  • formData: (<Result>(cb?: ((type: FormData) => Result | Promise<Result>)) => Promise<Awaited<Result>>)
    @@ -379,7 +379,7 @@
    type: FormData

    Returns Result | Promise<Result>

    Returns Promise<Awaited<Result>>

    +
  • Defined in src/types.ts:601
  • json: (<Result>(cb?: ((type: any) => Result | Promise<Result>)) => Promise<Awaited<Result>>)
    @@ -417,7 +417,7 @@
    type: any

    Returns Result | Promise<Result>

    Returns Promise<Awaited<Result>>

    +
  • Defined in src/types.ts:581
  • res: (<Result>(cb?: ((type: WretchResponse) => Result | Promise<Result>)) => Promise<Awaited<Result>>)
    @@ -456,7 +456,7 @@
    type: Returns Result | Promise<Result>

    Returns Promise<Awaited<Result>>

    +
  • Defined in src/types.ts:571
  • text: (<Result>(cb?: ((type: string) => Result | Promise<Result>)) => Promise<Awaited<Result>>)
    @@ -494,7 +494,7 @@
    type: string

    Returns Result | Promise<Result>

    Returns Promise<Awaited<Result>>

    +
  • Defined in src/types.ts:621
  • +
  • Defined in src/addons/abort.ts:1
  • diff --git a/docs/api/modules/addons_formData.html b/docs/api/modules/addons_formData.html index f5a4c9d..d85cbb6 100644 --- a/docs/api/modules/addons_formData.html +++ b/docs/api/modules/addons_formData.html @@ -16,7 +16,7 @@
  • addons/formData
  • Module addons/formData

    +
  • Defined in src/addons/formData.ts:1
  • diff --git a/docs/api/modules/addons_formUrl.html b/docs/api/modules/addons_formUrl.html index 680f55c..b4dc162 100644 --- a/docs/api/modules/addons_formUrl.html +++ b/docs/api/modules/addons_formUrl.html @@ -16,7 +16,7 @@
  • addons/formUrl
  • Module addons/formUrl

    +
  • Defined in src/addons/formUrl.ts:1
  • diff --git a/docs/api/modules/addons_perfs.html b/docs/api/modules/addons_perfs.html index d3664b8..34b94bc 100644 --- a/docs/api/modules/addons_perfs.html +++ b/docs/api/modules/addons_perfs.html @@ -16,7 +16,7 @@
  • addons/perfs
  • Module addons/perfs

    +
  • Defined in src/addons/perfs.ts:1
  • diff --git a/docs/api/modules/addons_progress.html b/docs/api/modules/addons_progress.html index 421dcda..0cf1fee 100644 --- a/docs/api/modules/addons_progress.html +++ b/docs/api/modules/addons_progress.html @@ -16,7 +16,7 @@
  • addons/progress
  • Module addons/progress

    +
  • Defined in src/addons/progress.ts:1
  • diff --git a/docs/api/modules/addons_queryString.html b/docs/api/modules/addons_queryString.html index daade00..72ae125 100644 --- a/docs/api/modules/addons_queryString.html +++ b/docs/api/modules/addons_queryString.html @@ -16,7 +16,7 @@
  • addons/queryString
  • Module addons/queryString

    +
  • Defined in src/addons/queryString.ts:1
  • diff --git a/docs/api/modules/index.default.html b/docs/api/modules/index.default.html index c011358..e3fde23 100644 --- a/docs/api/modules/index.default.html +++ b/docs/api/modules/index.default.html @@ -17,12 +17,12 @@
  • default
  • Namespace default

    +
  • Defined in src/index.ts:36
  • +
  • Defined in src/index.ts:40
  • +
  • Defined in src/index.ts:42
  • +
  • Defined in src/index.ts:44
  • +
  • Defined in src/index.ts:46
  • +
  • Defined in src/index.ts:47
  • Index

    diff --git a/docs/api/modules/index.html b/docs/api/modules/index.html index 77cb711..bfa2d3a 100644 --- a/docs/api/modules/index.html +++ b/docs/api/modules/index.html @@ -16,7 +16,7 @@
  • index
  • Module index

    +
  • Defined in src/index.ts:1
  • diff --git a/docs/api/modules/middlewares.html b/docs/api/modules/middlewares.html index e5c4618..6bdbaec 100644 --- a/docs/api/modules/middlewares.html +++ b/docs/api/modules/middlewares.html @@ -16,7 +16,7 @@
  • middlewares
  • Module middlewares

    +
  • Defined in src/middlewares/index.ts:1
  • diff --git a/docs/api/modules/middlewares_dedupe.html b/docs/api/modules/middlewares_dedupe.html index 2f4364e..5433c9a 100644 --- a/docs/api/modules/middlewares_dedupe.html +++ b/docs/api/modules/middlewares_dedupe.html @@ -16,7 +16,7 @@
  • middlewares/dedupe
  • Module middlewares/dedupe

    +
  • Defined in src/middlewares/dedupe.ts:1
  • diff --git a/docs/api/modules/middlewares_delay.html b/docs/api/modules/middlewares_delay.html index f431778..72b9641 100644 --- a/docs/api/modules/middlewares_delay.html +++ b/docs/api/modules/middlewares_delay.html @@ -16,7 +16,7 @@
  • middlewares/delay
  • Module middlewares/delay

    +
  • Defined in src/middlewares/delay.ts:1
  • diff --git a/docs/api/modules/middlewares_retry.html b/docs/api/modules/middlewares_retry.html index 01503e6..bd73c13 100644 --- a/docs/api/modules/middlewares_retry.html +++ b/docs/api/modules/middlewares_retry.html @@ -16,7 +16,7 @@
  • middlewares/retry
  • Module middlewares/retry

    +
  • Defined in src/middlewares/retry.ts:1
  • diff --git a/docs/api/modules/middlewares_throttlingCache.html b/docs/api/modules/middlewares_throttlingCache.html index fcc7f08..6107d87 100644 --- a/docs/api/modules/middlewares_throttlingCache.html +++ b/docs/api/modules/middlewares_throttlingCache.html @@ -16,7 +16,7 @@
  • middlewares/throttlingCache
  • Module middlewares/throttlingCache

    +
  • Defined in src/middlewares/throttlingCache.ts:1
  • diff --git a/docs/api/types/index.Config.html b/docs/api/types/index.Config.html index 0a7f675..59a40dc 100644 --- a/docs/api/types/index.Config.html +++ b/docs/api/types/index.Config.html @@ -48,9 +48,9 @@
    Optional instance: Rest ...args: any[]

    Returns any

    +
  • Defined in src/types.ts:719
  • +
  • Defined in src/types.ts:757
  • +
  • Defined in src/types.ts:761
  • +
  • Defined in src/types.ts:751
  • +
  • Defined in src/types.ts:766
  • +
  • Defined in src/types.ts:745
  • +
  • Defined in src/types.ts:737
  • +
  • Defined in src/types.ts:729
  • +
  • Defined in src/types.ts:741
  • +
  • Defined in src/middlewares/dedupe.ts:6
  • +
  • Defined in src/middlewares/dedupe.ts:33
  • +
  • Defined in src/middlewares/dedupe.ts:8
  • +
  • Defined in src/middlewares/dedupe.ts:7
  • +
  • Defined in src/middlewares/dedupe.ts:5
  • +
  • Defined in src/middlewares/delay.ts:16
  • +
  • Defined in src/middlewares/retry.ts:5
  • +
  • Defined in src/middlewares/retry.ts:13
  • +
  • Defined in src/middlewares/retry.ts:10
  • Returns ConfiguredMiddleware

    +
  • Defined in src/middlewares/retry.ts:119
  • +
  • Defined in src/middlewares/retry.ts:19
  • +
  • Defined in src/middlewares/retry.ts:6
  • +
  • Defined in src/middlewares/throttlingCache.ts:7
  • +
  • Defined in src/middlewares/throttlingCache.ts:9
  • +
  • Defined in src/middlewares/throttlingCache.ts:8
  • +
  • Defined in src/middlewares/throttlingCache.ts:6
  • +
  • Defined in src/middlewares/throttlingCache.ts:56
  • +
  • Defined in src/middlewares/throttlingCache.ts:10
  • +
  • Defined in src/middlewares/throttlingCache.ts:5
  • +
  • Defined in src/addons/formData.ts:92
  • +
  • Defined in src/addons/formUrl.ts:53
  • +
  • Defined in src/addons/queryString.ts:99
  • +
  • Defined in src/index.ts:47
  • +
  • Defined in src/index.ts:40
  • +
  • Defined in src/index.ts:44
  • +
  • Defined in src/index.ts:42
  • +
  • Defined in src/index.ts:46