@oaklean/profiler-core
Version:
Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec
31 lines • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeModuleUtils = void 0;
class NodeModuleUtils {
static getParentModuleFromPath(path) {
const pathToNodeModules = path.pathUntilSubDir('node_modules');
if (!pathToNodeModules) {
// not part a module
return undefined;
}
// is part of a module
const { match, remainder } = pathToNodeModules;
if (remainder.toString().startsWith('./@')) {
// scoped package
return match.join(remainder.split()[0], remainder.split()[1]);
}
return match.join(remainder.split()[0]);
}
static nodeModuleFromFilePath(externalResourceHelper, relativeFilePathUrl) {
const relativeNodeModulePath = NodeModuleUtils.getParentModuleFromPath(relativeFilePathUrl) || null;
const nodeModule = relativeNodeModulePath !== null
? externalResourceHelper.nodeModuleFromPath(relativeNodeModulePath)
: null;
return {
relativeNodeModulePath,
nodeModule
};
}
}
exports.NodeModuleUtils = NodeModuleUtils;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZU1vZHVsZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlci9Ob2RlTW9kdWxlVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBYSxlQUFlO0lBQzNCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFpQjtRQUMvQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQzdDLGNBQXdDLENBQ3hDLENBQUE7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN4QixvQkFBb0I7WUFDcEIsT0FBTyxTQUFTLENBQUE7UUFDakIsQ0FBQztRQUNELHNCQUFzQjtRQUN0QixNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLGlCQUFpQixDQUFBO1FBRTlDLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVDLGlCQUFpQjtZQUNqQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FDNUIsc0JBQThDLEVBQzlDLG1CQUFnQztRQUVoQyxNQUFNLHNCQUFzQixHQUMzQixlQUFlLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxJQUFJLENBQUE7UUFDckUsTUFBTSxVQUFVLEdBQ2Ysc0JBQXNCLEtBQUssSUFBSTtZQUM5QixDQUFDLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUM7WUFDbkUsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUVSLE9BQU87WUFDTixzQkFBc0I7WUFDdEIsVUFBVTtTQUNWLENBQUE7SUFDRixDQUFDO0NBQ0Q7QUFuQ0QsMENBbUNDIn0=