diff options
author | Rich Trott <rtrott@gmail.com> | 2016-03-12 07:28:39 +0300 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2016-03-16 20:19:41 +0300 |
commit | 9de9a08587e0350b8f8cb07ac6f3635dd5365e8e (patch) | |
tree | 55c328ca92c490991aa4d8f7c588a021bad3b63b /lib/path.js | |
parent | 85ab4a5f1281c4e1dd06450ac7bd3250326267fa (diff) |
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>
Diffstat (limited to 'lib/path.js')
-rw-r--r-- | lib/path.js | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/lib/path.js b/lib/path.js index 64e34ecde66..b42889ebfc7 100644 --- a/lib/path.js +++ b/lib/path.js @@ -140,6 +140,18 @@ function normalizeStringPosix(path, allowAboveRoot) { 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 = { // path.resolve([from ...], to) @@ -970,20 +982,10 @@ const win32 = { format: function format(pathObject) { if (pathObject === null || typeof pathObject !== 'object') { throw new TypeError( - 'Parameter "pathObject" must be an object, not ' + typeof pathObject + `Parameter "pathObject" must be an object, not ${typeof 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; + return _format('\\', pathObject); }, @@ -1525,20 +1527,10 @@ const posix = { format: function format(pathObject) { if (pathObject === null || typeof pathObject !== 'object') { throw new TypeError( - 'Parameter "pathObject" must be an object, not ' + typeof pathObject + `Parameter "pathObject" must be an object, not ${typeof 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; + return _format('/', pathObject); }, |