1. function validateStagingInput(input, expectedValue, defaultValue) {
  2. // Check if input is provided
  3. if (!input) {
  4. console.warn(`Missing value for ${expectedValue}. Using default: ${defaultValue}`);
  5. return defaultValue; // Return default value if input is missing
  6. }
  7. // Check if input is a string
  8. if (typeof input !== 'string') {
  9. console.warn(`${expectedValue} must be a string. Using default: ${defaultValue}`);
  10. return defaultValue;
  11. }
  12. // Check if input matches the expected value (case-insensitive)
  13. if (input.toLowerCase() !== expectedValue.toLowerCase()) {
  14. console.warn(`Invalid ${expectedValue}. Expected: ${expectedValue}, Got: ${input}. Using default: ${defaultValue}`);
  15. return defaultValue;
  16. }
  17. return input; // Return the validated input
  18. }
  19. // Example usage (can be adapted for different inputs)
  20. function processStagingConfig(input1, input2) {
  21. const validInput1 = validateStagingInput(input1, "environment", "staging"); //defaults to staging
  22. const validInput2 = validateStagingInput(input2, "apiEndpoint", "https://default.api.com"); //defaults to https://default.api.com
  23. console.log("Valid Input 1:", validInput1);
  24. console.log("Valid Input 2:", validInput2);
  25. }
  26. //Example calls
  27. processStagingConfig("staging", "https://staging.api.com");
  28. processStagingConfig(null, "apiEndpoint"); //testing null input
  29. processStagingConfig(123, "environment"); //testing number input
  30. processStagingConfig("Staging", "environment"); //testing case insensitivity

Add your comment