PATH:
usr
/
lib
/
node_modules
/
npm
/
node_modules
/
tar
/
lib
// unix absolute paths are also absolute on win32, so we use this for both const { isAbsolute, parse } = require('path').win32 // returns [root, stripped] // Note that windows will think that //x/y/z/a has a "root" of //x/y, and in // those cases, we want to sanitize it to x/y/z/a, not z/a, so we strip / // explicitly if it's the first character. // drive-specific relative paths on Windows get their root stripped off even // though they are not absolute, so `c:../foo` becomes ['c:', '../foo'] module.exports = path => { let r = '' let parsed = parse(path) while (isAbsolute(path) || parsed.root) { // windows will think that //x/y/z has a "root" of //x/y/ // but strip the //?/C:/ off of //?/C:/path const root = path.charAt(0) === '/' && path.slice(0, 4) !== '//?/' ? '/' : parsed.root path = path.substr(root.length) r += root parsed = parse(path) } return [r, path] }
[-] write-entry.js
[edit]
[-] unpack.js
[edit]
[-] read-entry.js
[edit]
[-] strip-trailing-slashes.js
[edit]
[-] normalize-windows-path.js
[edit]
[-] high-level-opt.js
[edit]
[+]
..
[-] pack.js
[edit]
[-] pax.js
[edit]
[-] header.js
[edit]
[-] normalize-unicode.js
[edit]
[-] warn-mixin.js
[edit]
[-] path-reservations.js
[edit]
[-] mode-fix.js
[edit]
[-] parse.js
[edit]
[-] types.js
[edit]
[-] replace.js
[edit]
[-] list.js
[edit]
[-] mkdir.js
[edit]
[-] update.js
[edit]
[-] winchars.js
[edit]
[-] get-write-flag.js
[edit]
[-] extract.js
[edit]
[-] strip-absolute-path.js
[edit]
[-] large-numbers.js
[edit]
[-] create.js
[edit]