Add parsing of AD1 files. Memorize window size and location.
This commit is contained in:
32
src/util/deepLowercaseKeys.ts
Normal file
32
src/util/deepLowercaseKeys.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Deep renames all keys in an object to lowercase
|
||||
* @param obj - The object to transform
|
||||
* @returns A new object with all keys converted to lowercase
|
||||
*/
|
||||
function deepLowerCaseKeys<T = any>(obj: any): T {
|
||||
if (!obj || typeof obj !== "object") {
|
||||
return obj;
|
||||
}
|
||||
|
||||
// Handle arrays
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map((item) => deepLowerCaseKeys(item)) as unknown as T;
|
||||
}
|
||||
|
||||
// Handle objects
|
||||
return Object.keys(obj).reduce(
|
||||
(result, key) => {
|
||||
const value = obj[key];
|
||||
const lowercaseKey = key.toLowerCase();
|
||||
|
||||
result[lowercaseKey] =
|
||||
typeof value === "object" && value !== null
|
||||
? deepLowerCaseKeys(value)
|
||||
: value;
|
||||
|
||||
return result;
|
||||
},
|
||||
{} as Record<string, any>
|
||||
) as T;
|
||||
}
|
||||
export default deepLowerCaseKeys;
|
||||
Reference in New Issue
Block a user