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