Skip to content

Commit e9ff4e0

Browse files
authored
dynamically retrieve new spring boot link (#48)
1 parent eac6faf commit e9ff4e0

File tree

4 files changed

+42
-49
lines changed

4 files changed

+42
-49
lines changed

package-lock.json

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "spring-boot-dependency-checker",
3-
"version": "0.2.4",
3+
"version": "0.2.5",
44
"description": "Spring Boot Dependency Checker - validate that you're using the versions Spring Boot has approved with your project.",
55
"keywords": [
66
"spring boot",

pom.js

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export const retrieveSimilarPomPackages = async (parsedPom, springBootVersion) =
7171
if (declaredPackages.length) {
7272
console.log('Declared Pom Packages -', declaredPackages);
7373
}
74-
return declaredPackages
74+
return declaredPackages;
7575
} else {
7676
console.log('Spring Boot default versions URL no longer exists.');
7777
return [];
@@ -125,37 +125,33 @@ const replaceVariable = (properties, version) => {
125125
return properties[variableName];
126126
}
127127
return version;
128-
}
128+
};
129129

130130
const downloadSpringVersionProperties = async (springBootVersion) => {
131131
let url = `https://docs.spring.io/spring-boot/docs/${springBootVersion}/reference/html/dependency-versions.html`;
132132
let bodyIndex = 1;
133-
if (springBootVersion === '3.3.0') {
134-
url = 'https://docs.spring.io/spring-boot/appendix/dependency-versions/properties.html';
133+
let response = await fetch(url);
134+
if (response.status === 404) {
135+
url = `https://docs.spring.io/spring-boot/${springBootVersion}/appendix/dependency-versions/properties.html`;
135136
bodyIndex = 0;
137+
response = await fetch(url);
136138
}
137-
const response = await fetch(url);
138139
const versions = [];
139-
switch (response.status) {
140-
// status "OK"
141-
case 200: {
142-
const template = await response.text();
143-
const parsedTemplate = parse(template);
144-
const tableBody = parsedTemplate.getElementsByTagName('tbody')[bodyIndex];
140+
if (response.ok) {
141+
const template = await response.text();
142+
const parsedTemplate = parse(template);
143+
const tableBody = parsedTemplate.getElementsByTagName('tbody')[bodyIndex];
145144

146-
// older versions of Spring Boot do not have property versions listed
147-
if (tableBody) {
148-
tableBody.childNodes.forEach(child => // there's a header row we should skip
149-
child.childNodes.length === 0 ? '' : versions.push({
150-
property: child.childNodes[3].rawText,
151-
}));
152-
}
153-
await writeFileSync(`${cachePath}/properties_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
154-
break;
145+
// older versions of Spring Boot do not have property versions listed
146+
if (tableBody) {
147+
tableBody.childNodes.forEach(child => // there's a header row we should skip
148+
child.childNodes.length === 0 ? '' : versions.push({
149+
property: child.childNodes[3].rawText,
150+
}));
155151
}
156-
case 404:
157-
await writeFileSync(`${cachePath}/properties_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
158-
console.log('URL not found - Spring Boot default versions URL no longer exists.');
159-
break;
152+
await writeFileSync(`${cachePath}/properties_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
153+
} else {
154+
await writeFileSync(`${cachePath}/properties_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
155+
console.log('URL not found - Spring Boot default versions URL no longer exists.');
160156
}
161157
};

shared.js

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,31 +33,27 @@ const getSpringDefaultVersions = async (springBootVersion) => {
3333

3434
const downloadSpringDefaultVersions = async (springBootVersion) => {
3535
let url = `https://docs.spring.io/spring-boot/docs/${springBootVersion}/reference/html/dependency-versions.html`;
36-
if (springBootVersion === '3.3.0') {
37-
url = 'https://docs.spring.io/spring-boot/appendix/dependency-versions/coordinates.html';
36+
let response = await fetch(url);
37+
if (response.status === 404) {
38+
url = `https://docs.spring.io/spring-boot/${springBootVersion}/appendix/dependency-versions/coordinates.html`;
39+
response = await fetch(url);
3840
}
39-
const response = await fetch(url);
4041
const versions = [];
41-
switch (response.status) {
42-
// status "OK"
43-
case 200: {
44-
const template = await response.text();
45-
const parsedTemplate = parse(template);
46-
const tableBody = parsedTemplate.querySelector('table tbody');
42+
if (response.ok) {
43+
const template = await response.text();
44+
const parsedTemplate = parse(template);
45+
const tableBody = parsedTemplate.querySelector('table tbody');
4746

48-
tableBody.childNodes.forEach(child => // there's a header row we should skip
49-
child.childNodes.length === 0 ? '' : versions.push({
50-
group: child.childNodes[1].rawText,
51-
name: child.childNodes[3].rawText,
52-
version: child.childNodes[5].rawText,
53-
}));
54-
await writeFileSync(`${cachePath}/dependencies_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
55-
break;
56-
}
57-
case 404:
58-
await writeFileSync(`${cachePath}/dependencies_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
59-
console.log('URL not found - Spring Boot default versions URL no longer exists.');
60-
break;
47+
tableBody.childNodes.forEach(child => // there's a header row we should skip
48+
child.childNodes.length === 0 ? '' : versions.push({
49+
group: child.childNodes[1].rawText,
50+
name: child.childNodes[3].rawText,
51+
version: child.childNodes[5].rawText,
52+
}));
53+
await writeFileSync(`${cachePath}/dependencies_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
54+
} else {
55+
await writeFileSync(`${cachePath}/dependencies_${springBootVersion}.json`, JSON.stringify(versions, null, 2));
56+
console.log('URL not found - Spring Boot default versions URL no longer exists.');
6157
}
6258
};
6359

0 commit comments

Comments
 (0)