Skip to content

Commit 16853e3

Browse files
committed
chore: use flags v2 and new scanner flags
1 parent 275b3ae commit 16853e3

File tree

4 files changed

+12
-48
lines changed

4 files changed

+12
-48
lines changed

esbuild.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { fileURLToPath } from "url";
55

66
// Import Third-party Dependencies
77
import esbuild from "esbuild";
8+
import { getManifestEmoji } from "@nodesecure/flags";
89

910
// CONSTANTS
1011
const __dirname = path.dirname(fileURLToPath(import.meta.url));

package-lock.json

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
"vis-network": "^9.1.0"
7474
},
7575
"dependencies": {
76-
"@nodesecure/flags": "^2.0.0",
76+
"@nodesecure/flags": "^2.1.1",
7777
"@nodesecure/i18n": "^1.2.0",
7878
"@nodesecure/npm-registry-sdk": "^1.3.0",
7979
"@nodesecure/scanner": "^2.1.0",

public/js/master.js

+7-44
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import * as utils from "./utils.js";
66
import * as popup from "./popup.js";
77
import { Network, DataSet } from "vis-network/standalone/esm/index.js";
88
import SearchBar from "./searchbar.js";
9+
import { getManifestEmoji } from "@nodesecure/flags/web";
910

1011
// CONSTANTS (for nodes colors)
1112
const C_MAIN = "#01579B";
@@ -16,6 +17,7 @@ const C_SELECTED = "rgba(170, 100, 200, 0.50)";
1617
const C_TRS = "rgba(150, 150, 150, 0.02)";
1718
let toggleModal;
1819

20+
const kFlagsEmojis = Object.fromEntries(getManifestEmoji());
1921
const networkGraphOptions = {
2022
nodes: {
2123
mass: 6,
@@ -60,27 +62,6 @@ const networkGraphOptions = {
6062
}
6163
};
6264

63-
const kFlagsEmojis = {
64-
isGit: "☁️",
65-
hasNativeCode: "🐲",
66-
hasIndirectDependencies: "🌲",
67-
hasWarnings: "⚠️",
68-
hasBannedFile: "⚔️",
69-
isOutdated: "⌚️",
70-
hasNoLicense: "📜",
71-
hasCustomResolver: "💎",
72-
hasMultipleLicenses: "📚",
73-
hasMinifiedCode: "🔬",
74-
isDeprecated: "⛔️",
75-
hasExternalCapacity: "🌍",
76-
hasScript: "📦",
77-
hasMissingOrUnusedDependency: "👀",
78-
hasManyPublishers: "👥",
79-
isDead: "💀",
80-
hasVulnerabilities: "🚨",
81-
hasDuplicate: "🎭"
82-
}
83-
8465
function getColor(id, flags) {
8566
if (id === 0) {
8667
return C_MAIN;
@@ -95,28 +76,10 @@ function getColor(id, flags) {
9576
return C_NORMAL;
9677
}
9778

98-
function getFlags(flags, options = {}) {
99-
const { metadata, vulnerabilities = [], versions } = options;
100-
101-
if (!metadata.hasReceivedUpdateInOneYear && flags.includes("hasOutdatedDependency") && !flags.includes("isDead")) {
102-
flags.push("isDead");
103-
}
104-
if (metadata.hasManyPublishers && !flags.includes("hasManyPublishers")) {
105-
flags.push("hasManyPublishers");
106-
}
107-
if (metadata.hasChangedAuthor && !flags.includes("hasChangedAuthor")) {
108-
flags.push("hasChangedAuthor");
109-
}
110-
if (vulnerabilities.length > 0 && !flags.includes("hasVulnerabilities")) {
111-
flags.push("hasVulnerabilities");
112-
}
113-
if (versions.length > 1 && !flags.includes("hasDuplicate")) {
114-
flags.push("hasDuplicate");
115-
}
116-
79+
function getEmojiFromFlags(flags) {
11780
return [...flags]
118-
.map((flagName) => kFlagsEmojis[flagName])
119-
.filter((value) => value !== undefined)
81+
.map((title) => kFlagsEmojis[title] ?? null)
82+
.filter((value) => value !== null)
12083
.reduce((acc, cur) => `${acc} ${cur}`, "");
12184
}
12285

@@ -206,7 +169,7 @@ document.addEventListener("DOMContentLoaded", async() => {
206169
indirectDependenciesCount++;
207170
}
208171
totalSize += size;
209-
const flagStr = getFlags(flags, { metadata, vulnerabilities, versions });
172+
const flagStr = getEmojiFromFlags(flags);
210173
{
211174
const content = `<p>${flagStr.replace(/\s/g, "")} ${packageName}</p><b>${currVersion}</b>`;
212175
dataListElement.insertAdjacentHTML("beforeend", `<div class="package hide" data-value="${id}">${content}</div>`);
@@ -416,7 +379,7 @@ document.addEventListener("DOMContentLoaded", async() => {
416379

417380
{
418381
const flagsElement = clone.querySelector(".flags");
419-
const textContent = getFlags(flags, { metadata, versions, vulnerabilities });
382+
const textContent = getEmojiFromFlags(flags);
420383
if (textContent === "") {
421384
flagsElement.style.display = "none";
422385
}

0 commit comments

Comments
 (0)