path: remove dead code
A couple of code parts could not be reached due to resolving the path in the beginning. That "normalizes" the path in a way that some code branches became obsolete. PR-URL: https://github.com/nodejs/node/pull/26916 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
parent
520b3e63ea
commit
8df9fdcc39
51
lib/path.js
51
lib/path.js
@ -1054,29 +1054,18 @@ const posix = {
|
||||
if (from === to)
|
||||
return '';
|
||||
|
||||
// Trim leading forward slashes.
|
||||
from = posix.resolve(from);
|
||||
to = posix.resolve(to);
|
||||
|
||||
if (from === to)
|
||||
return '';
|
||||
|
||||
// Trim any leading backslashes
|
||||
let fromStart = 1;
|
||||
while (fromStart < from.length &&
|
||||
from.charCodeAt(fromStart) === CHAR_FORWARD_SLASH) {
|
||||
fromStart++;
|
||||
}
|
||||
const fromStart = 1;
|
||||
const fromEnd = from.length;
|
||||
const fromLen = (fromEnd - fromStart);
|
||||
|
||||
// Trim any leading backslashes
|
||||
let toStart = 1;
|
||||
while (toStart < to.length &&
|
||||
to.charCodeAt(toStart) === CHAR_FORWARD_SLASH) {
|
||||
toStart++;
|
||||
}
|
||||
const toEnd = to.length;
|
||||
const toLen = (toEnd - toStart);
|
||||
const fromLen = fromEnd - fromStart;
|
||||
const toStart = 1;
|
||||
const toLen = to.length - toStart;
|
||||
|
||||
// Compare paths to find the longest common path from root
|
||||
const length = (fromLen < toLen ? fromLen : toLen);
|
||||
@ -1101,38 +1090,26 @@ const posix = {
|
||||
// For example: from='/'; to='/foo'
|
||||
return to.slice(toStart + i);
|
||||
}
|
||||
} else if (fromLen > length) {
|
||||
if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) {
|
||||
// We get here if `to` is the exact base path for `from`.
|
||||
// For example: from='/foo/bar/baz'; to='/foo/bar'
|
||||
lastCommonSep = i;
|
||||
} else if (i === 0) {
|
||||
// We get here if `to` is the root.
|
||||
// For example: from='/foo'; to='/'
|
||||
lastCommonSep = 0;
|
||||
}
|
||||
} else if (fromLen > length &&
|
||||
from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) {
|
||||
// We get here if `to` is the exact base path for `from`.
|
||||
// For example: from='/foo/bar/baz'; to='/foo/bar'
|
||||
lastCommonSep = i;
|
||||
}
|
||||
}
|
||||
|
||||
var out = '';
|
||||
let out = '';
|
||||
// Generate the relative path based on the path difference between `to`
|
||||
// and `from`
|
||||
// and `from`.
|
||||
for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {
|
||||
if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) {
|
||||
out += out.length === 0 ? '..' : '/..';
|
||||
}
|
||||
}
|
||||
|
||||
toStart += lastCommonSep;
|
||||
|
||||
// Lastly, append the rest of the destination (`to`) path that comes after
|
||||
// the common path parts
|
||||
if (out.length > 0)
|
||||
return `${out}${to.slice(toStart)}`;
|
||||
|
||||
if (to.charCodeAt(toStart) === CHAR_FORWARD_SLASH)
|
||||
++toStart;
|
||||
return to.slice(toStart);
|
||||
// the common path parts.
|
||||
return `${out}${to.slice(toStart + lastCommonSep)}`;
|
||||
},
|
||||
|
||||
toNamespacedPath(path) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user