/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
const checkForNullOrUndefined = <T>(obj: T, message: string): NonNullable<T> => {
	if( obj === null || obj === undefined) {
		throw new Error(message);
	}
	return obj;
};

const isNullOrUndefined = <T> (obj: T): boolean => {
	return obj === null || obj === undefined;
};

const equalsIgnoreCase = (input1: string, input2: string): boolean => {
	if (isNullOrUndefined(input1) && isNullOrUndefined(input2)) {
		return true;
	}

	if (isNullOrUndefined(input1) || isNullOrUndefined(input2)) {
		return false;
	}

	return input1.toUpperCase() === input2.toUpperCase();
};


export { checkForNullOrUndefined, isNullOrUndefined, equalsIgnoreCase };