@nodesecure/scanner
Version:
A package API to run a static analysis of your module's dependencies.
34 lines • 1.01 kB
JavaScript
// Import Third-party Dependencies
import { parseNpmSpec } from "@nodesecure/mama";
// Import Internal Dependencies
import {} from "../types.js";
export function parseSemverRange(packages) {
const pkgs = Array.isArray(packages) ? parseSpecs(packages) : packages;
return Object.entries(pkgs).reduce((acc, [name, semverRange]) => {
if (Array.isArray(semverRange)) {
acc[name] = semverRange.join(" || ");
}
else {
acc[name] = semverRange;
}
return acc;
}, {});
}
function parseSpecs(specs) {
return specs.reduce((acc, spec) => {
const parsedSpec = parseNpmSpec(spec);
if (!parsedSpec) {
return acc;
}
const { name, semver } = parsedSpec;
const version = semver || "*";
if (name in acc) {
acc[name].push(version);
}
else {
acc[name] = [version];
}
return acc;
}, {});
}
//# sourceMappingURL=parseSemverRange.js.map