extend superagent
Installation
$ npm install superagent-extend
Execute sequence
request interceptors --> fetch start --> fetch end --> response interceptors --> response
API
parse
Parse function from description, Return a function. If method is get or delete, the return function arguments is query(object) and headers(object). Otherwise is data(object) and headers(object);
Arguments:
desc
http request description.method url [interceptors]
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; seUtilinterceptors { console;}; seUtilinterceptors { let performance = resperformance; console;}; // if an interceptor is response interceptor, use :name(:logFetchTime), the interceptor divide by ','let fn = superagentExtend;// query {"name": "vicanso"}, headers: {"X-UUID": "MY-UUID"}; let getUser = superagentExtend;// request /user/vicanso;
done
return promise wrap request end
'use strict';const request = request;const assert = ;;
res.performance:
-
performance.requestStart
the timestamp of request start, before request interceptors execute . -
performance.fetchStart
the timestamp of fetch start, after request interceptors execute end. -
performance.fetchEnd
the timestamp of fetch end, before response interceptors execute. -
performance.requestEnd
the timestamp of request end, after response interceptors execute end. -
performance.use
time consuming of request(requestEnd - requestStart) -
performance.requesting
when fetch start, the requesting count
addReqIntc
Add global request interceptor. After all request interceptors execute end, the request start fetch.
If interceptor function return promise, it will be execute sequence.
Demo execute sequence is: logIn --> addQuery --> fetch start --> fetch end --> response
Arguments:
function
interceptor function
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; // promise request interceptorseUtil; // normal request interceptorseUtil; ;
removeReqIntc
Remove global request interceptor.
Arguments:
function
remove interceptor function. If no arguments, it will remove all interceptor function.
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; const loginInterceptor = { requuid = 'ABCD';}; seUtil; // remove request interceptorseUtil; // remove all request interceptorseUtil;
addResIntc
Add global response interceptor. After all response interceptors execute end, the response start.
If interceptor function return promise, it will be execute sequence.
Demo execute sequence is: fetch start --> fetch end --> logLongRequest --> response
Arguments:
function
interceptor function
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; seUtil; ;
removeResIntc
Remove global response interceptor.
Arguments:
function
remove interceptor function. If no arguments, it will remove all interceptor function.
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; const logMaxRes = { let length = restextlength; if length > 5 * 1024 console; };seUtil; // remove response interceptorseUtil; // remove all response interceptorseUtil; ;
timeout
Set request timeout.
Arguments:
ms
timeout ms, default 0(no timeout).
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; seUtiltimeout = 1; ;
addHeader
Add header for http request.
Arguments:
-
method
http method,common
header is use for all method. -
header
http request header.
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; // set common headerseUtil; // set get headerseUtil; ;
removeHeader
Remove header for http request.
Arguments:
-
method
http method. -
key
http request header name. If !key, remove all header for the method.
'use strict';const superagentExtend = ;const request = superagentExtendrequest;const seUtil = superagentExtendutil;const assert = ; // set common headerseUtil; // set get headerseUtil; // remove get x-get-key headerseUtil; ;
License
MIT