.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / lodash / _stringToPath.js
1 var memoizeCapped = require('./_memoizeCapped');
2
3 /** Used to match property names within property paths. */
4 var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
5
6 /** Used to match backslashes in property paths. */
7 var reEscapeChar = /\\(\\)?/g;
8
9 /**
10  * Converts `string` to a property path array.
11  *
12  * @private
13  * @param {string} string The string to convert.
14  * @returns {Array} Returns the property path array.
15  */
16 var stringToPath = memoizeCapped(function(string) {
17   var result = [];
18   if (string.charCodeAt(0) === 46 /* . */) {
19     result.push('');
20   }
21   string.replace(rePropName, function(match, number, quote, subString) {
22     result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
23   });
24   return result;
25 });
26
27 module.exports = stringToPath;