@nodesecure/vulnera
Version:
NodeSecure vulnerabilities strategies
37 lines • 1.43 kB
JavaScript
import { GitHubAdvisoryStrategy } from "./strategies/github-advisory.js";
import { SnykStrategy } from "./strategies/snyk.js";
import { SonatypeStrategy } from "./strategies/sonatype.js";
import { NoneStrategy } from "./strategies/none.js";
import { VULN_MODE } from "./constants.js";
export * as Database from "./database/index.js";
// CONSTANTS
const kAvailableStrategy = new Set(Object.values(VULN_MODE));
// VARS
let localVulnerabilityStrategy;
export function setStrategy(name) {
if (!kAvailableStrategy.has(name)) {
throw new Error(`Unknown strategy with name '${name}'. Available strategies are: ${[...kAvailableStrategy].join(", ")}`);
}
if (name === VULN_MODE.GITHUB_ADVISORY) {
localVulnerabilityStrategy = Object.seal(GitHubAdvisoryStrategy());
}
else if (name === VULN_MODE.SNYK) {
localVulnerabilityStrategy = Object.seal(SnykStrategy());
}
else if (name === VULN_MODE.SONATYPE) {
localVulnerabilityStrategy = Object.seal(SonatypeStrategy());
}
else {
localVulnerabilityStrategy = Object.seal(NoneStrategy());
}
return localVulnerabilityStrategy;
}
export function getStrategy() {
if (!localVulnerabilityStrategy) {
return setStrategy(VULN_MODE.NONE);
}
return localVulnerabilityStrategy;
}
export const strategies = VULN_MODE;
export const defaultStrategyName = VULN_MODE.NONE;
//# sourceMappingURL=index.js.map