Files
github-actions-magento2/supported-version/src/matrix/get-matrix-for-kind.ts
T
Damien Retzinger 6db07e2737 build(deps): upgrade to typescript 6
TypeScript 6 enables `strict` by default and changes default @types
inclusion.
2026-06-09 18:04:26 -04:00

31 lines
1.7 KiB
TypeScript

import { getMatrixForVersions } from "./get-matrix-for-versions";
import { getIndividualVersionsForProject } from "../versions/get-versions-for-project";
import latestJson from '../kind/special-versions/latest.json';
import nightlyJson from '../kind/special-versions/nightly.json';
import { getDayBefore } from '../nightly/get-day-before';
import { getCurrentlySupportedVersions } from "../kind/get-currently-supported";
import { getUsableVersions } from "../kind/get-usable";
import { amendMatrixForNext } from "../nightly/amend-matrix-for-next";
import { getRecentVersions } from "../kind/recent";
export const getMatrixForKind = (kind: string, project: string, versions = "", recent_time_frame = '2y') => {
switch(kind){
case 'latest':
return getMatrixForVersions(project, latestJson[project as keyof typeof latestJson]);
case 'currently-supported':
return getMatrixForVersions(project, getCurrentlySupportedVersions(project, new Date()));
case 'usable':
return getMatrixForVersions(project, getUsableVersions(project));
case 'nightly':
return amendMatrixForNext(getMatrixForVersions(project, nightlyJson[project as keyof typeof nightlyJson]), 'https://upstream-nightly.mage-os.org', getDayBefore());
case 'all':
return getMatrixForVersions(project, Object.keys(getIndividualVersionsForProject(project)));
case 'custom':
return getMatrixForVersions(project, versions.split(","))
case 'recent':
return getMatrixForVersions(project, getRecentVersions(project, new Date(), recent_time_frame));
default:
throw new Error(`Unreachable kind: ${kind} discovered, please report to the maintainers.`);
}
}