refactor(gateway): use switch-case to avoid repetitive code
This commit is contained in:
		
							parent
							
								
									3695b81de6
								
							
						
					
					
						commit
						f9e07f4f43
					
				
					 1 changed files with 50 additions and 44 deletions
				
			
		|  | @ -182,41 +182,46 @@ export class Gateway extends EventEmitter { | |||
|     this.emit('close', event.code, event.reason) | ||||
|     this.debug(`Connection Closed with code: ${event.code}`) | ||||
| 
 | ||||
|     if (event.code === GatewayCloseCodes.UNKNOWN_ERROR) { | ||||
|     switch (event.code) { | ||||
|       case GatewayCloseCodes.UNKNOWN_ERROR: | ||||
|         this.debug('API has encountered Unknown Error. Reconnecting...') | ||||
|         // eslint-disable-next-line @typescript-eslint/no-floating-promises
 | ||||
|         this.reconnect() | ||||
|     } else if (event.code === GatewayCloseCodes.UNKNOWN_OPCODE) { | ||||
|         break | ||||
|       case GatewayCloseCodes.UNKNOWN_OPCODE: | ||||
|         throw new Error("Unknown OP Code was sent. This shouldn't happen!") | ||||
|     } else if (event.code === GatewayCloseCodes.DECODE_ERROR) { | ||||
|       case GatewayCloseCodes.DECODE_ERROR: | ||||
|         throw new Error("Invalid Payload was sent. This shouldn't happen!") | ||||
|     } else if (event.code === GatewayCloseCodes.NOT_AUTHENTICATED) { | ||||
|       case GatewayCloseCodes.NOT_AUTHENTICATED: | ||||
|         throw new Error('Not Authorized: Payload was sent before Identifying.') | ||||
|     } else if (event.code === GatewayCloseCodes.AUTHENTICATION_FAILED) { | ||||
|       case GatewayCloseCodes.AUTHENTICATION_FAILED: | ||||
|         throw new Error('Invalid Token provided!') | ||||
|     } else if (event.code === GatewayCloseCodes.INVALID_SEQ) { | ||||
|       case GatewayCloseCodes.INVALID_SEQ: | ||||
|         this.debug('Invalid Seq was sent. Reconnecting.') | ||||
|         // eslint-disable-next-line @typescript-eslint/no-floating-promises
 | ||||
|         this.reconnect() | ||||
|     } else if (event.code === GatewayCloseCodes.RATE_LIMITED) { | ||||
|         break | ||||
|       case GatewayCloseCodes.RATE_LIMITED: | ||||
|         throw new Error("You're ratelimited. Calm down.") | ||||
|     } else if (event.code === GatewayCloseCodes.SESSION_TIMED_OUT) { | ||||
|       case GatewayCloseCodes.SESSION_TIMED_OUT: | ||||
|         this.debug('Session Timeout. Reconnecting.') | ||||
|         // eslint-disable-next-line @typescript-eslint/no-floating-promises
 | ||||
|         this.reconnect(true) | ||||
|     } else if (event.code === GatewayCloseCodes.INVALID_SHARD) { | ||||
|         break | ||||
|       case GatewayCloseCodes.INVALID_SHARD: | ||||
|         this.debug('Invalid Shard was sent. Reconnecting.') | ||||
|         // eslint-disable-next-line @typescript-eslint/no-floating-promises
 | ||||
|         this.reconnect() | ||||
|     } else if (event.code === GatewayCloseCodes.SHARDING_REQUIRED) { | ||||
|         break | ||||
|       case GatewayCloseCodes.SHARDING_REQUIRED: | ||||
|         throw new Error("Couldn't connect. Sharding is required!") | ||||
|     } else if (event.code === GatewayCloseCodes.INVALID_API_VERSION) { | ||||
|       case GatewayCloseCodes.INVALID_API_VERSION: | ||||
|         throw new Error("Invalid API Version was used. This shouldn't happen!") | ||||
|     } else if (event.code === GatewayCloseCodes.INVALID_INTENTS) { | ||||
|       case GatewayCloseCodes.INVALID_INTENTS: | ||||
|         throw new Error('Invalid Intents') | ||||
|     } else if (event.code === GatewayCloseCodes.DISALLOWED_INTENTS) { | ||||
|       case GatewayCloseCodes.DISALLOWED_INTENTS: | ||||
|         throw new Error("Given Intents aren't allowed") | ||||
|     } else { | ||||
|       default: | ||||
|         this.debug( | ||||
|           'Unknown Close code, probably connection error. Reconnecting in 5s.' | ||||
|         ) | ||||
|  | @ -226,6 +231,7 @@ export class Gateway extends EventEmitter { | |||
|         } | ||||
|         await delay(5000) | ||||
|         await this.reconnect(true) | ||||
|         break | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue