UNPKG

moltres-utils

Version:
52 lines (39 loc) 1.6 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/es6.string.trim"); require("core-js/modules/es6.regexp.replace"); require("core-js/modules/es6.regexp.constructor"); var _curry = _interopRequireDefault(require("../common/curry")); var _memoize = _interopRequireDefault(require("../common/memoize")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var charCodeOfDot = '.'.charCodeAt(0); var reEscapeChar = /\\(\\)?/g; var rePropName = RegExp( // Match anything that isn't a dot or bracket. '[^.[\\]]+' + '|' + // Or match property names within brackets. '\\[(?:' + // Match a non-string expression. '([^"\'].*)' + '|' + // Or match strings (supports escaping characters). '(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2' + ')\\]' + '|' + // Or match "" as the space between consecutive dots or empty brackets. '(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))', 'g'); var stringToPath = (0, _curry.default)((0, _memoize.default)(function (string) { var result = []; if (string.charCodeAt(0) === charCodeOfDot) { result.push(''); } string.replace(rePropName, function (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; })); var _default = stringToPath; exports.default = _default; //# sourceMappingURL=stringToPath.js.map