reuse errors.JS and hash.JS
from https://codeberg.org/buzzcode2007/FCC-Project-URLShortener/src/branch/main/scripts/utilities
This commit is contained in:
		
							parent
							
								
									0902ec9cb2
								
							
						
					
					
						commit
						f966e0564e
					
				
					 2 changed files with 63 additions and 0 deletions
				
			
		
							
								
								
									
										25
									
								
								scripts/utilities/errors.JS
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								scripts/utilities/errors.JS
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| class CustomErrors {} | ||||
| 
 | ||||
| CustomErrors.URL = class URL_Error extends Error { | ||||
|     constructor(message, URL) { | ||||
|         super((message) ? message : `invalid url`); | ||||
|         this.name = "URL Problem"; | ||||
|         this.stack = URL; | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| CustomErrors.DBProblem = class DB_Error extends Error { | ||||
|     constructor(message) { | ||||
|         super(message); | ||||
|         this.name = "Database Problem" | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| CustomErrors.HashProblem = class DB_Error extends Error { | ||||
|     constructor(message) { | ||||
|         super(message); | ||||
|         this.name = "Hash Problem" | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| module.exports = CustomErrors | ||||
							
								
								
									
										38
									
								
								scripts/utilities/hash.JS
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								scripts/utilities/hash.JS
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | |||
| class Hash { | ||||
|      #data; | ||||
| 
 | ||||
|      constructor(DATA, METHOD) { | ||||
|           this.#data = DATA; | ||||
|           this.algorithm = (METHOD) ? METHOD : "SHA-512"; | ||||
|           this.arrayBuffer = crypto.subtle.digest(this.algorithm, (new TextEncoder()).encode(DATA)) | ||||
|      }; | ||||
| 
 | ||||
|      /*  | ||||
|      Represent the hash in another format.  | ||||
| 
 | ||||
|      @param {string} TYPE the output format | ||||
|      @return {object} the converted hash | ||||
|      */ | ||||
|      async convert(TYPE) { | ||||
|           if (TYPE) { | ||||
|                switch (TYPE) { | ||||
|                     case `Uint8Array`: | ||||
|                          this[TYPE] = new Uint8Array(await this.arrayBuffer); | ||||
|                          break; | ||||
|                     case `Array`:  | ||||
|                          this[TYPE] = Array.from(new Uint8Array(await this.arrayBuffer)); | ||||
|                          break; | ||||
|                     case `Number`:  | ||||
|                          this[TYPE] = parseInt((Array.from(new Uint8Array(await this.arrayBuffer))).join()); | ||||
|                          break; | ||||
|                     case `String`:  | ||||
|                          this[TYPE] = Array.from(new Uint8Array(await this.arrayBuffer)).join(``); | ||||
|                }; | ||||
|       | ||||
|                return(this[TYPE]) | ||||
|           } | ||||
|      } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| module.exports = Hash; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue