npm's personal messenger

    @zcorky/fz
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.15 • Public • Published

    fz

    NPM version Coverage Status Dependencies Build Status license issues

    A simply http client lib base fetch

    Install

    $ npm install @zcorky/fz
    

    Usage

    // typescript
    import fz from '@zcorky/fz';
    
    (async () => {
    	const json = await fz.post('https://some-api.com', {json: {foo: true}}).json();
    
    	console.log(json);
    	//=> `{data: '🦄'}`
    })();

    API

    fz.get(input, [options])

    fz.post(input, [options])

    fz.put(input, [options])

    fz.patch(input, [options])

    fz.head(input, [options])

    fz.delete(input, [options])

    Supported features

    • url parameter is automatically serialized
    • post data submission method is simplified
    • response return processing simplification
    • api timeout support
    • api request cache support
    • support for processing gbk
    • request and response interceptor support like axios
    • unified error handling
    • middleware support
    • cancel request support like axios
    • make http request from node.js

    Features

    // When 400 BadRequest
    Fz.onUnauthorized(async (response, options) => {
    	// Do Something
    });
    
    // When 401 Unauthorized
    Fz.onUnauthorized(async (response, options) => {
    	// Do Something
    });
    
    // When 403 Forbidden
    Fz.onForbidden(async (response, options) => {
    	// Do Something
    });
    
    // When 404 Not Found
    Fz.onNotFound(async (response, options) => {
    	//
    });
    
    // When 405 Method Not Allowed
    Fz.onMethodNotAllowed(async (response, options) => {
    	//
    });
    
    // When 429 Too Many Requests
    Fz.onRateLimited(async (response, options) => {
    	//
    });
    
    // When 500 Internal Server Error
    Fz.onInternalServerError(async (response, options) => {
    	//
    });
    // Apply Global Loading
    Fz.enableShowLoading();
    
    Fz.loading(
    	async start() {
    		XXUI.showLoading();
    	},
    	async end() {
    		XXUI.hideLoading();
    	},
    );

    fz vs umi-request vs fetch vs axios

    Features fz umi-request fetch axios
    implementation Browser native support Browser native support Browser native support XMLHttpRequest
    size 3.4k 9k 4k (polyfill) 14k
    query simplification
    params simplification
    post simplification
    timeout
    cache
    error Check
    error Handling
    interceptor
    prefix
    suffix
    processing gbk
    middleware
    cancel request

    For more discussion, refer to Traditional Ajax is dead, Fetch eternal life If you have good suggestions and needs, please mention issue

    TODO Welcome pr

    • [x] Test case coverage 85%+
    • [x] write a document
    • [x] CI integration
    • [x] release configuration
    • [x] typescript

    Relatived

    • ky - Tiny and elegant HTTP client based on the browser Fetch API

    License

    MIT © Moeover

    Keywords

    none

    Install

    npm i @zcorky/fz

    DownloadsWeekly Downloads

    254

    Version

    1.2.15

    License

    MIT

    Unpacked Size

    33 kB

    Total Files

    27

    Last publish

    Collaborators

    • uniquecolesmith