diff --git a/public/components/package/pannels/scripts/scripts.js b/public/components/package/pannels/scripts/scripts.js index 75a5a007..370c9911 100644 --- a/public/components/package/pannels/scripts/scripts.js +++ b/public/components/package/pannels/scripts/scripts.js @@ -162,7 +162,7 @@ class Scripts extends LitElement { const hideItemsLength = 4; const scripts = Object.entries(this.package.dependencyVersion.scripts); const hideItems = scripts.length > hideItemsLength; - const scriptsToDisplay = this.isClosed ? scripts.slice(0, hideItemsLength) : scripts; + const scriptsToDisplay = this.#sortScripts(this.isClosed ? scripts.slice(0, hideItemsLength) : scripts); if (scripts.length === 0) { return nothing; @@ -176,7 +176,7 @@ class Scripts extends LitElement { ${repeat(scriptsToDisplay, (script) => script, ([scriptName, scriptContent]) => { - const isSuspicious = kUnsafeNpmScripts.has(scriptName); + const isSuspicious = this.#isSuspicious(scriptName); const scriptClasses = classMap({ script: true, suspicious: isSuspicious @@ -203,6 +203,15 @@ class Scripts extends LitElement { `; } + #sortScripts(scripts) { + return [...scripts.filter(([scriptName]) => this.#isSuspicious(scriptName)), + ...scripts.filter(([scriptName]) => !this.#isSuspicious(scriptName))]; + } + + #isSuspicious(scriptName) { + return kUnsafeNpmScripts.has(scriptName); + } + #renderDependencies() { const { composition } = this.package.dependencyVersion;