fix(core): update
This commit is contained in:
		| @@ -2,15 +2,11 @@ import { expect, tap } from '@pushrocks/tapbundle'; | ||||
| import * as webrequest from '../ts/index.js'; | ||||
|  | ||||
| tap.test('should run multiendpoint request', async (tools) => { | ||||
|   const done = tools.defer(); | ||||
|   const response = await new webrequest.WebRequest() | ||||
|     .requestMultiEndpoint(['https://lossless.com'], { | ||||
|     .request('https://api.signup.software', { | ||||
|       method: 'GET', | ||||
|     }) | ||||
|     .catch((e) => { | ||||
|       done.resolve(); | ||||
|     }); | ||||
|   await done.promise; | ||||
|   console.log(JSON.stringify(await response.text())); | ||||
| }); | ||||
|  | ||||
| tap.start(); | ||||
|   | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@pushrocks/webrequest', | ||||
|   version: '3.0.12', | ||||
|   version: '3.0.13', | ||||
|   description: 'securely request from browsers' | ||||
| } | ||||
|   | ||||
							
								
								
									
										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