SOLID Principles in JavaScript

Which SOLID principle suggests that abstractions should not depend on details?
// Before:
class UserService {
  constructor() {
    this.repository = new MySQLRepository();
    this.logger = new FileLogger();
  }
}

// After:
class UserService {
  constructor(
    private repository: Repository,
    private logger: Logger
  ) {}
}
Next Question (18/20)