The return value of fetchT includes an abort
method.
The return data of fetchT is of a specific type, which can be either string
, ArrayBuffer
, Blob
, or <T>(generic)
.
via pnpm
pnpm add @happy-ts/fetch-t
or via yarn
yarn add @happy-ts/fetch-t
or just from npm
npm install --save @happy-ts/fetch-t
via JSR
jsr add @happy-ts/fetch-t
for deno
deno add @happy-ts/fetch-t
for bun
bunx jsr add @happy-ts/fetch-t
fetchT is a simple encapsulation of the fetch API, with two main modifications:
- It adds the
abortable
parameter. Ifabortable: true
is passed, fetchT will return aFetchTask
object that allows you to abort the request by callingFetchTask.abort()
. - It supports generic return values by adding the responseType parameter. The optional values for
responseType
include'text' | 'arraybuffer' | 'blob' | 'json'
. The return value corresponds to the parameter and can be eitherstring | ArrayBuffer | Blob | T
, where T is the generic type. All return values are of the Result type, which facilitates error handling.
If you don't have these requirements, it is recommended to use the vanilla fetch.
import { fetchT } from '@happy-ts/fetch-t';
const fetchTask = fetchT('https://example.com', {
abortable: true,
responseType: 'json',
});
somethingHappenAsync(() => {
fetchTask.abort('cancel');
});
const res = await fetchTask.response;
if (res.isErr()) {
console.assert(res.err() === 'cancel');
} else {
console.log(res.unwrap());
}
For more examples, please refer to test case fetch.test.ts.