-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
Copy pathinstaller-factory.ts
31 lines (28 loc) · 1010 Bytes
/
installer-factory.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import BaseDistribution from './base-distribution';
import {NodeInputs} from './base-models';
import NightlyNodejs from './nightly/nightly_builds';
import OfficialBuilds from './official_builds/official_builds';
import RcBuild from './rc/rc_builds';
import CanaryBuild from './v8-canary/canary_builds';
enum Distributions {
DEFAULT = '',
CANARY = 'v8-canary',
NIGHTLY = 'nightly',
RC = 'rc'
}
export function getNodejsDistribution(
installerOptions: NodeInputs
): BaseDistribution {
const versionSpec = installerOptions.versionSpec;
let distribution: BaseDistribution;
if (versionSpec.includes(Distributions.NIGHTLY)) {
distribution = new NightlyNodejs(installerOptions);
} else if (versionSpec.includes(Distributions.CANARY)) {
distribution = new CanaryBuild(installerOptions);
} else if (versionSpec.includes(Distributions.RC)) {
distribution = new RcBuild(installerOptions);
} else {
distribution = new OfficialBuilds(installerOptions);
}
return distribution;
}