import { Utils } from "./utils";

const CanLaunchWhitelist = [
  "https://",
  "http://",
  "ssh://",
  "ftp://",
  "sftp://",
  "irc://",
  "vnc://",
  // https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri
  "rdp://", // Legacy RDP URI scheme
  "ms-rd:", // Preferred RDP URI scheme
  "chrome://",
  "iosapp://",
  "androidapp://",
];

export class SafeUrls {
  static canLaunch(uri: string): boolean {
    if (Utils.isNullOrWhitespace(uri)) {
      return false;
    }

    for (let i = 0; i < CanLaunchWhitelist.length; i++) {
      if (uri.indexOf(CanLaunchWhitelist[i]) === 0) {
        return true;
      }
    }

    return false;
  }
}
