improve error handling
Make sure all errors are able to return their traces to be displayed, and that only the code appears in the pop-up, not a mix with the actual content.
This commit is contained in:
		
							parent
							
								
									76bf6cefaa
								
							
						
					
					
						commit
						e152034eeb
					
				
					 3 changed files with 81 additions and 79 deletions
				
			
		|  | @ -1,5 +1,5 @@ | |||
| /* net.js | ||||
|   This script provides network utilities. | ||||
| 	This script provides network utilities. | ||||
| */ | ||||
| 
 | ||||
| /* | ||||
|  | @ -11,31 +11,35 @@ Download a file from the network or locally. | |||
| @returns {Promise} the downloaded file | ||||
| */ | ||||
| export async function download(URL, type, verify_only = false) { | ||||
|   const alert = await import(chrome.runtime.getURL(`gui/scripts/alerts.js`)) | ||||
|     .default; | ||||
|   const texts = (await import(chrome.runtime.getURL(`gui/scripts/read.js`))) | ||||
|     .default; | ||||
| 	const alert = await import(chrome.runtime.getURL(`gui/scripts/alerts.js`)) | ||||
| 		.default; | ||||
| 	const texts = (await import(chrome.runtime.getURL(`gui/scripts/read.js`))) | ||||
| 		.default; | ||||
| 
 | ||||
|   let connect = await fetch(URL), | ||||
|     data; | ||||
| 	let connect = await fetch(URL), | ||||
| 		data; | ||||
| 
 | ||||
|   if (connect.ok && !verify_only) { | ||||
|     data = await connect.text(); | ||||
| 	if (connect.ok && !verify_only) { | ||||
| 		try { | ||||
| 			data = await connect.text(); | ||||
| 		 | ||||
| 			if ( | ||||
| 				type | ||||
| 					? type.toLowerCase().includes(`json`) || type.toLowerCase().includes(`dictionary`) | ||||
| 					: false | ||||
| 			) { | ||||
| 				try { | ||||
| 				data = JSON.parse(data); | ||||
| 				// When not in JSON, run this.
 | ||||
| 				} catch(err) { | ||||
| 					throw new TypeError(texts.localized(`error_msg_notJSON`, false)); | ||||
| 				}; | ||||
| 			}; | ||||
| 		} catch(err) { | ||||
| 			alert.error(err.name, err.message, err.stack); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|     try { | ||||
|     } catch (err) { | ||||
|       if ( | ||||
|         type | ||||
|           ? type.toLowerCase().includes(`json`) || | ||||
|             type.toLowerCase().includes(`dictionary`) | ||||
|           : false | ||||
|       ) { | ||||
|         data = JSON.parse(data); | ||||
|       } | ||||
|       alert.error(texts.localized(`error_msg_notJSON`, false)); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // Return the filter.
 | ||||
|   return verify_only ? connect.ok : data; | ||||
| 	// Return the filter.
 | ||||
| 	return verify_only ? connect.ok : data; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue