UNPKG

@nodesecure/scanner

Version:

A package API to run a static analysis of your module's dependencies.

40 lines 1.17 kB
import FrequencySet from "frequency-set"; export class Warnings { level = "manifest"; #warnings = Object.create(null); #uniqueKinds = new FrequencySet(); #count = 0; #useSpecAsKey; constructor(options = {}) { this.#useSpecAsKey = options.useSpecAsKey ?? true; } next(version, depVersion, parent) { const { warnings } = depVersion; if (warnings.length === 0) { return; } this.#count += warnings.length; const key = this.#useSpecAsKey ? `${parent.name}@${version}` : parent.name; warnings .map((warn) => warn.kind) .forEach((kind) => this.#uniqueKinds.add(kind)); if (key in this.#warnings) { this.#warnings[key].push(...warnings); } else { this.#warnings[key] = [...warnings]; } } done() { return { warnings: { count: this.#count, uniqueKinds: Object.fromEntries(this.#uniqueKinds), groups: this.#warnings } }; } } //# sourceMappingURL=WarningsExtractor.class.js.map