diff --git a/index.js b/index.js index fe4c959..20b2920 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,12 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'; const cachePath = '.cache'; export const getJsonFromFile = async (filename) => { - const data = readFileSync(filename, 'utf8'); - return JSON.parse(data); + try { + const data = readFileSync(filename, 'utf8'); + return JSON.parse(data); + } catch (err) { + return []; + } }; export const getComponents = async (filename) => { @@ -37,17 +41,22 @@ export const retrieveSimilarPackages = async (bomFile) => { console.log('Detected Spring Boot Version', springBootVersion); const defaultComponents = await getDefaultSpringBootComponents(springBootVersion); - const mismatchedPackages = []; - components.forEach(bomPackage => defaultComponents.forEach(bootPackage => { - if (bomPackage.group === bootPackage.group && bomPackage.name === bootPackage.name && bomPackage.version !== undefined && bomPackage.version !== bootPackage.version) { - const existingMatches = mismatchedPackages.find(mismatchedPackage => mismatchedPackage.group === bomPackage.group && mismatchedPackage.name === bomPackage.name && mismatchedPackage.bomVersion === bomPackage.version && mismatchedPackage.bootVersion === bootPackage.version); - if (!existingMatches) { - mismatchedPackages.push(new Package(bomPackage.group, bomPackage.name, bomPackage.version, bootPackage.version)); + if (defaultComponents.length) { + const mismatchedPackages = []; + components.forEach(bomPackage => defaultComponents.forEach(bootPackage => { + if (bomPackage.group === bootPackage.group && bomPackage.name === bootPackage.name && bomPackage.version !== undefined && bomPackage.version !== bootPackage.version) { + const existingMatches = mismatchedPackages.find(mismatchedPackage => mismatchedPackage.group === bomPackage.group && mismatchedPackage.name === bomPackage.name && mismatchedPackage.bomVersion === bomPackage.version && mismatchedPackage.bootVersion === bootPackage.version); + if (!existingMatches) { + mismatchedPackages.push(new Package(bomPackage.group, bomPackage.name, bomPackage.version, bootPackage.version)); + } } - } - })); + })); - console.log('Mismatched Packages', mismatchedPackages); + console.log('Mismatched Package Count - ', mismatchedPackages.length); + console.log('Mismatched Packages', mismatchedPackages); + } else { + console.log('Spring Boot default versions URL no longer exists.'); + } } }; @@ -80,13 +89,12 @@ const downloadSpringDefaultVersions = async (sbVersion) => { name: child.childNodes[3].rawText, version: child.childNodes[5].rawText, })); - console.log(versions.length); await writeFileSync(`${cachePath}/${sbVersion}.json`, JSON.stringify(versions, null, 2)); break; } - // status "Not Found" case 404: - console.log('Not Found'); + await writeFileSync(`${cachePath}/${sbVersion}.json`, JSON.stringify(versions, null, 2)); + console.log('URL not found - Spring Boot default versions URL no longer exists.'); break; } }; diff --git a/package-lock.json b/package-lock.json index beb89af..c5a0803 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "spring-boot-dependency-checker", - "version": "0.0.5", + "version": "0.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "spring-boot-dependency-checker", - "version": "0.0.5", + "version": "0.0.6", "license": "\tGPL-3.0-or-later", "dependencies": { "node-html-parser": "6.1.13" @@ -419,6 +419,20 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", diff --git a/package.json b/package.json index ab95bbf..d080619 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "spring-boot-dependency-checker", - "version": "0.0.5", + "version": "0.0.6", "description": "Spring Boot Dependency Checker", "main": "index.js", "scripts": {