UNPKG

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
"use strict"; 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; }