Urara-Blog/node_modules/.pnpm-store/v3/files/b4/23cbc67ab1417feee285e30bd89a279e421b5c8644d6aeb04ba345a3147d56e446c96a3dfa67ba61b09f03bd35e6f1a0b6f3b2c0be9e6c7aa4cfa7af9b8817
2022-08-14 01:14:53 +08:00

51 lines
1.6 KiB
Text

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: ()=>getModuleDependencies
});
const _fs = /*#__PURE__*/ _interopRequireDefault(require("fs"));
const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
const _resolve = /*#__PURE__*/ _interopRequireDefault(require("resolve"));
const _detective = /*#__PURE__*/ _interopRequireDefault(require("detective"));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function createModule(file) {
const source = _fs.default.readFileSync(file, "utf-8");
const requires = (0, _detective.default)(source);
return {
file,
requires
};
}
function getModuleDependencies(entryFile) {
const rootModule = createModule(entryFile);
const modules = [
rootModule
];
// Iterate over the modules, even when new
// ones are being added
for (const mdl of modules){
mdl.requires.filter((dep)=>{
// Only track local modules, not node_modules
return dep.startsWith("./") || dep.startsWith("../");
}).forEach((dep)=>{
try {
const basedir = _path.default.dirname(mdl.file);
const depPath = _resolve.default.sync(dep, {
basedir
});
const depModule = createModule(depPath);
modules.push(depModule);
} catch (_err) {
// eslint-disable-next-line no-empty
}
});
}
return modules;
}