isValidConfig static method

bool isValidConfig(
  1. ToastrConfig config
)

Validates if a ToastrConfig is properly configured with security checks

Implementation

static bool isValidConfig(ToastrConfig config) {
  // Message cannot be empty after sanitization
  final sanitizedMessage = sanitizeHtml(config.message);
  if (sanitizedMessage.trim().isEmpty) {
    return false;
  }

  // Check for dangerous patterns in original message
  if (ToastrSecurityConfig.containsDangerousPattern(config.message)) {
    return false;
  }

  // Duration should be within safe limits
  if (config.duration < ToastrSecurityConfig.minDuration ||
      config.duration > ToastrSecurityConfig.maxDuration) {
    return false;
  }

  // Animation durations should be reasonable
  if (config.showDuration > ToastrSecurityConfig.maxAnimationDuration ||
      config.hideDuration > ToastrSecurityConfig.maxAnimationDuration) {
    return false;
  }

  // Show and hide durations should be positive
  if (config.showDuration.inMilliseconds <= 0 ||
      config.hideDuration.inMilliseconds <= 0) {
    return false;
  }

  // Validate title if present
  if (config.title != null) {
    final sanitizedTitle = sanitizeHtml(config.title!);
    if (sanitizedTitle.trim().isEmpty) {
      return false;
    }

    if (ToastrSecurityConfig.containsDangerousPattern(config.title!)) {
      return false;
    }
  }

  return true;
}