pathstringifier.js 832 B

1234567891011121314151617181920212223242526272829
  1. export const escapeKey = (key) => key.replace(/\./g, '\\.');
  2. export const stringifyPath = (path) => path
  3. .map(String)
  4. .map(escapeKey)
  5. .join('.');
  6. export const parsePath = (string) => {
  7. const result = [];
  8. let segment = '';
  9. for (let i = 0; i < string.length; i++) {
  10. let char = string.charAt(i);
  11. const isEscapedDot = char === '\\' && string.charAt(i + 1) === '.';
  12. if (isEscapedDot) {
  13. segment += '.';
  14. i++;
  15. continue;
  16. }
  17. const isEndOfSegment = char === '.';
  18. if (isEndOfSegment) {
  19. result.push(segment);
  20. segment = '';
  21. continue;
  22. }
  23. segment += char;
  24. }
  25. const lastSegment = segment;
  26. result.push(lastSegment);
  27. return result;
  28. };
  29. //# sourceMappingURL=pathstringifier.js.map