lodash.snakecase
Advanced tools
Comparing version 4.0.1 to 4.1.0
294
index.js
/** | ||
* lodash 4.0.1 (Custom Build) <https://lodash.com/> | ||
* lodash (Custom Build) <https://lodash.com/> | ||
* Build: `lodash modularize exports="npm" -o ./` | ||
@@ -9,8 +9,56 @@ * Copyright jQuery Foundation and other contributors <https://jquery.org/> | ||
*/ | ||
var deburr = require('lodash.deburr'), | ||
words = require('lodash.words'); | ||
/** Used as references for various `Number` constants. */ | ||
var INFINITY = 1 / 0; | ||
/** `Object#toString` result references. */ | ||
var symbolTag = '[object Symbol]'; | ||
/** Used to match non-compound words composed of alphanumeric characters. */ | ||
var reBasicWord = /[a-zA-Z0-9]+/g; | ||
/** Used to match latin-1 supplementary letters (excluding mathematical operators). */ | ||
var reLatin1 = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g; | ||
/** Used to compose unicode character classes. */ | ||
var rsAstralRange = '\\ud800-\\udfff', | ||
rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', | ||
rsComboSymbolsRange = '\\u20d0-\\u20f0', | ||
rsDingbatRange = '\\u2700-\\u27bf', | ||
rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', | ||
rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', | ||
rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', | ||
rsPunctuationRange = '\\u2000-\\u206f', | ||
rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', | ||
rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', | ||
rsVarRange = '\\ufe0e\\ufe0f', | ||
rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; | ||
/** Used to compose unicode capture groups. */ | ||
var rsApos = "['\u2019]"; | ||
var rsApos = "['\u2019]", | ||
rsBreak = '[' + rsBreakRange + ']', | ||
rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', | ||
rsDigits = '\\d+', | ||
rsDingbat = '[' + rsDingbatRange + ']', | ||
rsLower = '[' + rsLowerRange + ']', | ||
rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', | ||
rsFitz = '\\ud83c[\\udffb-\\udfff]', | ||
rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', | ||
rsNonAstral = '[^' + rsAstralRange + ']', | ||
rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', | ||
rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', | ||
rsUpper = '[' + rsUpperRange + ']', | ||
rsZWJ = '\\u200d'; | ||
/** Used to compose unicode regexes. */ | ||
var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')', | ||
rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')', | ||
rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', | ||
rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', | ||
reOptMod = rsModifier + '?', | ||
rsOptVar = '[' + rsVarRange + ']?', | ||
rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', | ||
rsSeq = rsOptVar + reOptMod + rsOptJoin, | ||
rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq; | ||
/** Used to match apostrophes. */ | ||
@@ -20,2 +68,51 @@ var reApos = RegExp(rsApos, 'g'); | ||
/** | ||
* Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and | ||
* [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). | ||
*/ | ||
var reComboMark = RegExp(rsCombo, 'g'); | ||
/** Used to match complex or compound words. */ | ||
var reComplexWord = RegExp([ | ||
rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', | ||
rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')', | ||
rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr, | ||
rsUpper + '+' + rsOptUpperContr, | ||
rsDigits, | ||
rsEmoji | ||
].join('|'), 'g'); | ||
/** Used to detect strings that need a more robust regexp to match words. */ | ||
var reHasComplexWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; | ||
/** Used to map latin-1 supplementary letters to basic latin letters. */ | ||
var deburredLetters = { | ||
'\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', | ||
'\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', | ||
'\xc7': 'C', '\xe7': 'c', | ||
'\xd0': 'D', '\xf0': 'd', | ||
'\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', | ||
'\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', | ||
'\xcC': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', | ||
'\xeC': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', | ||
'\xd1': 'N', '\xf1': 'n', | ||
'\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', | ||
'\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', | ||
'\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', | ||
'\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', | ||
'\xdd': 'Y', '\xfd': 'y', '\xff': 'y', | ||
'\xc6': 'Ae', '\xe6': 'ae', | ||
'\xde': 'Th', '\xfe': 'th', | ||
'\xdf': 'ss' | ||
}; | ||
/** Detect free variable `global` from Node.js. */ | ||
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; | ||
/** Detect free variable `self`. */ | ||
var freeSelf = typeof self == 'object' && self && self.Object === Object && self; | ||
/** Used as a reference to the global object. */ | ||
var root = freeGlobal || freeSelf || Function('return this')(); | ||
/** | ||
* A specialized version of `_.reduce` for arrays without support for | ||
@@ -25,3 +122,3 @@ * iteratee shorthands. | ||
* @private | ||
* @param {Array} array The array to iterate over. | ||
* @param {Array} [array] The array to iterate over. | ||
* @param {Function} iteratee The function invoked per iteration. | ||
@@ -35,3 +132,3 @@ * @param {*} [accumulator] The initial value. | ||
var index = -1, | ||
length = array.length; | ||
length = array ? array.length : 0; | ||
@@ -48,2 +145,61 @@ if (initAccum && length) { | ||
/** | ||
* The base implementation of `_.propertyOf` without support for deep paths. | ||
* | ||
* @private | ||
* @param {Object} object The object to query. | ||
* @returns {Function} Returns the new accessor function. | ||
*/ | ||
function basePropertyOf(object) { | ||
return function(key) { | ||
return object == null ? undefined : object[key]; | ||
}; | ||
} | ||
/** | ||
* Used by `_.deburr` to convert latin-1 supplementary letters to basic latin letters. | ||
* | ||
* @private | ||
* @param {string} letter The matched letter to deburr. | ||
* @returns {string} Returns the deburred letter. | ||
*/ | ||
var deburrLetter = basePropertyOf(deburredLetters); | ||
/** Used for built-in method references. */ | ||
var objectProto = Object.prototype; | ||
/** | ||
* Used to resolve the | ||
* [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) | ||
* of values. | ||
*/ | ||
var objectToString = objectProto.toString; | ||
/** Built-in value references. */ | ||
var Symbol = root.Symbol; | ||
/** Used to convert symbols to primitives and strings. */ | ||
var symbolProto = Symbol ? Symbol.prototype : undefined, | ||
symbolToString = symbolProto ? symbolProto.toString : undefined; | ||
/** | ||
* The base implementation of `_.toString` which doesn't convert nullish | ||
* values to empty strings. | ||
* | ||
* @private | ||
* @param {*} value The value to process. | ||
* @returns {string} Returns the string. | ||
*/ | ||
function baseToString(value) { | ||
// Exit early for strings to avoid a performance hit in some environments. | ||
if (typeof value == 'string') { | ||
return value; | ||
} | ||
if (isSymbol(value)) { | ||
return symbolToString ? symbolToString.call(value) : ''; | ||
} | ||
var result = (value + ''); | ||
return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; | ||
} | ||
/** | ||
* Creates a function like `_.camelCase`. | ||
@@ -62,2 +218,99 @@ * | ||
/** | ||
* Checks if `value` is object-like. A value is object-like if it's not `null` | ||
* and has a `typeof` result of "object". | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 4.0.0 | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is object-like, else `false`. | ||
* @example | ||
* | ||
* _.isObjectLike({}); | ||
* // => true | ||
* | ||
* _.isObjectLike([1, 2, 3]); | ||
* // => true | ||
* | ||
* _.isObjectLike(_.noop); | ||
* // => false | ||
* | ||
* _.isObjectLike(null); | ||
* // => false | ||
*/ | ||
function isObjectLike(value) { | ||
return !!value && typeof value == 'object'; | ||
} | ||
/** | ||
* Checks if `value` is classified as a `Symbol` primitive or object. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 4.0.0 | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is a symbol, else `false`. | ||
* @example | ||
* | ||
* _.isSymbol(Symbol.iterator); | ||
* // => true | ||
* | ||
* _.isSymbol('abc'); | ||
* // => false | ||
*/ | ||
function isSymbol(value) { | ||
return typeof value == 'symbol' || | ||
(isObjectLike(value) && objectToString.call(value) == symbolTag); | ||
} | ||
/** | ||
* Converts `value` to a string. An empty string is returned for `null` | ||
* and `undefined` values. The sign of `-0` is preserved. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 4.0.0 | ||
* @category Lang | ||
* @param {*} value The value to process. | ||
* @returns {string} Returns the string. | ||
* @example | ||
* | ||
* _.toString(null); | ||
* // => '' | ||
* | ||
* _.toString(-0); | ||
* // => '-0' | ||
* | ||
* _.toString([1, 2, 3]); | ||
* // => '1,2,3' | ||
*/ | ||
function toString(value) { | ||
return value == null ? '' : baseToString(value); | ||
} | ||
/** | ||
* Deburrs `string` by converting | ||
* [latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) | ||
* to basic latin letters and removing | ||
* [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 3.0.0 | ||
* @category String | ||
* @param {string} [string=''] The string to deburr. | ||
* @returns {string} Returns the deburred string. | ||
* @example | ||
* | ||
* _.deburr('déjà vu'); | ||
* // => 'deja vu' | ||
*/ | ||
function deburr(string) { | ||
string = toString(string); | ||
return string && string.replace(reLatin1, deburrLetter).replace(reComboMark, ''); | ||
} | ||
/** | ||
* Converts `string` to | ||
@@ -87,2 +340,31 @@ * [snake case](https://en.wikipedia.org/wiki/Snake_case). | ||
/** | ||
* Splits `string` into an array of its words. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 3.0.0 | ||
* @category String | ||
* @param {string} [string=''] The string to inspect. | ||
* @param {RegExp|string} [pattern] The pattern to match words. | ||
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. | ||
* @returns {Array} Returns the words of `string`. | ||
* @example | ||
* | ||
* _.words('fred, barney, & pebbles'); | ||
* // => ['fred', 'barney', 'pebbles'] | ||
* | ||
* _.words('fred, barney, & pebbles', /[^, ]+/g); | ||
* // => ['fred', 'barney', '&', 'pebbles'] | ||
*/ | ||
function words(string, pattern, guard) { | ||
string = toString(string); | ||
pattern = guard ? undefined : pattern; | ||
if (pattern === undefined) { | ||
pattern = reHasComplexWord.test(string) ? reComplexWord : reBasicWord; | ||
} | ||
return string.match(pattern) || []; | ||
} | ||
module.exports = snakeCase; |
{ | ||
"name": "lodash.snakecase", | ||
"version": "4.0.1", | ||
"version": "4.1.0", | ||
"description": "The lodash method `_.snakeCase` exported as a module.", | ||
@@ -16,7 +16,3 @@ "homepage": "https://lodash.com/", | ||
"repository": "lodash/lodash", | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }, | ||
"dependencies": { | ||
"lodash.deburr": "^4.0.0", | ||
"lodash.words": "^4.0.0" | ||
} | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } | ||
} |
@@ -1,2 +0,2 @@ | ||
# lodash.snakecase v4.0.1 | ||
# lodash.snakecase v4.1.0 | ||
@@ -18,2 +18,2 @@ The [lodash](https://lodash.com/) method `_.snakeCase` exported as a [Node.js](https://nodejs.org/) module. | ||
See the [documentation](https://lodash.com/docs#snakeCase) or [package source](https://github.com/lodash/lodash/blob/4.0.1-npm-packages/lodash.snakecase) for more details. | ||
See the [documentation](https://lodash.com/docs#snakeCase) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.snakecase) for more details. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14754
0
330
1
- Removedlodash.deburr@^4.0.0
- Removedlodash.words@^4.0.0
- Removedlodash.deburr@4.1.0(transitive)
- Removedlodash.words@4.2.0(transitive)