fix(core): update
This commit is contained in:
		
							
								
								
									
										54
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								ts/index.ts
									
									
									
									
									
								
							| @@ -10,10 +10,10 @@ export interface IWebrequestContructorOptions { | ||||
| export class WebRequest { | ||||
|   private static polyfillStatusEvaluated = false; | ||||
|   private static neededPolyfillsLoadedDeferred = plugins.smartpromise.defer<{ | ||||
|     fetch: typeof fetch, | ||||
|     Response: typeof Response, | ||||
|     AbortController?: typeof AbortController, | ||||
|     helixTimeout?: any, | ||||
|     fetch: typeof fetch; | ||||
|     Response: typeof Response; | ||||
|     AbortController?: typeof AbortController; | ||||
|     helixTimeout?: any; | ||||
|   }>(); | ||||
|  | ||||
|   /** | ||||
| @@ -42,7 +42,7 @@ export class WebRequest { | ||||
|           return fetch(...args); | ||||
|         }, | ||||
|         Response: globalThis.Response, | ||||
|         AbortController: globalThis.AbortController | ||||
|         AbortController: globalThis.AbortController, | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
| @@ -57,8 +57,8 @@ export class WebRequest { | ||||
|   constructor(public optionsArg: IWebrequestContructorOptions = {}) { | ||||
|     this.options = { | ||||
|       logging: true, | ||||
|       ...optionsArg | ||||
|     } | ||||
|       ...optionsArg, | ||||
|     }; | ||||
|     WebRequest.loadNeededPolyfills(); | ||||
|   } | ||||
|  | ||||
| @@ -139,7 +139,7 @@ export class WebRequest { | ||||
|       useCache: false, | ||||
|       ...optionsArg, | ||||
|     }; | ||||
|      | ||||
|  | ||||
|     const fetchObject = await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||
|     let controller: AbortController; | ||||
|     if (optionsArg.timeoutMs) { | ||||
| @@ -150,34 +150,36 @@ export class WebRequest { | ||||
|         }); | ||||
|       } else { | ||||
|         controller = { | ||||
|           signal: fetchObject.helixTimeout(optionsArg.timeoutMs) | ||||
|           signal: fetchObject.helixTimeout(optionsArg.timeoutMs), | ||||
|         } as any; | ||||
|       } | ||||
|     } | ||||
|     let cachedResponseDeferred = plugins.smartpromise.defer<Response>(); | ||||
|     let cacheUsed = false; | ||||
|     if (optionsArg.useCache && await this.cacheStore.check(urlArg)) { | ||||
|     if (optionsArg.useCache && (await this.cacheStore.check(urlArg))) { | ||||
|       const responseBuffer: ArrayBuffer = await this.cacheStore.get(urlArg); | ||||
|       cachedResponseDeferred.resolve(new Response(responseBuffer, {})); | ||||
|     } else { | ||||
|       cachedResponseDeferred.resolve(null); | ||||
|     } | ||||
|     let response: Response = await fetchObject.fetch(urlArg, { | ||||
|       signal: controller ? controller.signal : null, | ||||
|       method: optionsArg.method, | ||||
|       headers: { | ||||
|         ...(optionsArg.headers || {}), | ||||
|       }, | ||||
|       body: optionsArg.body, | ||||
|     }).catch(async (err) => { | ||||
|       if (optionsArg.useCache && (await cachedResponseDeferred.promise)) { | ||||
|         cacheUsed = true; | ||||
|         const cachedResponse = cachedResponseDeferred.promise; | ||||
|         return cachedResponse; | ||||
|       } else { | ||||
|         return err; | ||||
|       } | ||||
|     }); | ||||
|     let response: Response = await fetchObject | ||||
|       .fetch(urlArg, { | ||||
|         signal: controller ? controller.signal : null, | ||||
|         method: optionsArg.method, | ||||
|         headers: { | ||||
|           ...(optionsArg.headers || {}), | ||||
|         }, | ||||
|         body: optionsArg.body, | ||||
|       }) | ||||
|       .catch(async (err) => { | ||||
|         if (optionsArg.useCache && (await cachedResponseDeferred.promise)) { | ||||
|           cacheUsed = true; | ||||
|           const cachedResponse = cachedResponseDeferred.promise; | ||||
|           return cachedResponse; | ||||
|         } else { | ||||
|           return err; | ||||
|         } | ||||
|       }); | ||||
|     if (optionsArg.useCache && (await cachedResponseDeferred.promise) && response.status === 500) { | ||||
|       cacheUsed = true; | ||||
|       response = await cachedResponseDeferred.promise; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user