export class EmptyArgumentError extends Error {
  constructor(argName: string) {
    super(`"${argName}" cannot be empty`);
    this.name = this.constructor.name;
  }
}

export class AuthenticationError extends Error {
  constructor(message: string) {
    super(message);
    this.name = this.constructor.name;
  }
}

export class NetworkError extends Error {
  constructor(message: string) {
    super(message);
    this.name = this.constructor.name;
  }
}

export type RequestError = AuthenticationError | NetworkError | Error;

export class FeatureNotFoundError extends Error {
  constructor(message: string) {
    super(message);
    this.name = this.constructor.name;
  }
}
