lib-tools
Version:
The lib-tools helps you simplify the build, bundle, test and npm packaging workflows for Typescript, JavaScript, Angular library projects and assets module projects.
51 lines • 5.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isInFolder = exports.isSamePaths = exports.normalizePath = void 0;
const path = require("path");
function normalizePath(p) {
if (!p) {
return '';
}
p = path.normalize(p);
p = p
.replace(/\\/g, '/')
.replace(/^\.\//, '')
.replace(/(\/|\\)+$/, '');
if (p === '.' || p === './') {
return '';
}
return p;
}
exports.normalizePath = normalizePath;
function isSamePaths(p1, p2) {
if (p1 === p2) {
return true;
}
p1 = normalizePath(p1);
p2 = normalizePath(p2);
return p1.toLowerCase() === p2.toLowerCase();
}
exports.isSamePaths = isSamePaths;
function isInFolder(parentDir, checkDir) {
parentDir = normalizePath(parentDir).toLowerCase();
checkDir = normalizePath(checkDir).toLowerCase();
if (!checkDir || parentDir === checkDir) {
return false;
}
const checkDirHome = normalizePath(path.parse(checkDir).root);
if (checkDir === checkDirHome || checkDir === checkDirHome || checkDir === '.' || checkDir === './') {
return false;
}
let tempCheckDir = checkDir;
let prevTempCheckDir = '';
while (tempCheckDir && tempCheckDir !== checkDirHome && tempCheckDir !== '.' && tempCheckDir !== prevTempCheckDir) {
prevTempCheckDir = tempCheckDir;
tempCheckDir = normalizePath(path.dirname(tempCheckDir));
if (tempCheckDir === parentDir || tempCheckDir === parentDir) {
return true;
}
}
return false;
}
exports.isInFolder = isInFolder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJ1dGlscy9wYXRoLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRTdCLFNBQWdCLGFBQWEsQ0FBQyxDQUFTO0lBQ25DLElBQUksQ0FBQyxDQUFDLEVBQUU7UUFDSixPQUFPLEVBQUUsQ0FBQztLQUNiO0lBRUQsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEIsQ0FBQyxHQUFHLENBQUM7U0FDQSxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztTQUNuQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUNwQixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFFRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUM7QUFoQkQsc0NBZ0JDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLEVBQVUsRUFBRSxFQUFVO0lBQzlDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxFQUFFLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLEVBQUUsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdkIsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFURCxrQ0FTQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxTQUFpQixFQUFFLFFBQWdCO0lBQzFELFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkQsUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVqRCxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUU7UUFDckMsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxJQUFJLFFBQVEsS0FBSyxZQUFZLElBQUksUUFBUSxLQUFLLFlBQVksSUFBSSxRQUFRLEtBQUssR0FBRyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7UUFDakcsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxJQUFJLFlBQVksR0FBRyxRQUFRLENBQUM7SUFDNUIsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDMUIsT0FBTyxZQUFZLElBQUksWUFBWSxLQUFLLFlBQVksSUFBSSxZQUFZLEtBQUssR0FBRyxJQUFJLFlBQVksS0FBSyxnQkFBZ0IsRUFBRTtRQUMvRyxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7UUFDaEMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFekQsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDMUQsT0FBTyxJQUFJLENBQUM7U0FDZjtLQUNKO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQXpCRCxnQ0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGF0aChwOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcCA9IHBhdGgubm9ybWFsaXplKHApO1xuXG4gICAgcCA9IHBcbiAgICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgICAgICAucmVwbGFjZSgvXlxcLlxcLy8sICcnKVxuICAgICAgICAucmVwbGFjZSgvKFxcL3xcXFxcKSskLywgJycpO1xuICAgIGlmIChwID09PSAnLicgfHwgcCA9PT0gJy4vJykge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVQYXRocyhwMTogc3RyaW5nLCBwMjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHAxID09PSBwMikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwMSA9IG5vcm1hbGl6ZVBhdGgocDEpO1xuICAgIHAyID0gbm9ybWFsaXplUGF0aChwMik7XG5cbiAgICByZXR1cm4gcDEudG9Mb3dlckNhc2UoKSA9PT0gcDIudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5Gb2xkZXIocGFyZW50RGlyOiBzdHJpbmcsIGNoZWNrRGlyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBwYXJlbnREaXIgPSBub3JtYWxpemVQYXRoKHBhcmVudERpcikudG9Mb3dlckNhc2UoKTtcbiAgICBjaGVja0RpciA9IG5vcm1hbGl6ZVBhdGgoY2hlY2tEaXIpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIWNoZWNrRGlyIHx8IHBhcmVudERpciA9PT0gY2hlY2tEaXIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrRGlySG9tZSA9IG5vcm1hbGl6ZVBhdGgocGF0aC5wYXJzZShjaGVja0Rpcikucm9vdCk7XG4gICAgaWYgKGNoZWNrRGlyID09PSBjaGVja0RpckhvbWUgfHwgY2hlY2tEaXIgPT09IGNoZWNrRGlySG9tZSB8fCBjaGVja0RpciA9PT0gJy4nIHx8IGNoZWNrRGlyID09PSAnLi8nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgdGVtcENoZWNrRGlyID0gY2hlY2tEaXI7XG4gICAgbGV0IHByZXZUZW1wQ2hlY2tEaXIgPSAnJztcbiAgICB3aGlsZSAodGVtcENoZWNrRGlyICYmIHRlbXBDaGVja0RpciAhPT0gY2hlY2tEaXJIb21lICYmIHRlbXBDaGVja0RpciAhPT0gJy4nICYmIHRlbXBDaGVja0RpciAhPT0gcHJldlRlbXBDaGVja0Rpcikge1xuICAgICAgICBwcmV2VGVtcENoZWNrRGlyID0gdGVtcENoZWNrRGlyO1xuICAgICAgICB0ZW1wQ2hlY2tEaXIgPSBub3JtYWxpemVQYXRoKHBhdGguZGlybmFtZSh0ZW1wQ2hlY2tEaXIpKTtcblxuICAgICAgICBpZiAodGVtcENoZWNrRGlyID09PSBwYXJlbnREaXIgfHwgdGVtcENoZWNrRGlyID09PSBwYXJlbnREaXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19