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'; | import * as webrequest from '../ts/index.js'; | ||||||
|  |  | ||||||
| tap.test('should run multiendpoint request', async (tools) => { | tap.test('should run multiendpoint request', async (tools) => { | ||||||
|   const done = tools.defer(); |  | ||||||
|   const response = await new webrequest.WebRequest() |   const response = await new webrequest.WebRequest() | ||||||
|     .requestMultiEndpoint(['https://lossless.com'], { |     .request('https://api.signup.software', { | ||||||
|       method: 'GET', |       method: 'GET', | ||||||
|     }) |     }) | ||||||
|     .catch((e) => { |   console.log(JSON.stringify(await response.text())); | ||||||
|       done.resolve(); |  | ||||||
|     }); |  | ||||||
|   await done.promise; |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
| tap.start(); | tap.start(); | ||||||
|   | |||||||
| @@ -3,6 +3,6 @@ | |||||||
|  */ |  */ | ||||||
| export const commitinfo = { | export const commitinfo = { | ||||||
|   name: '@pushrocks/webrequest', |   name: '@pushrocks/webrequest', | ||||||
|   version: '3.0.12', |   version: '3.0.13', | ||||||
|   description: 'securely request from browsers' |   description: 'securely request from browsers' | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								ts/index.ts
									
									
									
									
									
								
							| @@ -15,6 +15,11 @@ export class WebRequest { | |||||||
|     AbortController?: typeof AbortController, |     AbortController?: typeof AbortController, | ||||||
|     helixTimeout?: any, |     helixTimeout?: any, | ||||||
|   }>(); |   }>(); | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * loads the needed polyfill | ||||||
|  |    * @returns | ||||||
|  |    */ | ||||||
|   public static async loadNeededPolyfills() { |   public static async loadNeededPolyfills() { | ||||||
|     if (this.polyfillStatusEvaluated) { |     if (this.polyfillStatusEvaluated) { | ||||||
|       return this.neededPolyfillsLoadedDeferred.promise; |       return this.neededPolyfillsLoadedDeferred.promise; | ||||||
| @@ -22,6 +27,7 @@ export class WebRequest { | |||||||
|     this.polyfillStatusEvaluated = true; |     this.polyfillStatusEvaluated = true; | ||||||
|     const smartenv = new plugins.smartenv.Smartenv(); |     const smartenv = new plugins.smartenv.Smartenv(); | ||||||
|     if (!smartenv.isBrowser) { |     if (!smartenv.isBrowser) { | ||||||
|  |       console.log('webrequest using node context.'); | ||||||
|       this.polyfillStatusEvaluated = true; |       this.polyfillStatusEvaluated = true; | ||||||
|       const fetchMod = await smartenv.getSafeNodeModule('@adobe/helix-fetch'); |       const fetchMod = await smartenv.getSafeNodeModule('@adobe/helix-fetch'); | ||||||
|       this.neededPolyfillsLoadedDeferred.resolve({ |       this.neededPolyfillsLoadedDeferred.resolve({ | ||||||
| @@ -30,8 +36,11 @@ export class WebRequest { | |||||||
|         helixTimeout: fetchMod.timeoutSignal, |         helixTimeout: fetchMod.timeoutSignal, | ||||||
|       }); |       }); | ||||||
|     } else { |     } else { | ||||||
|  |       console.log('webrequest using browser context.'); | ||||||
|       this.neededPolyfillsLoadedDeferred.resolve({ |       this.neededPolyfillsLoadedDeferred.resolve({ | ||||||
|         fetch: globalThis.fetch, |         fetch: (...args) => { | ||||||
|  |           return fetch(...args); | ||||||
|  |         }, | ||||||
|         Response: globalThis.Response, |         Response: globalThis.Response, | ||||||
|         AbortController: globalThis.AbortController |         AbortController: globalThis.AbortController | ||||||
|       }); |       }); | ||||||
| @@ -70,8 +79,11 @@ export class WebRequest { | |||||||
|   public async postJson(urlArg: string, requestBody?: any, useCacheArg: boolean = false) { |   public async postJson(urlArg: string, requestBody?: any, useCacheArg: boolean = false) { | ||||||
|     await WebRequest.neededPolyfillsLoadedDeferred.promise; |     await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||||
|     const response: Response = await this.request(urlArg, { |     const response: Response = await this.request(urlArg, { | ||||||
|       body: plugins.smartjson.stringify(requestBody), |  | ||||||
|       method: 'POST', |       method: 'POST', | ||||||
|  |       headers: { | ||||||
|  |         'Content-Type': 'application/json', | ||||||
|  |       }, | ||||||
|  |       body: plugins.smartjson.stringify(requestBody), | ||||||
|       useCache: useCacheArg, |       useCache: useCacheArg, | ||||||
|     }); |     }); | ||||||
|     const responseText = await response.text(); |     const responseText = await response.text(); | ||||||
| @@ -85,8 +97,11 @@ export class WebRequest { | |||||||
|   public async putJson(urlArg: string, requestBody?: any, useStoreAsFallback: boolean = false) { |   public async putJson(urlArg: string, requestBody?: any, useStoreAsFallback: boolean = false) { | ||||||
|     await WebRequest.neededPolyfillsLoadedDeferred.promise; |     await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||||
|     const response: Response = await this.request(urlArg, { |     const response: Response = await this.request(urlArg, { | ||||||
|       body: plugins.smartjson.stringify(requestBody), |  | ||||||
|       method: 'PUT', |       method: 'PUT', | ||||||
|  |       headers: { | ||||||
|  |         'Content-Type': 'application/json', | ||||||
|  |       }, | ||||||
|  |       body: plugins.smartjson.stringify(requestBody), | ||||||
|     }); |     }); | ||||||
|     const responseText = await response.text(); |     const responseText = await response.text(); | ||||||
|     const responseResult = plugins.smartjson.parse(responseText); |     const responseResult = plugins.smartjson.parse(responseText); | ||||||
| @@ -99,6 +114,9 @@ export class WebRequest { | |||||||
|   public async deleteJson(urlArg: string, useStoreAsFallback: boolean = false) { |   public async deleteJson(urlArg: string, useStoreAsFallback: boolean = false) { | ||||||
|     await WebRequest.neededPolyfillsLoadedDeferred.promise; |     await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||||
|     const response: Response = await this.request(urlArg, { |     const response: Response = await this.request(urlArg, { | ||||||
|  |       headers: { | ||||||
|  |         'Content-Type': 'application/json', | ||||||
|  |       }, | ||||||
|       method: 'GET', |       method: 'GET', | ||||||
|     }); |     }); | ||||||
|     const responseText = await response.text(); |     const responseText = await response.text(); | ||||||
| @@ -120,7 +138,8 @@ export class WebRequest { | |||||||
|       timeoutMs: 60000, |       timeoutMs: 60000, | ||||||
|       useCache: false, |       useCache: false, | ||||||
|       ...optionsArg, |       ...optionsArg, | ||||||
|     } |     }; | ||||||
|  |      | ||||||
|     const fetchObject = await WebRequest.neededPolyfillsLoadedDeferred.promise; |     const fetchObject = await WebRequest.neededPolyfillsLoadedDeferred.promise; | ||||||
|     let controller: AbortController; |     let controller: AbortController; | ||||||
|     if (optionsArg.timeoutMs) { |     if (optionsArg.timeoutMs) { | ||||||
| @@ -147,7 +166,6 @@ export class WebRequest { | |||||||
|       signal: controller ? controller.signal : null, |       signal: controller ? controller.signal : null, | ||||||
|       method: optionsArg.method, |       method: optionsArg.method, | ||||||
|       headers: { |       headers: { | ||||||
|         'Content-Type': 'application/json', |  | ||||||
|         ...(optionsArg.headers || {}), |         ...(optionsArg.headers || {}), | ||||||
|       }, |       }, | ||||||
|       body: optionsArg.body, |       body: optionsArg.body, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user