import dataFiles from '../../../data-files.generated'; import semver from '../semver'; interface NodeJsSchedule { lts?: string; maintenance?: string; end: string; start: string; codename?: string; } export type NodeJsData = Record; const nodeSchedule: NodeJsData = JSON.parse( dataFiles.get('data/node-js-schedule.json')! ); export type NodeJsScheduleWithVersion = { version: string } & NodeJsSchedule; const nodeCodenames = new Map(); for (const version of Object.keys(nodeSchedule)) { const schedule = nodeSchedule[version]; if (schedule.codename) { nodeCodenames.set(schedule.codename.toUpperCase(), { version: version, ...schedule, }); } } export function findScheduleForCodename( codename: string ): NodeJsScheduleWithVersion | null { return nodeCodenames.get(codename?.toUpperCase()) ?? null; } export function findScheduleForVersion(version: string): NodeJsSchedule | null { const major = semver.getMajor(version); // TODO: types (#7154) const schedule = nodeSchedule[`v${major!}`]; return schedule; }