Auto-indexing service and GraphQL API for AT Protocol Records quickslice.slices.network/
atproto gleam graphql
at main 44 lines 996 B view raw
1/** 2 * Base error class for Quickslice client errors 3 */ 4export class QuicksliceError extends Error { 5 constructor(message: string) { 6 super(message); 7 this.name = 'QuicksliceError'; 8 } 9} 10 11/** 12 * Thrown when authentication is required but user is not logged in 13 */ 14export class LoginRequiredError extends QuicksliceError { 15 constructor(message = 'Login required') { 16 super(message); 17 this.name = 'LoginRequiredError'; 18 } 19} 20 21/** 22 * Thrown when network request fails 23 */ 24export class NetworkError extends QuicksliceError { 25 constructor(message: string) { 26 super(message); 27 this.name = 'NetworkError'; 28 } 29} 30 31/** 32 * Thrown when OAuth flow fails 33 */ 34export class OAuthError extends QuicksliceError { 35 public code: string; 36 public description?: string; 37 38 constructor(code: string, description?: string) { 39 super(`OAuth error: ${code}${description ? ` - ${description}` : ''}`); 40 this.name = 'OAuthError'; 41 this.code = code; 42 this.description = description; 43 } 44}