Skip to content

Commit 8b732c1

Browse files
committed
Consistently use EOL identifier
1 parent d90307a commit 8b732c1

File tree

9 files changed

+22
-45
lines changed

9 files changed

+22
-45
lines changed

apps/site/components/Downloads/Release/VersionDropdown.tsx

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,14 @@ import { useLocale, useTranslations } from 'next-intl';
55
import { use } from 'react';
66

77
import { redirect, usePathname } from '#site/navigation';
8+
import { STATUS_KIND_MAP } from '#site/next.constants.mjs';
89
import {
910
ReleaseContext,
1011
ReleasesContext,
1112
} from '#site/providers/releaseProvider';
1213

13-
import type { NodeReleaseStatus } from '#site/types/releases.js';
1414
import type { FC } from 'react';
1515

16-
const getDropDownStatus = (status: NodeReleaseStatus) => {
17-
if (status === 'LTS') {
18-
return {
19-
label: 'LTS',
20-
kind: 'info' as const,
21-
};
22-
}
23-
24-
if (status === 'Current') {
25-
return {
26-
label: 'Current',
27-
kind: 'default' as const,
28-
};
29-
}
30-
31-
if (status === 'End-of-life') {
32-
return {
33-
label: 'EoL',
34-
kind: 'warning' as const,
35-
};
36-
}
37-
};
38-
3916
const VersionDropdown: FC = () => {
4017
const { releases } = use(ReleasesContext);
4118
const { release, setVersion } = use(ReleaseContext);
@@ -69,7 +46,10 @@ const VersionDropdown: FC = () => {
6946
values={releases.map(({ status, versionWithPrefix }) => ({
7047
value: versionWithPrefix,
7148
label: versionWithPrefix,
72-
badge: getDropDownStatus(status),
49+
badge: {
50+
label: status,
51+
kind: STATUS_KIND_MAP[status],
52+
},
7353
}))}
7454
defaultValue={release.versionWithPrefix}
7555
onChange={setVersionOrNavigate}

apps/site/components/EOL/EOLReleaseTable/index.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { getTranslations } from 'next-intl/server';
33

44
import provideReleaseData from '#site/next-data/providers/releaseData';
55
import provideVulnerabilities from '#site/next-data/providers/vulnerabilities';
6-
import { EOL_VERSION_IDENTIFIER } from '#site/next.constants.mjs';
76

87
import type { FC } from 'react';
98

@@ -15,9 +14,7 @@ const EOLReleaseTable: FC = async () => {
1514
const releaseData = await provideReleaseData();
1615
const vulnerabilities = await provideVulnerabilities();
1716

18-
const eolReleases = releaseData.filter(
19-
release => release.status === EOL_VERSION_IDENTIFIER
20-
);
17+
const eolReleases = releaseData.filter(release => release.status === 'EOL');
2118

2219
const t = await getTranslations();
2320

apps/site/components/Releases/PreviousReleasesTable/TableBody.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,13 @@ import { Fragment, useState } from 'react';
77
import FormattedTime from '#site/components/Common/FormattedTime';
88
import LinkWithArrow from '#site/components/Common/LinkWithArrow';
99
import Link from '#site/components/Link';
10+
import { STATUS_KIND_MAP } from '#site/next.constants.mjs';
1011

1112
import type { NodeRelease } from '#site/types';
1213
import type { FC } from 'react';
1314

1415
import ReleaseModal from '../ReleaseModal';
1516

16-
const BADGE_KIND_MAP = {
17-
'End-of-life': 'warning',
18-
LTS: 'info',
19-
Current: 'default',
20-
} as const;
21-
2217
type PreviousReleasesTableBodyProps = {
2318
releaseData: Array<NodeRelease>;
2419
};
@@ -56,9 +51,8 @@ const PreviousReleasesTableBody: FC<PreviousReleasesTableBodyProps> = ({
5651
</td>
5752

5853
<td data-label={t('components.downloadReleasesTable.status')}>
59-
<Badge kind={BADGE_KIND_MAP[release.status]} size="small">
54+
<Badge kind={STATUS_KIND_MAP[release.status]} size="small">
6055
{release.status}
61-
{release.status === 'End-of-life' ? ' (EoL)' : ''}
6256
</Badge>
6357
</td>
6458

apps/site/components/withReleaseAlertBox.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const WithReleaseAlertBox: FC<WithReleaseAlertBoxProps> = ({ status }) => {
1414
const t = useTranslations();
1515

1616
switch (status) {
17-
case 'End-of-life':
17+
case 'EOL':
1818
return (
1919
<AlertBox
2020
title={t('components.common.alertBox.warning')}

apps/site/next-data/generators/__tests__/releaseData.test.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('generateReleaseData', () => {
1919
return generateReleaseData();
2020
};
2121

22-
it('returns End-of-life when release is on or past EOL date', async t => {
22+
it('returns EOL when release is on or past EOL date', async t => {
2323
const result = await runWithNodevuData(t, '2024-10-18', {
2424
14: {
2525
releases: {
@@ -54,7 +54,7 @@ describe('generateReleaseData', () => {
5454
releaseDate: '2021-04-20',
5555
initialDate: '2021-04-20',
5656
modules: '83',
57-
status: 'End-of-life',
57+
status: 'EOL',
5858
});
5959
});
6060

apps/site/next-data/generators/releaseData.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const getNodeReleaseStatus = (latest, eol) => {
77
const now = new Date();
88

99
if (eol && now >= new Date(eol)) {
10-
return 'End-of-life';
10+
return 'EOL';
1111
}
1212

1313
if (latest.lts.isLts) {

apps/site/next.constants.mjs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,15 @@ export const SEVERITY_KIND_MAP = {
205205
};
206206

207207
/**
208-
* Which Node.js versions do we want to display vulnerabilities for?
208+
* Maps Node.js version status to UI Badge kinds
209+
*
210+
* @type {Record<import('./types/releases').NodeReleaseStatus, import('@node-core/ui-components/Common/Badge').BadgeKind>}
209211
*/
210-
export const EOL_VERSION_IDENTIFIER = 'End-of-life';
212+
export const STATUS_KIND_MAP = {
213+
EOL: 'warning',
214+
LTS: 'info',
215+
Current: 'default',
216+
};
211217

212218
/**
213219
* The location of the Node.js Security Working Group Vulnerabilities data.

apps/site/types/releases.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export type NodeReleaseStatus = 'LTS' | 'Current' | 'End-of-life';
1+
export type NodeReleaseStatus = 'LTS' | 'Current' | 'EOL';
22

33
export type NodeReleaseSource = {
44
major: number;

apps/site/util/download/constants.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,5 +213,5 @@
213213
"bitness": ["64", "32"],
214214
"architecture": ["arm", "x86"]
215215
},
216-
"statusOrder": ["Current", "LTS", "End-of-life"]
216+
"statusOrder": ["Current", "LTS", "EOL"]
217217
}

0 commit comments

Comments
 (0)