35 lines
1 KiB
JavaScript
35 lines
1 KiB
JavaScript
const { log } = require("./logger");
|
|
const { fetchPackageDependencies, parseEnv, parseName } = require("./core");
|
|
|
|
const deps = async function(pkg, options) {
|
|
// parse env
|
|
const envOk = await parseEnv(options, { checkPath: false });
|
|
if (!envOk) return 1;
|
|
// parse name
|
|
let { name, version } = parseName(pkg);
|
|
// deps
|
|
await _deps({ name, version, deep: options.deep });
|
|
return 0;
|
|
};
|
|
|
|
const _deps = async function({ name, version, deep }) {
|
|
// eslint-disable-next-line no-unused-vars
|
|
const [depsValid, depsInvalid] = await fetchPackageDependencies({
|
|
name,
|
|
version,
|
|
deep
|
|
});
|
|
depsValid
|
|
.filter(x => !x.self)
|
|
.forEach(x => log.notice("dependency", `${x.name}@${x.version}`));
|
|
depsInvalid
|
|
.filter(x => !x.self)
|
|
.forEach(x => {
|
|
let reason = "unknown";
|
|
if (x.reason == "package404") reason = "missing dependency";
|
|
else if (x.reason == "version404") reason = "missing dependency version";
|
|
log.warn(reason, `${x.name}@${x.version}`);
|
|
});
|
|
};
|
|
|
|
module.exports = deps;
|