@@ -2,75 +2,47 @@ open Node
22
33module P = ClackPrompts
44
5- let rescriptVersionRange = ` 11.x.x || 12.x.x`
6- let rescriptCoreVersionRange = ">=1.0.0 "
5+ let rescriptVersionRange = ` 11.1.4 || 12.x.x`
6+ let finalRescriptCoreVersion = "1.6.1 "
77let includesRewatchVersionRange = ">=12.0.0-alpha.15"
88let includesStdlibVersionRange = ">=12.0.0-beta.1"
99
1010type versions = {rescriptVersion : string , rescriptCoreVersion : option <string >}
1111
12- let getCompatibleRescriptCoreVersions = (~rescriptVersion , ~rescriptCoreVersions ) =>
13- if CompareVersions .compareVersions (rescriptVersion , "11.1.0" )-> Ordering .isLess {
14- rescriptCoreVersions -> Array .filter (coreVersion =>
15- CompareVersions .compareVersions (coreVersion , "1.3.0" )-> Ordering .isLess
16- )
17- } else {
18- rescriptCoreVersions
19- }
20-
2112let spinnerMessage = "Loading available versions..."
2213
2314let promptVersions = async () => {
2415 let s = P .spinner ()
2516
2617 s -> P .Spinner .start (spinnerMessage )
2718
28- let ( rescriptVersionsResult , rescriptCoreVersionsResult ) = await Promise . all2 ( (
29- NpmRegistry . getPackageVersions ( "rescript" , rescriptVersionRange ) ,
30- NpmRegistry . getPackageVersions ( "@rescript/core" , rescriptCoreVersionRange ) ,
31- ))
19+ let rescriptVersionsResult = await NpmRegistry . getPackageVersions (
20+ "rescript" ,
21+ rescriptVersionRange ,
22+ )
3223
33- switch ( rescriptVersionsResult , rescriptCoreVersionsResult ) {
34- | ( Ok (_ ), Ok ( _ ) ) => s -> P .Spinner .stop ("Versions loaded." )
35- | _ => s -> P .Spinner .stop (spinnerMessage )
24+ switch rescriptVersionsResult {
25+ | Ok (_ ) => s -> P .Spinner .stop ("Versions loaded." )
26+ | Error ( _ ) => s -> P .Spinner .stop (spinnerMessage )
3627 }
3728
3829 let rescriptVersion = switch rescriptVersionsResult {
3930 | Ok ([version ]) => version
4031 | Ok (rescriptVersions ) =>
4132 let options = rescriptVersions -> Array .map (v => {P .value : v })
4233
43- let initialValue =
44- options -> Array .find (o => o .value -> String .startsWith ("12." ))-> Option .map (o => o .value )
34+ let initialValue = None
35+ // Reactivate for v13 alpha -> first non-alpha/beta/rc version should be the default
36+ // options->Array.find(o => o.value->String.startsWith("12."))->Option.map(o => o.value)
4537
4638 let selectOptions = {ClackPrompts .message : "ReScript version?" , options , ?initialValue }
4739
4840 await P .select (selectOptions )-> P .resultOrRaise
4941 | Error (error ) => error -> NpmRegistry .getFetchErrorMessage -> JsError .throwWithMessage
5042 }
5143
52- let rescriptCoreVersions = switch rescriptCoreVersionsResult {
53- | Ok (versions ) => versions
54- | Error (error ) => error -> NpmRegistry .getFetchErrorMessage -> JsError .throwWithMessage
55- }
56-
57- let rescriptCoreVersions = getCompatibleRescriptCoreVersions (
58- ~rescriptVersion ,
59- ~rescriptCoreVersions ,
60- )
61-
6244 let includesStdlib = CompareVersions .satisfies (rescriptVersion , includesStdlibVersionRange )
63-
64- let rescriptCoreVersion = switch rescriptCoreVersions {
65- | _ if includesStdlib => None
66- | [version ] => Some (version )
67- | _ =>
68- let version = await P .select ({
69- message : "ReScript Core version?" ,
70- options : rescriptCoreVersions -> Array .map (v => {P .value : v }),
71- })-> P .resultOrRaise
72- Some (version )
73- }
45+ let rescriptCoreVersion = includesStdlib ? None : Some (finalRescriptCoreVersion )
7446
7547 {rescriptVersion , rescriptCoreVersion }
7648}
@@ -124,8 +96,5 @@ let installVersions = async ({rescriptVersion, rescriptCoreVersion}) => {
12496 }
12597}
12698
127- let esmModuleSystemName = ({rescriptVersion }) =>
128- CompareVersions .compareVersions (rescriptVersion , "11.1.0-rc.8" ) > 0 . ? "esmodule" : "es6"
129-
13099let usesRewatch = ({rescriptVersion }) =>
131100 CompareVersions .satisfies (rescriptVersion , includesRewatchVersionRange )
0 commit comments