33import getMajorNodeReleases from './majorNodeReleases.mjs' ;
44
55// Gets the appropriate release status for each major release
6- const getNodeReleaseStatus = ( latest , support ) => {
6+ const getNodeReleaseStatus = ( latest , eol ) => {
77 const now = new Date ( ) ;
8- const { endOfLife, maintenanceStart, ltsStart, currentStart } = support ;
98
10- if ( endOfLife && now >= new Date ( endOfLife ) ) {
9+ if ( eol && now >= new Date ( eol ) ) {
1110 return 'End-of-life' ;
1211 }
1312
14- if (
15- latest . lts . isLts &&
16- maintenanceStart &&
17- now >= new Date ( maintenanceStart )
18- ) {
19- return 'Maintenance LTS' ;
13+ if ( latest . lts . isLts ) {
14+ return 'LTS' ;
2015 }
2116
22- if ( latest . lts . isLts && ltsStart && now >= new Date ( ltsStart ) ) {
23- return 'Active LTS' ;
24- }
25-
26- if ( currentStart && now >= new Date ( currentStart ) ) {
27- return 'Current' ;
28- }
29-
30- return 'Pending' ;
17+ return 'Current' ;
3118} ;
3219
3320/**
@@ -40,17 +27,15 @@ const generateReleaseData = async () => {
4027 const majors = await getMajorNodeReleases ( ) ;
4128
4229 return majors . map ( ( [ , major ] ) => {
43- const [ latestVersion ] = Object . values ( major . releases ) ;
44-
45- const support = {
46- currentStart : major . support . phases . dates . start ,
47- ltsStart : major . support . phases . dates . lts ,
48- maintenanceStart : major . support . phases . dates . maintenance ,
49- endOfLife : major . support . phases . dates . end ,
50- } ;
30+ const versions = Object . values ( major . releases ) ;
31+ const latestVersion = versions [ 0 ] ;
32+ const initialVersion = versions [ versions . length - 1 ] ;
5133
5234 // Get the major release status based on our Release Schedule
53- const status = getNodeReleaseStatus ( latestVersion , support ) ;
35+ const status = getNodeReleaseStatus (
36+ latestVersion ,
37+ major . support . phases . dates . end
38+ ) ;
5439
5540 const minorVersions = Object . entries ( major . releases ) . map ( ( [ , release ] ) => ( {
5641 modules : release . modules . version || '' ,
@@ -62,16 +47,15 @@ const generateReleaseData = async () => {
6247 } ) ) ;
6348
6449 return {
65- ...support ,
6650 status,
6751 major : latestVersion . semver . major ,
6852 version : latestVersion . semver . raw ,
6953 versionWithPrefix : `v${ latestVersion . semver . raw } ` ,
7054 codename : major . support . codename || '' ,
71- isLts : status . endsWith ( 'LTS' ) ,
7255 npm : latestVersion . dependencies . npm || '' ,
7356 v8 : latestVersion . dependencies . v8 ,
7457 releaseDate : latestVersion . releaseDate ,
58+ initialDate : initialVersion . releaseDate ,
7559 modules : latestVersion . modules . version || '' ,
7660 minorVersions,
7761 } ;
0 commit comments