@aikidosec/firewall
Version:
Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks
25 lines (24 loc) • 821 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getModuleInfoFromPath = getModuleInfoFromPath;
const path_1 = require("path");
/**
* Get the module name and dir from a path that is inside a node_modules folder.
*/
function getModuleInfoFromPath(path) {
const segments = path.split(path_1.sep);
const i = segments.lastIndexOf("node_modules");
if (i === -1 || i + 1 >= segments.length) {
return undefined;
}
const isScoped = segments[i + 1][0] === "@";
const name = isScoped
? segments[i + 1] + "/" + segments[i + 2]
: segments[i + 1];
const offset = isScoped ? 3 : 2;
return {
name: name,
base: segments.slice(0, i + offset).join(path_1.sep),
path: segments.slice(i + offset).join(path_1.sep),
};
}