nepenthe-js-tools
Version:
Tools for Javascript develpers
55 lines (39 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isInvalidPath = isInvalidPath;
exports.isValidPath = isValidPath;
exports["default"] = void 0;
var _path = _interopRequireDefault(require("path"));
var _utils = require("../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function isInvalidPath(fp) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
/* istanbul ignore else */
if (fp === '' || typeof fp !== 'string') {
return true;
}
/* istanbul ignore if */
if (!(0, _utils.isWindows)(options)) {
return true;
}
var MAX_PATH = options.extended ? 32767 : 260;
if (typeof fp !== 'string' || fp.length > MAX_PATH - 12) {
return true;
}
var _path$parse = _path["default"].parse(fp),
rootPath = _path$parse.root;
if (rootPath) {
fp = fp.slice(rootPath.length);
}
if (options.file) {
return /[<>:"/\\|?*]/.test(fp);
}
return /[<>:"|?*]/.test(fp);
}
function isValidPath(fp, options) {
return !isInvalidPath(fp, options);
}
var _default = isValidPath;
exports["default"] = _default;