UNPKG

autumn-js

Version:

Autumn JS Library

28 lines (24 loc) 728 B
"use client"; // src/libraries/react/utils/toSnakeCase.ts function stringToSnakeCase(str) { return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase(); } var toSnakeCase = (obj, excludeKeys) => { if (Array.isArray(obj)) { return obj.map((item) => toSnakeCase(item, excludeKeys)); } else if (obj !== null && typeof obj === "object") { return Object.fromEntries( Object.entries(obj).map(([key, value]) => { const snakeKey = stringToSnakeCase(key); if (excludeKeys && excludeKeys.includes(key)) { return [snakeKey, value]; } return [snakeKey, toSnakeCase(value, excludeKeys)]; }) ); } return obj; }; export { toSnakeCase };