remeda
Version:
A utility library for JavaScript and Typescript.
44 lines (43 loc) • 1.59 kB
text/typescript
import { Join, Words } from "type-fest";
//#region src/toSnakeCase.d.ts
type SnakeCase<S extends string> = string extends S ? string : Lowercase<Join<Words<S>, "_">>;
/**
* Convert a text to snake-case by splitting it into words and joining them back
* together with "_", and then lowering the case of the result.
*
* For other case manipulations see: `toLowerCase`, `toUpperCase`, `capitalize`,
* `uncapitalize`, `toCamelCase`, and `toKebabCase`.
*
* !IMPORTANT: This function might work _incorrectly_ for **non-ascii** inputs.
*
* @param data - A string.
* @signature
* R.toSnakeCase(data);
* @example
* R.toSnakeCase("hello world"); // "hello_world"
* R.toSnakeCase("__HELLO_WORLD__"); // "hello_world"
* @dataFirst
* @category String
*/
declare function toSnakeCase<S extends string>(data: S): SnakeCase<S>;
/**
* Convert a text to snake-case by splitting it into words and joining them back
* together with "_", and then lowering the case of the result.
*
* For other case manipulations see: `toLowerCase`, `toUpperCase`, `capitalize`,
* `uncapitalize`, `toCamelCase`, and `toKebabCase`.
*
* !IMPORTANT: This function might work _incorrectly_ for **non-ascii** inputs.
*
* @signature
* R.toSnakeCase()(data);
* @example
* R.pipe("hello world", R.toSnakeCase()); // "hello_world"
* R.pipe("__HELLO_WORLD__", toSnakeCase()); // "hello_world"
* @dataLast
* @category String
*/
declare function toSnakeCase(): <S extends string>(data: S) => SnakeCase<S>;
//#endregion
export { toSnakeCase };
//# sourceMappingURL=toSnakeCase-BO0BrNvS.d.cts.map