An alternative to path.join() that prevents unanticipated .. directory access due to user-input but allows .. access done programmatically and intentionally.
npm install path-join-safernpm install path-join-saferJavaScript
import { pathJoinSafer, dotDot } from 'path-join-safer';console.log(pathJoinSafer('/foo','bar')); // /foo/bar
console.log(pathJoinSafer('..', '/foo','bar')); // Error: Path fragment at index 0 is .. (double dot). Pass in dotDot function instead.
console.log(pathJoinSafer(dotDot(), '/foo','bar')); // ../foo/bar
console.log(pathJoinSafer(dotDot(2), '/foo','bar')); // ../../foo/bar
console.log(pathJoinSafer(dotDot(1), '/', 'foo')); // ../foo
``