1.1.2 • Published 3 years ago
@lancercomet/fetcher v1.1.2
Fetcher
Yet another fetcher.
Quick start
import { Fetcher } from '@lancercomet/fetcher'
const fetcher = new Fetcher()
const { data, error } = await fetcher.requestJSON({
url: '/me',
method: 'GET'
})
Abort a request
import { Fetcher } from '@lancercomet/fetcher'
const fetcher = new Fetcher()
const sendRequest = async () => {
const { data, error } = await fetcher.requestJSON({
url: '/me',
method: 'GET'
})
// ...
}
const abortRequest = () => {
fetcher.abort()
}
<button onClick={sendRequest}>Send</button>
<button onclick={abortRequest}>Abort</button>
Work with SunTori
@Serializable()
class User {
@JsonProperty('name')
readonly username: string = ''
@JsonProperty('age')
readonly age: number = 0
}
const fetcher = new Fetcher()
const { data } = await fetcher.requestJSON({
url: '/me',
method: 'GET',
type: User
})
data instanceof User // true
data.username // string
data.age // number
Request Binary
// ArrayBuffer.
const { data: buffer, error } = await fetcher.requestBinary({
url: '/binary'
}, 'arraybuffer')
// Blob.
const { data: blob, error } = await fetcher.requestBinary({
url: '/binary'
}, 'blob')
Request the API
"The API" is a type of data structure which would be like:
{
"data": ...,
"code": 0,
"message": "OK"
}
const { data, error, message, code, status } = await fetcher.requestAPI({
...
})
License
Apache-2.0