bit-bin
Version:
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b
51 lines (38 loc) • 1.33 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isValidPath;
function path() {
const data = _interopRequireWildcard(require("path"));
path = function () {
return data;
};
return data;
}
function _ramda() {
const data = _interopRequireDefault(require("ramda"));
_ramda = function () {
return data;
};
return data;
}
const MAX_LENGTH = 4096;
/**
* most are invalid for Windows, but it's a good idea to be compatible with both
*/
const INVALID_CHARS = ['<', '>', '|', '?', '*', ':', '"'];
/**
* relevant for mainFile, rootDir and files relative-paths. Either in bitmap or in the model.
* 1) it can't be absolute
* 2) it must be linux format (`\` is forbidden)
* 3) it can't point to a parent directory (`../`) or current directory (`./`)
*/
function isValidPath(pathStr) {
if (!pathStr || !_ramda().default.is(String, pathStr) || INVALID_CHARS.some(c => pathStr.includes(c)) || pathStr.length > MAX_LENGTH || path().isAbsolute(pathStr) || pathStr.startsWith('./') || pathStr.startsWith('../') || pathStr.includes('\\')) {
return false;
}
return true;
}
;