0.2.27 • Published 5 years ago

mfetch v0.2.27

Weekly downloads
143
License
-
Repository
-
Last release
5 years ago

mfetch

mfetch will provide you with a strong ability to request resource management, at the same time, you can use it very simply

Installation

You can install with npm.

npm install mfetch

Usage

The mfetch not only supports any request method, but also supports jsonp request, and it also supports request/response global interceptor.

Fetch something in sample way

import {fetch} from 'mfetch'

fetch('http://xxxx',{
	params:{
		arg:'This is arg'
	}
}) .then(res=>res.json())
.then(res=>console.log(res))

or

fetch({
    url:'http://xxxx',
    params:{
        arg:'This is arg'
    }
}).then(res=>res.json())
.then(res=>console.log(res))

Fetch something with complex parameters

import {fetch} from 'mfetch'

const complex_params = {
    param1:'param1',
    param2:'param2'
}

fetch({
    url:'http://xxxx',
    params:{
        arg:'This is arg',
        obj:JSON.stringify(complex_params)
    }
}).then(res=>res.json())
.then(res=>console.log(res))

Fetch jsonp

import {fetch} from 'mfetch'

fetch({
    url:'http://xxxx',
    method:'jsonp',
    params:{
        arg:'This is arg'
    }
}).then(res=>res.json())
.then(res=>console.log(res))

send request with cookie

CORS request

import {fetch} from 'mfetch'

fetch({
    url:'http://xxxx',
    method:'jsonp',
    params:{
        arg:'This is arg'
    },
    credentials:'include'
}).then(res=>res.json())
.then(res=>console.log(res))

same domain

import {fetch} from 'mfetch'

fetch({
    url:'http://xxxx',
    method:'jsonp',
    params:{
        arg:'This is arg'
    },
    credentials:'same-origin'
}).then(res=>res.json())
.then(res=>console.log(res))

Fetch FormData

import {fetch} from 'mfetch'


fetch({
    url:'http://xxxx',
    method:'post',
    headers:{
        'Content-Type':'multipart/formdata;charset=utf8'
    },
    params:{
        arg:'This is arg'
    }
}).then(res=>res.json())
.then(res=>console.log(res))

Use interceptor to intercept requests

import {fetch,interceptor} from 'mfetch'


interceptor({
    request(options){
        options.url += '&aaa=bbb'
        return options         // You can solve the asynchronous problem by returning the Promise object.
    },
    response(response){
        return response.json()
    }
})



fetch({
    url:'http://xxxx',
    params:{
        arg:'This is arg'
    }
}).then(res=>console.log(res))

Use the resource API to abstract your requests

import {resource} from 'mfetch'

const getSiteInfo = resource('http://xxxxx',{/** options **/})
const getUserInfo = resource({
    url:'http://xxxx',
    method:'jsonp'
})

const getCombineInfo = resource((data)=>{
    return getSiteInfo(data)
        .then(res=>res.json())
        .then(res=>getUserInfo(res.data))
})

getCombineInfo({
    params:'params'
}).then(res=>res.json())
.then((res)=>{
    console.log(res)
})

Use URI Template(RFC6570)

import {resource} from 'mfetch'

const getSiteInfo = resource('/{id}?xxx',{uriTemplate:true})

getSiteInfo({
    id:12333
})
.then(res=>res.json())
.then(()=>{


})

API

fetch

fetch(url : String,options : Object) : Promise

fetch(options : Object) : Promise

resource

resource(url : String,options : Object) : Promise

resource(options : Object) :Promise

resource(callback : Function) :Promise

interceptor

interceptor(Interceptors : Object)

extension

extension(plugins,...)

License

MIT

0.2.27

5 years ago

0.2.26

5 years ago

0.2.25

6 years ago

0.2.24

6 years ago

0.2.23

6 years ago

0.2.22

6 years ago

0.2.21

6 years ago

0.2.20

6 years ago

0.2.19

6 years ago

0.2.18

6 years ago

0.2.17

6 years ago

0.2.16

6 years ago

0.2.15

6 years ago

0.2.14

6 years ago

0.2.13

6 years ago

0.2.12

6 years ago

0.2.11

6 years ago

0.2.10

7 years ago

0.2.9

7 years ago

0.2.8

7 years ago

0.2.7

7 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.12

7 years ago

0.1.11

7 years ago

0.1.10

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago