{"version":3,"file":"snakeCase.mjs","names":[],"sources":["../../src/string/snakeCase.ts"],"sourcesContent":["/**\n * Converts string to snake case.\n *\n * @param str - The string to convert\n * @returns The snake cased string\n *\n * @example\n * snakeCase('Foo Bar') // => 'foo_bar'\n * snakeCase('fooBar') // => 'foo_bar'\n * snakeCase('foo-bar') // => 'foo_bar'\n */\nexport function snakeCase(str: string): string {\n  if (typeof str !== 'string') {\n    return '';\n  }\n\n  // Insert an underscore before uppercase letters preceded by lowercase letters\n  // and replace separators with underscores\n  return str\n    .replace(/([a-z])([A-Z])/g, '$1_$2')\n    .replace(/([A-Z])([A-Z][a-z])/g, '$1_$2')\n    .replace(/[-\\s_]+/g, '_')\n    .replace(/^_+|_+$/g, '') // Remove leading/trailing underscores\n    .toLowerCase();\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,UAAU,KAAqB;CAC7C,IAAI,OAAO,QAAQ,UACjB,OAAO;CAKT,OAAO,IACJ,QAAQ,mBAAmB,OAAO,CAAC,CACnC,QAAQ,wBAAwB,OAAO,CAAC,CACxC,QAAQ,YAAY,GAAG,CAAC,CACxB,QAAQ,YAAY,EAAE,CAAC,CACvB,YAAY;AACjB"}