UNPKG

@nodesecure/vulnera

Version:

NodeSecure vulnerabilities strategies

37 lines 1.43 kB
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