CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
node-modules-paths.js46 linesDownload Raw Back to lib
1var path = require('path');2var parse = path.parse || require('path-parse'); // eslint-disable-line global-require3 4var driveLetterRegex = /^([A-Za-z]:)/;5var uncPathRegex = /^\\\\/;6 7function getNodeModulesDirs(absoluteStart, modules) {8    var prefix = '/';9    if (driveLetterRegex.test(absoluteStart)) {10        prefix = '';11    } else if (uncPathRegex.test(absoluteStart)) {12        prefix = '\\\\';13    }14 15    var paths = [absoluteStart];16    var parsed = parse(absoluteStart);17    while (parsed.dir !== paths[paths.length - 1]) {18        paths.push(parsed.dir);19        parsed = parse(parsed.dir);20    }21 22    return paths.reduce(function (dirs, aPath) {23        return dirs.concat(modules.map(function (moduleDir) {24            return path.resolve(prefix, aPath, moduleDir);25        }));26    }, []);27}28 29module.exports = function nodeModulesPaths(start, opts, request) {30    var modules = opts && opts.moduleDirectory31        ? [].concat(opts.moduleDirectory)32        : ['node_modules'];33 34    if (opts && typeof opts.paths === 'function') {35        return opts.paths(36            request,37            start,38            function () { return getNodeModulesDirs(start, modules); },39            opts40        );41    }42 43    var dirs = getNodeModulesDirs(start, modules);44    return opts && opts.paths ? dirs.concat(opts.paths) : dirs;45};46