UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

33 lines (32 loc) 1.07 kB
"use strict"; 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;