| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- export const escapeKey = (key) => key.replace(/\\/g, '\\\\').replace(/\./g, '\\.');
- export const stringifyPath = (path) => path
- .map(String)
- .map(escapeKey)
- .join('.');
- export const parsePath = (string, legacyPaths) => {
- const result = [];
- let segment = '';
- for (let i = 0; i < string.length; i++) {
- let char = string.charAt(i);
- if (!legacyPaths && char === '\\') {
- const escaped = string.charAt(i + 1);
- if (escaped === '\\') {
- segment += '\\';
- i++;
- continue;
- }
- else if (escaped !== '.') {
- throw Error('invalid path');
- }
- }
- const isEscapedDot = char === '\\' && string.charAt(i + 1) === '.';
- if (isEscapedDot) {
- segment += '.';
- i++;
- continue;
- }
- const isEndOfSegment = char === '.';
- if (isEndOfSegment) {
- result.push(segment);
- segment = '';
- continue;
- }
- segment += char;
- }
- const lastSegment = segment;
- result.push(lastSegment);
- return result;
- };
- //# sourceMappingURL=pathstringifier.js.map
|