mirror of
https://github.com/AikidoSec/safe-chain.git
synced 2026-05-26 12:10:49 +00:00
31 lines
871 B
JavaScript
31 lines
871 B
JavaScript
import { resolvePackageVersion } from "../../../api/npmApi.js";
|
|
import { parsePackagesFromArguments } from "../parsing/parsePackagesFromArguments.js";
|
|
|
|
export function commandArgumentScanner() {
|
|
return {
|
|
scan: (args) => scanDependencies(args),
|
|
shouldScan: () => true, // all npx commands need to be scanned, npx doesn't have dry-run
|
|
};
|
|
}
|
|
function scanDependencies(args) {
|
|
return checkChangesFromArgs(args);
|
|
}
|
|
|
|
export async function checkChangesFromArgs(args) {
|
|
const changes = [];
|
|
const packageUpdates = parsePackagesFromArguments(args);
|
|
|
|
for (const packageUpdate of packageUpdates) {
|
|
var exactVersion = await resolvePackageVersion(
|
|
packageUpdate.name,
|
|
packageUpdate.version
|
|
);
|
|
if (exactVersion) {
|
|
packageUpdate.version = exactVersion;
|
|
}
|
|
|
|
changes.push({ ...packageUpdate, type: "add" });
|
|
}
|
|
|
|
return changes;
|
|
}
|