Join strings to form a valid path.
Returns a String, the result of joining parts
. filename
is appended to the returned path if the last element of parts
does not end with a file extension.
// without `filename`
pppath(['/foo/', '/bar']); //=> '/foo/bar'
pppath(['http://', '/foo/', '/bar']); //=> 'http://foo/bar'
// with `filename`
pppath(['/foo/', '/bar'], 'index.html'); //=> '/foo/bar/index.html'
pppath(['/foo/', '/bar/'], 'index.html'); //=> '/foo/bar/index.html'
pppath(['/foo/', '/bar.js'], 'index.html'); //=> '/foo/bar.js'
pppath(['http://', '/foo/', '/bar'], 'index.html'); //=> 'http://foo/bar/index.html'
pppath(['http://', '/foo/', '/bar/'], 'index.html'); //=> 'http://foo/bar/index.html'
pppath(['http://', '/foo/', '/bar.js'], 'index.html'); //=> 'http://foo/bar.js'
Consecutive /
will be replaced by a single /
, with the exception that the character sequence ://
will remain intact. This is not the behaviour of the Node API’s path.join
:
// :(
path.join('http://', '/foo/', '/bar'); //=> 'http:/foo/bar'
// :)
pppath(['http://', '/foo/', '/bar']); //=> 'http://foo/bar'
More usage examples are in the tests.
Install via npm:
$ npm i --save pppath
- 0.1.0
- Initial release