Skip to content

Commit 7ec77bd

Browse files
authored
For v11, only support the last version 11.1.4 and the last Core version 1.6.1 (#108)
1 parent 0920678 commit 7ec77bd

File tree

5 files changed

+25
-66
lines changed

5 files changed

+25
-66
lines changed

src/ExistingJsProject.res

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,17 @@ let updateRescriptJson = async (~projectName, ~sourceDir, ~moduleSystem, ~suffix
4747
}
4848
)
4949

50-
let getModuleSystemOptions = (~versions) => [
50+
let getModuleSystemOptions = () => [
5151
{
52-
P.value: "commonjs",
53-
label: "CommonJS",
54-
hint: "Use require syntax and .res.js extension",
55-
},
56-
{
57-
value: RescriptVersions.esmModuleSystemName(versions),
52+
P.value: "esmodule",
5853
label: "ES Modules",
5954
hint: "Use import syntax and .res.mjs extension",
6055
},
56+
{
57+
value: "commonjs",
58+
label: "CommonJS",
59+
hint: "Use require syntax and .res.js extension",
60+
},
6161
]
6262

6363
let addToExistingProject = async (~projectName) => {
@@ -72,10 +72,10 @@ let addToExistingProject = async (~projectName) => {
7272

7373
let moduleSystem = await P.select({
7474
message: "What module system will you use?",
75-
options: getModuleSystemOptions(~versions),
75+
options: getModuleSystemOptions(),
7676
})->P.resultOrRaise
7777

78-
let suffix = moduleSystem->ModuleSystem.getSuffix
78+
let suffix = moduleSystem === "esmodule" ? ".res.mjs" : ".res.js"
7979

8080
let shouldCheckJsFilesIntoGit = await P.confirm({
8181
message: `Do you want to check generated ${suffix} files into git?`,

src/ModuleSystem.res

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/NewProject.res

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,15 @@ let updatePackageJson = async (~projectName, ~versions) =>
3737
}
3838
)
3939

40-
let updateRescriptJson = async (~projectName, ~versions) =>
40+
let updateRescriptJson = async (~projectName, ~versions: RescriptVersions.versions) =>
4141
await JsonUtils.updateJsonFile("rescript.json", json =>
4242
switch json {
4343
| Object(config) =>
4444
config->Dict.set("name", String(projectName))
4545
switch config->Dict.get("package-specs") {
4646
| Some(Object(packageSpecs)) | Some(Array([Object(packageSpecs)])) =>
47-
let moduleSystemName = versions->RescriptVersions.esmModuleSystemName
48-
packageSpecs->Dict.set("module", String(moduleSystemName))
49-
50-
let suffix = moduleSystemName->ModuleSystem.getSuffix
51-
config->Dict.set("suffix", String(suffix))
47+
packageSpecs->Dict.set("module", String("esmodule"))
48+
config->Dict.set("suffix", String(".res.mjs"))
5249
| _ => ()
5350
}
5451

src/RescriptVersions.res

Lines changed: 13 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,75 +2,47 @@ open Node
22

33
module 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"
77
let includesRewatchVersionRange = ">=12.0.0-alpha.15"
88
let includesStdlibVersionRange = ">=12.0.0-beta.1"
99

1010
type 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-
2112
let spinnerMessage = "Loading available versions..."
2213

2314
let 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-
13099
let usesRewatch = ({rescriptVersion}) =>
131100
CompareVersions.satisfies(rescriptVersion, includesRewatchVersionRange)

src/RescriptVersions.resi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,4 @@ let promptVersions: unit => promise<versions>
44

55
let installVersions: versions => promise<unit>
66

7-
let esmModuleSystemName: versions => string
8-
97
let usesRewatch: versions => bool

0 commit comments

Comments
 (0)