13 lines
394 B
JavaScript
Executable file
13 lines
394 B
JavaScript
Executable file
// warning: extremely hot code path.
|
|
// This has been meticulously optimized for use
|
|
// within npm install on large package trees.
|
|
// Do not edit without careful benchmarking.
|
|
module.exports = str => {
|
|
let i = str.length - 1
|
|
let slashesStart = -1
|
|
while (i > -1 && str.charAt(i) === '/') {
|
|
slashesStart = i
|
|
i--
|
|
}
|
|
return slashesStart === -1 ? str : str.slice(0, slashesStart)
|
|
}
|