-
Notifications
You must be signed in to change notification settings - Fork 13
/
resilient.min.js.map
1 lines (1 loc) · 47.7 KB
/
resilient.min.js.map
1
{"version":3,"sources":["resilient.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","resilient","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","_","Cache","store","Object","create","prototype","flush","key","emptyObject","get","clone","set","data","time","now","value","exists","isObj","isArr","./utils","2","resolver","http","Client","_resilient","path","options","cb","send","post","put","del","delete","patch","head","method","args","normalizeArgs","opts","callback","promise","Promise","resolve","reject","emit","requester","apply","err","res","bind","noop","then","catch","isFullUrlSchema","plainHttpRequest","arguments","mergeHttpOptions","wrapCallback","once","finalRequestHandler","defaults","timeout","$timeout","merge","isURI","url","_httpClient","fn","called","./http","./resolver","3","service","timeouts","servers","retry","waitBeforeRetry","discoverBeforeRetry","promiscuousErrors","omitRetryWhen","omitFallbackWhen","omitRetryOnMethods","omitFallbackOnMethods","omitRetryOnErrorCodes","omitFallbackOnErrorCodes","balancer","enable","random","roundRobin","roundRobinSize","balanceStrategy","disableWeight","weight","success","error","latency","discovery","parallel","cacheEnabled","cacheExpiration","refreshInterval","enableRefreshServers","enableSelfRefresh","forceRefreshOnStart","refreshServersInterval","refreshServers","refreshOptions","refreshPath","resilientOptions","4","Servers","Requester","ResilientError","CONCURRENCY","ServersDiscovery","middleware","_middleware","getOptions","getServers","hasDiscoveryServers","updateServersInParallel","buf","sort","pending","counter","onServersUpdateFn","onUpdateServers","onUpdateInParallelFn","onUpdateInParallel","slice","forEach","server","index","pool","concat","updateServers","next","fetchServers","params","addTimeStamp","run","handler","total","decrement","reset","extend","qs","_time","closeAndEmptyPendingRequests","isEmptyBuffer","closePendingRequest","splice","client","xhr","readyState","closeClient","abort","filter","request","./error","./requester","./servers","5","MESSAGES","1000","1001","1002","1003","1004","1005","1006","1007","status","stack","message","6","Evaluator","strategies","add","strategy","push","eval","some","7","IS_BROWSER","JSON_MIME","resolveModule","HttpClient","VERSION","mapResponse","body","statusCode","isJSONContent","JSON","parse","test","headers","mapOptions","mapRequestBody","defineUserAgent","getUserAgent","LIBRARY_VERSION","json","requestWrapper","lil-http","8","Options","Resilient","CLIENT_VERSION","./client","./defaults","./options","./resilient","9","midware","hooks","Middleware","createPool","use","middlewares","toArr","isFn","map","passArgs","register","type","hook","hooksMiddleware","in","out","mw","10","omit","getRaw","setServers","each","undefined","defaultOptions","keys","11","operation","getOperation","serversList","getServersList","requestNextServer","previousError","shift","defineRequestOptions","requestHandler","resolveRequest","sendRequest","handleMissingServers","getPreviousResponse","cachedPreviousResponse","responseObj","getFirstValue","shouldOmitRetryCycle","retryRequest","onRetry","retrier","updateDiscoveryServersAndRetry","delay","nextServer","start","requestReporter","shouldOmitFallback","reportError","isErrorResponse","memoizeResponse","report","getHttpClient","mapAndResolve","resolution","join","basePath","getTimeout","toLowerCase","arr","v","pop","_sync","unlock","DiscoveryResolver","update","shouldOmitOnErrorCode","shouldOmitOnMethod","shouldOmitWhenRules","shouldOmitFallbackOnErrorCode","shouldOmitFallbackOnMethod","methods","rules","ruleFilter","rule","matchRuleMethod","matchRuleStatusCode","matchHttpMethod","codes","indexOf","toUpperCase","m","trim","isUnavailableStatus","_failStrategies","isErrorStatus","isInvalidStatus","checkResponseStatus","12","EventBus","Sync","cache","_client","_options","list","serversURL","urls","discoveryServers","resetScore","resetStats","latestServers","getUpdatedServers","discoverServers","discoveryOptions","serviceOptions","httpOptions","useHttpClient","restoreHttpClient","serversUpdated","updated","lastUpdate","refresh","mock","mockFn","unmock","failStrategy","addFailStrategy","defineMethodProxy","verb","./cache","./evaluator","./middleware","./resolvers/discovery","./sync","lil-event","13","Resolver","wrapHandler","sync","hasDiscoveryServersOutdated","updateDiscoveryServers","hasValidServiceServers","updateServiceServers","getRefreshServers","getRefreshOptions","locked","enqueue","onRefreshServers","lock","dequeue","mErr","refreshDiscoveryServers","outdated","canUpdateDiscoveryServers","serversAreUpdated","interval","handleResolution","_cache","getRefreshBasePath","./discovery","14","ServiceResolve","fetch","fetchHandler","../discovery","../error","../requester","./service","15","isCacheEnabled","getCache","name","saveServers","refreshCache","errorHandler","resolveFromCache","resolveWithError","hasValidCache","expires","handleResponse","done","isValidResponse","defineServers","valid","parseAsJSON","../utils","16","roundRobinSerie","size","max","rounds","ps","k","j","rs","17","balancerOptions","Server","stats","calculateAvgLatency","balance","calculateStatsBalance","field","statsStore","createServerStats","read","createStats","write","round","number","toFixed","18","RoundRobin","mapServers","empty","x","y","shuffle","roundRobinSort","find","isValidURI","uri","mapServer","array","Math","temp","configSize","./roundrobin","./server","19","locks","queues","state","getSync","task","queue","20","toStr","toString","Array","hasOwn","hasOwnProperty","Function","isArrayNative","isArray","uriRegex","Date","getTime","ctx","obj","ms","setTimeout","str","base","notEmpty","objIterator","extender","merger","target","iterator","eachArgument","21","22","root","factory","Event","lil","constructor","addListener","on","event","TypeError","findListener","getListeners","removeListener","off","listeners","listener","addOnceListener","fire","removeAllListeners","offAll","_events","events","getEvents","23","slicer","hasBind","origin","location","originRegex","jsonMimeRegex","hasDomainRequest","XDomainRequest","auth","withCredentials","responseType","assign","cur","setHeaders","defaultContent","reduce","lowerField","setRequestHeader","getHeaders","rawHeaders","getAllResponseHeaders","split","header","isJSONResponse","getResponseHeader","encodeParams","getOwnPropertyNames","encodeURIComponent","replace","parseData","responseText","response","getStatus","buildResponse","statusText","buildErrorResponse","cleanReferences","onreadystatechange","onerror","ontimeout","isValidResponseStatus","onError","onLoad","config","ev","isCrossOrigin","match","getURL","XHRFactory","XMLHttpRequest","createClient","open","user","password","updateProgress","lengthComputable","loaded","hasContentTypeHeader","buildPayload","stringify","timeoutResolver","timeoutId","clearTimeout","progress","onprogress","requestFactory","24","calls","toArray","runNext","end","remove","nargs"],"mappings":"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"}