@nodesecure/scanner
Version:
A package API to run a static analysis of your module's dependencies.
40 lines • 1.17 kB
JavaScript
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