You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
default;}});var_pathToRegexp=require('path-to-regexp');var_pathToRegexp2=_interopRequireDefault(_pathToRegexp);var_util=require('./util');var_response=require('./response');var_response2=_interopRequireDefault(_response);function_interopRequireDefault(obj){returnobj&&obj.__esModule?obj:{default:obj};}function_classCallCheck(instance,Constructor){if(!(instanceinstanceofConstructor)){thrownewTypeError("Cannot call a class as a function");}}varFetchMock=function(){functionFetchMock(required){varoptions=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{fetch:functionfetch(){},exclude:[],proxy:[]};_classCallCheck(this,FetchMock);if('object'!==typeofrequired){thrownewError('There is no required defined.');}this.urls=[];this.raw=options.fetch;this.exclude=options.exclude||[];this.proxy=options.proxy||[];this.loadMocks=this.loadMocks.bind(this);this.loadMock=this.loadMock.bind(this);this.matchReqUrl=this.matchReqUrl.bind(this);this.isExclude=this.isExclude.bind(this);this.isProxied=this.isProxied.bind(this);this.fetch=this.fetch.bind(this);this.loadMocks(required);}_createClass(FetchMock,[{key:'loadMocks',value:functionloadMocks(required){var_this=this;var__mocks__=required.default||required;varmocks=Object.keys(__mocks__);mocks.forEach(function(key){_this.loadMock(key,__mocks__[key]);});}},{key:'loadMock',value:functionloadMock(key,mock){var_this2=this;if('object'!==typeofmock){if('function'===typeofmock){varitems=key.split(' ');varmethod=items.length===2?items[0]:'GET';varurl=items.length===2?items[1]:key;this.urls.push({method:method,url:url,func:mock});}return;}varkeys=Object.keys(mock);keys.map(function(key){_this2.loadMock(key,mock[key]);});}},{key:'matchReqUrl',value:functionmatchReqUrl(request){varinsideParams=void0;varfilters=this.urls.filter(function(uri){varobj=(0,_util.matchUrl)(uri.url,request.url);if(obj.result&&uri.method.toUpperCase()===request.method.toUpperCase()){insideParams=obj.params;returntrue;}returnfalse;});if(!filters||filters.length==0)thrownewError('No url '+request.url+' is defined.');request.urlparams=insideParams;return{request:request,mock:filters[0]};}},{key:'isExclude',value:functionisExclude(url){for(vari=0;i<this.exclude.length;i++){varexcludeUrl=this.exclude[i];if(excludeUrl===url||(0,_pathToRegexp2.default)(''+excludeUrl).exec(url)!==null){returntrue;}}returnfalse;}},{key:'isProxied',value:functionisProxied(url){if(this.proxy.length===0)returnfalse;varproxied=this.proxy.filter(function(item){return(0,_pathToRegexp2.default)(''+item.path).exec(url)!==null;});if(proxied.length>1)thrownewError(url+' proxied has two proxies, you should specific only one');returnproxied[0];}},{key:'proxied',value:functionproxied(url){varmatches=void0,proxied=void0;this.proxy.forEach(function(item){vartmp=(0,_pathToRegexp2.default)(item.path).exec(url);if(tmp.length>1){matches=tmp;proxied=item;returnfalse;}});returnproxied.process?proxied.process(proxied,matches):proxied.target+'/'+matches[1];}},{key:'fetch',value:functionfetch(url,options){if(this.isProxied(url)){url=this.proxied(url);}if(this.isExclude(url)){returnthis.raw(url,options);}var_matchReqUrl=this.matchReqUrl((0,_util.parseRequest)(url,options)),request=_matchReqUrl.request,mock=_matchReqUrl.mock;if('function'!==typeofmock.func){thrownewError('There is no url defined in __mocks__');}varobj=mock.func(request);if((0,_util.isNull)(obj)){throw'response data should not be undefined or null, it will be an object or an array at least';}if((0,_util.isNull)(obj.status)){obj={status:200,data:obj};}varresponse=new_response2.default(obj);returnPromise.resolve(response);}}]);returnFetchMock;}();exports.default=FetchMock;
145
+
146
+
147
+
148
+
default;}});var_pathToRegexp=require('path-to-regexp');var_pathToRegexp2=_interopRequireDefault(_pathToRegexp);var_util=require('./util');var_response=require('./response');var_response2=_interopRequireDefault(_response);function_interopRequireDefault(obj){returnobj&&obj.__esModule?obj:{default:obj};}function_classCallCheck(instance,Constructor){if(!(instanceinstanceofConstructor)){thrownewTypeError("Cannot call a class as a function");}}varFetchMock=function(){functionFetchMock(required){varoptions=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{fetch:functionfetch(){},exclude:[],proxy:[],delay:2000};_classCallCheck(this,FetchMock);if('object'!==typeofrequired){thrownewError('There is no required defined.');}this.urls=[];this.raw=options.fetch;this.exclude=options.exclude||[];this.proxy=options.proxy||[];this.delayTime=options.delay;this.loadMocks=this.loadMocks.bind(this);this.loadMock=this.loadMock.bind(this);this.matchReqUrl=this.matchReqUrl.bind(this);this.isExclude=this.isExclude.bind(this);this.isProxied=this.isProxied.bind(this);this.fetch=this.fetch.bind(this);this.loadMocks(required);}_createClass(FetchMock,[{key:'loadMocks',value:functionloadMocks(required){var_this=this;var__mocks__=required.default||required;varmocks=Object.keys(__mocks__);mocks.forEach(function(key){_this.loadMock(key,__mocks__[key]);});}},{key:'loadMock',value:functionloadMock(key,mock){var_this2=this;if('object'!==typeofmock){if('function'===typeofmock){varitems=key.split(' ');varmethod=items.length===2?items[0]:'GET';varurl=items.length===2?items[1]:key;this.urls.push({method:method,url:url,func:mock});}return;}varkeys=Object.keys(mock);keys.map(function(key){_this2.loadMock(key,mock[key]);});}},{key:'matchReqUrl',value:functionmatchReqUrl(request){varinsideParams=void0;varfilters=this.urls.filter(function(uri){varobj=(0,_util.matchUrl)(uri.url,request.url);if(obj.result&&uri.method.toUpperCase()===request.method.toUpperCase()){insideParams=obj.params;returntrue;}returnfalse;});if(!filters||filters.length==0)thrownewError('No url '+request.url+' is defined.');request.urlparams=insideParams;return{request:request,mock:filters[0]};}},{key:'isExclude',value:functionisExclude(url){for(vari=0;i<this.exclude.length;i++){varexcludeUrl=this.exclude[i];if(excludeUrl===url||(0,_pathToRegexp2.default)(''+excludeUrl).exec(url)!==null){returntrue;}}returnfalse;}},{key:'isProxied',value:functionisProxied(url){if(this.proxy.length===0)returnfalse;varproxied=this.proxy.filter(function(item){return(0,_pathToRegexp2.default)(''+item.path).exec(url)!==null;});if(proxied.length>1)thrownewError(url+' proxied has two proxies, you should specific only one');returnproxied[0];}},{key:'proxied',value:functionproxied(url){varmatches=void0,proxied=void0;this.proxy.forEach(function(item){vartmp=(0,_pathToRegexp2.default)(item.path).exec(url);if(tmp.length>1){matches=tmp;proxied=item;returnfalse;}});returnproxied.process?proxied.process(proxied,matches):proxied.target+'/'+matches[1];}},{key:'fetch',value:functionfetch(url){varoptions=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(this.isProxied(url)){url=this.proxied(url);}if(this.isExclude(url)){returnthis.raw(url,options);}var_matchReqUrl=this.matchReqUrl((0,_util.parseRequest)(url,options)),request=_matchReqUrl.request,mock=_matchReqUrl.mock;if('function'!==typeofmock.func){thrownewError('There is no url defined in __mocks__');}varobj=mock.func(request);if((0,_util.isNull)(obj)){throw'response data should not be undefined or null, it will be an object or an array at least';}if((0,_util.isNull)(obj.status)){obj={status:200,data:obj};}varresponse=new_response2.default(obj);vardelayTime=options.delay||this.delayTime||0;return(0,_util.delay)(delayTime).then(function(){returnPromise.resolve(response);});}}]);returnFetchMock;}();exports.default=FetchMock;
0 commit comments