UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

29 lines (22 loc) 639 B
'use strict'; /* eslint-disable max-params */ var charCodeOfDot = '.'.charCodeAt(0); var reEscapeChar = /\\(\\)?/g; var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g; function stringToPath(string) { var result = []; if (string.charCodeAt(0) === charCodeOfDot) { result.push(''); } string.replace(rePropName, (match, expression, quote, subString) => { var key = match; if (quote) { key = subString.replace(reEscapeChar, '$1'); } else if (expression) { key = expression.trim(); } result.push(key); }); return result; } module.exports = stringToPath;