@@ -6,6 +6,7 @@ import * as utils from "./utils.js";
6
6
import * as popup from "./popup.js" ;
7
7
import { Network , DataSet } from "vis-network/standalone/esm/index.js" ;
8
8
import SearchBar from "./searchbar.js" ;
9
+ import { getManifestEmoji } from "@nodesecure/flags/web" ;
9
10
10
11
// CONSTANTS (for nodes colors)
11
12
const C_MAIN = "#01579B" ;
@@ -16,6 +17,7 @@ const C_SELECTED = "rgba(170, 100, 200, 0.50)";
16
17
const C_TRS = "rgba(150, 150, 150, 0.02)" ;
17
18
let toggleModal ;
18
19
20
+ const kFlagsEmojis = Object . fromEntries ( getManifestEmoji ( ) ) ;
19
21
const networkGraphOptions = {
20
22
nodes : {
21
23
mass : 6 ,
@@ -60,27 +62,6 @@ const networkGraphOptions = {
60
62
}
61
63
} ;
62
64
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
-
84
65
function getColor ( id , flags ) {
85
66
if ( id === 0 ) {
86
67
return C_MAIN ;
@@ -95,28 +76,10 @@ function getColor(id, flags) {
95
76
return C_NORMAL ;
96
77
}
97
78
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 ) {
117
80
return [ ...flags ]
118
- . map ( ( flagName ) => kFlagsEmojis [ flagName ] )
119
- . filter ( ( value ) => value !== undefined )
81
+ . map ( ( title ) => kFlagsEmojis [ title ] ?? null )
82
+ . filter ( ( value ) => value !== null )
120
83
. reduce ( ( acc , cur ) => `${ acc } ${ cur } ` , "" ) ;
121
84
}
122
85
@@ -206,7 +169,7 @@ document.addEventListener("DOMContentLoaded", async() => {
206
169
indirectDependenciesCount ++ ;
207
170
}
208
171
totalSize += size ;
209
- const flagStr = getFlags ( flags , { metadata , vulnerabilities , versions } ) ;
172
+ const flagStr = getEmojiFromFlags ( flags ) ;
210
173
{
211
174
const content = `<p>${ flagStr . replace ( / \s / g, "" ) } ${ packageName } </p><b>${ currVersion } </b>` ;
212
175
dataListElement . insertAdjacentHTML ( "beforeend" , `<div class="package hide" data-value="${ id } ">${ content } </div>` ) ;
@@ -416,7 +379,7 @@ document.addEventListener("DOMContentLoaded", async() => {
416
379
417
380
{
418
381
const flagsElement = clone . querySelector ( ".flags" ) ;
419
- const textContent = getFlags ( flags , { metadata , versions , vulnerabilities } ) ;
382
+ const textContent = getEmojiFromFlags ( flags ) ;
420
383
if ( textContent === "" ) {
421
384
flagsElement . style . display = "none" ;
422
385
}
0 commit comments