setup-node/src/distributions/installer-factory.ts

32 lines
1,010 B
TypeScript
Raw Normal View History

2022-12-13 10:09:39 +01:00
import BaseDistribution from './base-distribution';
2022-12-28 15:36:07 +01:00
import {NodeInputs} from './base-models';
2022-12-13 10:09:39 +01:00
import NightlyNodejs from './nightly/nightly_builds';
import OfficialBuilds from './official_builds/official_builds';
2022-12-27 17:44:25 +01:00
import RcBuild from './rc/rc_builds';
2022-12-13 10:09:39 +01:00
import CanaryBuild from './v8-canary/canary_builds';
enum Distributions {
DEFAULT = '',
CANARY = 'v8-canary',
NIGHTLY = 'nightly',
RC = 'rc'
}
2022-12-27 19:28:20 +01:00
export function getNodejsDistribution(
2022-12-28 15:36:07 +01:00
installerOptions: NodeInputs
2022-12-27 19:28:20 +01:00
): BaseDistribution {
const versionSpec = installerOptions.versionSpec;
let distribution: BaseDistribution;
2022-12-13 10:09:39 +01:00
if (versionSpec.includes(Distributions.NIGHTLY)) {
2022-12-27 19:28:20 +01:00
distribution = new NightlyNodejs(installerOptions);
2022-12-13 10:09:39 +01:00
} else if (versionSpec.includes(Distributions.CANARY)) {
2022-12-27 19:28:20 +01:00
distribution = new CanaryBuild(installerOptions);
2022-12-13 10:09:39 +01:00
} else if (versionSpec.includes(Distributions.RC)) {
2022-12-27 19:28:20 +01:00
distribution = new RcBuild(installerOptions);
} else {
distribution = new OfficialBuilds(installerOptions);
2022-12-13 10:09:39 +01:00
}
return distribution;
}