@newdash/newdash
Version:
javascript/typescript utility library
33 lines (32 loc) • 1.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const words_1 = __importDefault(require("./words"));
const toString_1 = __importDefault(require("./toString"));
/**
* Converts `string` to
* [snake case](https://en.wikipedia.org/wiki/Snake_case).
*
* @since 3.0.0
* @category String
* @param {string} [string=''] The string to convert.
* @returns {string} Returns the snake cased string.
* @see camelCase, lowerCase, kebabCase, startCase, upperCase, upperFirst
* @example
*
* snakeCase('Foo Bar')
* // => 'foo_bar'
*
* snakeCase('fooBar')
* // => 'foo_bar'
*
* snakeCase('--FOO-BAR--')
* // => 'foo_bar'
*
* snakeCase('foo2bar')
* // => 'foo_2_bar'
*/
const snakeCase = (string) => ((0, words_1.default)((0, toString_1.default)(string).replace(/['\u2019]/g, "")).reduce((result, word, index) => (result + (index ? "_" : "") + word.toLowerCase()), ""));
exports.default = snakeCase;