UNPKG

@nodesecure/vulnera

Version:

NodeSecure vulnerabilities strategies

41 lines 1.6 kB
// Import Internal Dependencies import { GitHubAdvisoryStrategy } from "./strategies/github-advisory.js"; import { SonatypeStrategy } from "./strategies/sonatype.js"; import { NoneStrategy } from "./strategies/none.js"; import { OSVStrategy } from "./strategies/osv.js"; import { VULN_MODE } from "./constants.js"; import { ApiCredential } from "./credential.js"; import { formatVulnsPayload } from "./formats/index.js"; export * as Database from "./database/index.js"; export { ApiCredential }; // CONSTANTS const kAvailableStrategy = new Set(Object.values(VULN_MODE)); // VARS let localVulnerabilityStrategy; export function setStrategy(name, options) { 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.SONATYPE) { localVulnerabilityStrategy = Object.seal(SonatypeStrategy(options)); } else if (name === VULN_MODE.OSV) { localVulnerabilityStrategy = Object.seal(OSVStrategy()); } 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