|
| 1 | +import g2js from 'gradle-to-js/lib/parser.js'; |
| 2 | +import { getDefaultSpringBootVersions, Package } from './shared.js'; |
| 3 | + |
| 4 | +export const getJSFromFile = async (filename) => { |
| 5 | + try { |
| 6 | + return g2js.parseFile(filename); |
| 7 | + } catch (err) { |
| 8 | + return []; |
| 9 | + } |
| 10 | +}; |
| 11 | + |
| 12 | +// export const getGradleProperties = async (parsedGradle) => { |
| 13 | +// const properties = parsedGradle.project?.properties; |
| 14 | +// if (properties) { |
| 15 | +// return Object.keys(properties); |
| 16 | +// } |
| 17 | +// return []; |
| 18 | +// }; |
| 19 | +// |
| 20 | +// const getSpringBootProperties = async (filename) => { |
| 21 | +// await getSpringDefaultProperties(filename); |
| 22 | +// return getJsonFromFile(`${cachePath}/properties_${filename}.json`); |
| 23 | +// }; |
| 24 | + |
| 25 | +export const getGradleDependenciesWithVersions = async (parsedGradle) => { |
| 26 | + if (Array.isArray(parsedGradle.dependencies)) { |
| 27 | + return parsedGradle.dependencies.filter(dep => dep.version); |
| 28 | + } |
| 29 | + return []; |
| 30 | +}; |
| 31 | + |
| 32 | +export const getGradleSpringBootVersion = async (parsedGradle) => { |
| 33 | + const springBootPlugin = parsedGradle?.plugins?.filter(plugin => plugin.id === 'org.springframework.boot'); |
| 34 | + if (Array.isArray(springBootPlugin) && springBootPlugin.length) { |
| 35 | + return springBootPlugin[0].version; |
| 36 | + } |
| 37 | + console.log('No Spring Boot version found.'); |
| 38 | + return ''; |
| 39 | +}; |
| 40 | + |
| 41 | +export const retrieveSimilarGradlePackages = async (parsedGradle, springBootVersion) => { |
| 42 | + const gradleDependenciesWithVersions = await getGradleDependenciesWithVersions(parsedGradle); |
| 43 | + if (springBootVersion) { |
| 44 | + const defaultVersions = await getDefaultSpringBootVersions(springBootVersion); |
| 45 | + |
| 46 | + if (defaultVersions.length) { |
| 47 | + const mismatchedPackages = []; |
| 48 | + gradleDependenciesWithVersions.forEach(gradleDependency => defaultVersions.forEach(bootPackage => { |
| 49 | + if (gradleDependency.group === bootPackage.group && gradleDependency.name === bootPackage.name) { |
| 50 | + const existingMatches = mismatchedPackages.find(mismatchedPackage => mismatchedPackage.group === gradleDependency.group && mismatchedPackage.name === gradleDependency.name); |
| 51 | + if (!existingMatches) { |
| 52 | + mismatchedPackages.push(new Package(gradleDependency.group, gradleDependency.name, gradleDependency.version, bootPackage.version)); |
| 53 | + } |
| 54 | + } |
| 55 | + })); |
| 56 | + |
| 57 | + console.log('Mismatched Gradle Package Count -', mismatchedPackages.length); |
| 58 | + if (mismatchedPackages.length) { |
| 59 | + console.log('Mismatched Gradle Packages -', mismatchedPackages); |
| 60 | + } |
| 61 | + } else { |
| 62 | + console.log('Spring Boot default versions URL no longer exists.'); |
| 63 | + } |
| 64 | + } |
| 65 | +}; |
| 66 | + |
| 67 | +// export const retrieveSimilarGradleProperties = async (parsedGradle, springBootVersion) => { |
| 68 | +// const pomProperties = await getGradleProperties(parsedGradle); |
| 69 | +// if (springBootVersion) { |
| 70 | +// const defaultProperties = await getSpringBootProperties(springBootVersion); |
| 71 | +// |
| 72 | +// if (defaultProperties.length) { |
| 73 | +// const declaredProperties = []; |
| 74 | +// pomProperties.forEach(pomProperty => defaultProperties.forEach(defaultProperty => { |
| 75 | +// if (pomProperty === defaultProperty.property) { |
| 76 | +// declaredProperties.push(pomProperty); |
| 77 | +// } |
| 78 | +// })); |
| 79 | +// |
| 80 | +// console.log('Declared Gradle Properties Count -', declaredProperties.length); |
| 81 | +// if (declaredProperties.length) { |
| 82 | +// console.log('Declared Gradle Properties -', declaredProperties); |
| 83 | +// } |
| 84 | +// } else { |
| 85 | +// console.log('Spring Boot default versions URL no longer exists.'); |
| 86 | +// } |
| 87 | +// } |
| 88 | +// }; |
| 89 | +// |
0 commit comments