path: refactor path.format() repeated code
PR-URL: https://github.com/nodejs/node/pull/5673 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James Snell <jasnell@gmail.com> Reviewed-By: Brian White <mscdex@mscdex.net>
This commit is contained in:
parent
85ab4a5f12
commit
9de9a08587
40
lib/path.js
40
lib/path.js
@ -140,6 +140,18 @@ function normalizeStringPosix(path, allowAboveRoot) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _format(sep, pathObject) {
|
||||||
|
const dir = pathObject.dir || pathObject.root;
|
||||||
|
const base = pathObject.base ||
|
||||||
|
((pathObject.name || '') + (pathObject.ext || ''));
|
||||||
|
if (!dir) {
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
if (dir === pathObject.root) {
|
||||||
|
return dir + base;
|
||||||
|
}
|
||||||
|
return dir + sep + base;
|
||||||
|
}
|
||||||
|
|
||||||
const win32 = {
|
const win32 = {
|
||||||
// path.resolve([from ...], to)
|
// path.resolve([from ...], to)
|
||||||
@ -970,20 +982,10 @@ const win32 = {
|
|||||||
format: function format(pathObject) {
|
format: function format(pathObject) {
|
||||||
if (pathObject === null || typeof pathObject !== 'object') {
|
if (pathObject === null || typeof pathObject !== 'object') {
|
||||||
throw new TypeError(
|
throw new TypeError(
|
||||||
'Parameter "pathObject" must be an object, not ' + typeof pathObject
|
`Parameter "pathObject" must be an object, not ${typeof pathObject}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
return _format('\\', pathObject);
|
||||||
var dir = pathObject.dir || pathObject.root;
|
|
||||||
var base = pathObject.base ||
|
|
||||||
((pathObject.name || '') + (pathObject.ext || ''));
|
|
||||||
if (!dir) {
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
if (dir === pathObject.root) {
|
|
||||||
return dir + base;
|
|
||||||
}
|
|
||||||
return dir + win32.sep + base;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -1525,20 +1527,10 @@ const posix = {
|
|||||||
format: function format(pathObject) {
|
format: function format(pathObject) {
|
||||||
if (pathObject === null || typeof pathObject !== 'object') {
|
if (pathObject === null || typeof pathObject !== 'object') {
|
||||||
throw new TypeError(
|
throw new TypeError(
|
||||||
'Parameter "pathObject" must be an object, not ' + typeof pathObject
|
`Parameter "pathObject" must be an object, not ${typeof pathObject}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
return _format('/', pathObject);
|
||||||
var dir = pathObject.dir || pathObject.root;
|
|
||||||
var base = pathObject.base ||
|
|
||||||
((pathObject.name || '') + (pathObject.ext || ''));
|
|
||||||
if (!dir) {
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
if (dir === pathObject.root) {
|
|
||||||
return dir + base;
|
|
||||||
}
|
|
||||||
return dir + posix.sep + base;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user