isValidLink static method

bool isValidLink(
  1. String link, {
  2. List<String> protocols = const ['http', 'https', 'ftp'],
  3. List<String> hostWhitelist = const [],
  4. List<String> hostBlacklist = const [],
  5. bool requireTld = true,
  6. bool requireProtocol = false,
  7. bool allowUnderscore = false,
})

Method to verify if the link is valid or not

Implementation

static bool isValidLink(
  String link, {
  List<String> protocols = const ['http', 'https', 'ftp'],
  List<String> hostWhitelist = const [],
  List<String> hostBlacklist = const [],
  bool requireTld = true,
  bool requireProtocol = false,
  bool allowUnderscore = false,
}) {
  if (link.isEmpty) return false;
  final options = <String, Object>{
    'require_tld': requireTld,
    'require_protocol': requireProtocol,
    'allow_underscores': allowUnderscore,
    // 'require_port': false,
    // 'require_valid_protocol': true,
    // 'allow_trailing_dot': false,
    // 'allow_protocol_relative_urls': false,
    // 'allow_fragments': true,
    // 'allow_query_components': true,
    // 'disallow_auth': false,
    // 'validate_length': true
  };
  if (protocols.isNotEmpty) options['protocols'] = protocols;
  if (hostWhitelist.isNotEmpty) options['host_whitelist'] = hostWhitelist;
  if (hostBlacklist.isNotEmpty) options['host_blacklist'] = hostBlacklist;

  return isURL(link, options);
}