0.1.4 • Published 2 years ago

@altipla/fetch-timeout v0.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

fetch-timeout

Implement timeout and cancellation on top of node-fetch or standard fetch.

Install

npm install fetch-timeout

Usage

Replace any call to fetch with our helper fetchTimeout. Types are compatible as we only add a new option timeout that can be added when needed.

With no timeout (normal fetch)

let reply = await fetch('https://www.example.com/', {
  method: 'POST',
  body: '...',
  headers: { ... },
})

With a timeout

let reply = await fetch('https://www.example.com/', {
  method: 'POST',
  body: '...',
  headers: { ... },
  timeout: 30000, // milliseconds
})

With a timeout and a cancel signal combined

let ctrl = new AbortController()

abortButton.addEventListener('click', () => ctrl.abort())

let reply = await fetch('https://www.example.com/', {
  method: 'POST',
  body: '...',
  headers: { ... },
  timeout: 30000,
  signal: controller.signal,
})

Check if there was a timeout

try {
  let reply = await fetch('https://www.example.com/', {
    timeout: 5000,
  })
} catch (err: any) {
  if (err.name === 'AbortError') {
    ...
  }
}
0.1.4

2 years ago

0.1.3

2 years ago