|
1 | 1 | module P = ClackPrompts
|
2 | 2 |
|
3 |
| -let rescriptVersionRange = "11.x.x" |
| 3 | +let rescript12VersionRange = "12.0.0-alpha.x" |
| 4 | +let rescriptVersionRange = `11.x.x || ${rescript12VersionRange}` |
4 | 5 | let rescriptCoreVersionRange = ">=1.0.0"
|
5 | 6 |
|
6 |
| -type versions = {rescriptVersion: string, rescriptCoreVersion: string} |
| 7 | +type versions = {rescriptVersion: string, rescriptCoreVersion: option<string>} |
7 | 8 |
|
8 | 9 | let getCompatibleRescriptCoreVersions = (~rescriptVersion, ~rescriptCoreVersions) =>
|
9 | 10 | if CompareVersions.compareVersions(rescriptVersion, "11.1.0")->Ordering.isLess {
|
@@ -51,21 +52,31 @@ let promptVersions = async () => {
|
51 | 52 | ~rescriptCoreVersions,
|
52 | 53 | )
|
53 | 54 |
|
| 55 | + let isRescript12 = CompareVersions.satisfies(rescriptVersion, rescript12VersionRange) |
| 56 | + |
54 | 57 | let rescriptCoreVersion = switch rescriptCoreVersions {
|
55 |
| - | [version] => version |
| 58 | + | _ if isRescript12 => None |
| 59 | + | [version] => Some(version) |
56 | 60 | | _ =>
|
57 |
| - await P.select({ |
| 61 | + let version = await P.select({ |
58 | 62 | message: "ReScript Core version?",
|
59 | 63 | options: rescriptCoreVersions->Array.map(v => {P.value: v}),
|
60 | 64 | })->P.resultOrRaise
|
| 65 | + Some(version) |
61 | 66 | }
|
62 | 67 |
|
63 | 68 | {rescriptVersion, rescriptCoreVersion}
|
64 | 69 | }
|
65 | 70 |
|
66 | 71 | let installVersions = async ({rescriptVersion, rescriptCoreVersion}) => {
|
67 | 72 | let packageManager = PackageManagers.getActivePackageManager()
|
68 |
| - let packages = [`rescript@${rescriptVersion}`, `@rescript/core@${rescriptCoreVersion}`] |
| 73 | + let packages = switch rescriptCoreVersion { |
| 74 | + | Some(rescriptCoreVersion) => [ |
| 75 | + `rescript@${rescriptVersion}`, |
| 76 | + `@rescript/core@${rescriptCoreVersion}`, |
| 77 | + ] |
| 78 | + | None => [`rescript@${rescriptVersion}`] |
| 79 | + } |
69 | 80 |
|
70 | 81 | // #58: Windows: packageManager may be something like
|
71 | 82 | // "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js".
|
|
0 commit comments