fix(core): update
This commit is contained in:
		
							
								
								
									
										28
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								ts/index.ts
									
									
									
									
									
								
							| @@ -15,6 +15,11 @@ export class WebRequest { | ||||
|     AbortController?: typeof AbortController, | ||||
|     helixTimeout?: any, | ||||
|   }>(); | ||||
|  | ||||
|   /** | ||||
|    * loads the needed polyfill | ||||
|    * @returns | ||||
|    */ | ||||
|   public static async loadNeededPolyfills() { | ||||
|     if (this.polyfillStatusEvaluated) { | ||||
|       return this.neededPolyfillsLoadedDeferred.promise; | ||||
| @@ -22,6 +27,7 @@ export class WebRequest { | ||||
|     this.polyfillStatusEvaluated = true; | ||||
|     const smartenv = new plugins.smartenv.Smartenv(); | ||||
|     if (!smartenv.isBrowser) { | ||||
|       console.log('webrequest using node context.'); | ||||
|       this.polyfillStatusEvaluated = true; | ||||
|       const fetchMod = await smartenv.getSafeNodeModule('@adobe/helix-fetch'); | ||||
|       this.neededPolyfillsLoadedDeferred.resolve({ | ||||
| @@ -30,8 +36,11 @@ export class WebRequest { | ||||
|         helixTimeout: fetchMod.timeoutSignal, | ||||
|       }); | ||||
|     } else { | ||||
|       console.log('webrequest using browser context.'); | ||||
|       this.neededPolyfillsLoadedDeferred.resolve({ | ||||
|         fetch: globalThis.fetch, | ||||
|         fetch: (...args) => { | ||||
|           return fetch(...args); | ||||
|         }, | ||||
|         Response: globalThis.Response, | ||||
|         AbortController: globalThis.AbortController | ||||
|       }); | ||||
| @@ -70,8 +79,11 @@ export class WebRequest { | ||||
|   public async postJson(urlArg: string, requestBody?: any, useCacheArg: boolean = false) { | ||||
|     await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||
|     const response: Response = await this.request(urlArg, { | ||||
|       body: plugins.smartjson.stringify(requestBody), | ||||
|       method: 'POST', | ||||
|       headers: { | ||||
|         'Content-Type': 'application/json', | ||||
|       }, | ||||
|       body: plugins.smartjson.stringify(requestBody), | ||||
|       useCache: useCacheArg, | ||||
|     }); | ||||
|     const responseText = await response.text(); | ||||
| @@ -85,8 +97,11 @@ export class WebRequest { | ||||
|   public async putJson(urlArg: string, requestBody?: any, useStoreAsFallback: boolean = false) { | ||||
|     await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||
|     const response: Response = await this.request(urlArg, { | ||||
|       body: plugins.smartjson.stringify(requestBody), | ||||
|       method: 'PUT', | ||||
|       headers: { | ||||
|         'Content-Type': 'application/json', | ||||
|       }, | ||||
|       body: plugins.smartjson.stringify(requestBody), | ||||
|     }); | ||||
|     const responseText = await response.text(); | ||||
|     const responseResult = plugins.smartjson.parse(responseText); | ||||
| @@ -99,6 +114,9 @@ export class WebRequest { | ||||
|   public async deleteJson(urlArg: string, useStoreAsFallback: boolean = false) { | ||||
|     await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||
|     const response: Response = await this.request(urlArg, { | ||||
|       headers: { | ||||
|         'Content-Type': 'application/json', | ||||
|       }, | ||||
|       method: 'GET', | ||||
|     }); | ||||
|     const responseText = await response.text(); | ||||
| @@ -120,7 +138,8 @@ export class WebRequest { | ||||
|       timeoutMs: 60000, | ||||
|       useCache: false, | ||||
|       ...optionsArg, | ||||
|     } | ||||
|     }; | ||||
|      | ||||
|     const fetchObject = await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||
|     let controller: AbortController; | ||||
|     if (optionsArg.timeoutMs) { | ||||
| @@ -147,7 +166,6 @@ export class WebRequest { | ||||
|       signal: controller ? controller.signal : null, | ||||
|       method: optionsArg.method, | ||||
|       headers: { | ||||
|         'Content-Type': 'application/json', | ||||
|         ...(optionsArg.headers || {}), | ||||
|       }, | ||||
|       body: optionsArg.body, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user