function validateStagingInput(input, expectedValue, defaultValue) {
// Check if input is provided
if (!input) {
console.warn(`Missing value for ${expectedValue}. Using default: ${defaultValue}`);
return defaultValue; // Return default value if input is missing
}
// Check if input is a string
if (typeof input !== 'string') {
console.warn(`${expectedValue} must be a string. Using default: ${defaultValue}`);
return defaultValue;
}
// Check if input matches the expected value (case-insensitive)
if (input.toLowerCase() !== expectedValue.toLowerCase()) {
console.warn(`Invalid ${expectedValue}. Expected: ${expectedValue}, Got: ${input}. Using default: ${defaultValue}`);
return defaultValue;
}
return input; // Return the validated input
}
// Example usage (can be adapted for different inputs)
function processStagingConfig(input1, input2) {
const validInput1 = validateStagingInput(input1, "environment", "staging"); //defaults to staging
const validInput2 = validateStagingInput(input2, "apiEndpoint", "https://default.api.com"); //defaults to https://default.api.com
console.log("Valid Input 1:", validInput1);
console.log("Valid Input 2:", validInput2);
}
//Example calls
processStagingConfig("staging", "https://staging.api.com");
processStagingConfig(null, "apiEndpoint"); //testing null input
processStagingConfig(123, "environment"); //testing number input
processStagingConfig("Staging", "environment"); //testing case insensitivity
Add your comment