Skip to content

Commit 22fdc14

Browse files
committed
Detect v12 and make rescript core optional
1 parent 2d95888 commit 22fdc14

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

src/NewProject.res

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ let createNewProject = async () => {
8484
await createProject(
8585
~templateName="rescript-template-basic",
8686
~projectName="test",
87-
~versions={rescriptVersion: "11.1.1", rescriptCoreVersion: "1.5.0"},
87+
~versions={rescriptVersion: "11.1.1", rescriptCoreVersion: Some("1.5.0")},
8888
)
8989
} else {
9090
let projectName = await P.text({

src/RescriptVersions.res

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
module P = ClackPrompts
22

3-
let rescriptVersionRange = "11.x.x"
3+
let rescript12VersionRange = "12.0.0-alpha.x"
4+
let rescriptVersionRange = `11.x.x || ${rescript12VersionRange}`
45
let rescriptCoreVersionRange = ">=1.0.0"
56

6-
type versions = {rescriptVersion: string, rescriptCoreVersion: string}
7+
type versions = {rescriptVersion: string, rescriptCoreVersion: option<string>}
78

89
let getCompatibleRescriptCoreVersions = (~rescriptVersion, ~rescriptCoreVersions) =>
910
if CompareVersions.compareVersions(rescriptVersion, "11.1.0")->Ordering.isLess {
@@ -51,21 +52,31 @@ let promptVersions = async () => {
5152
~rescriptCoreVersions,
5253
)
5354

55+
let isRescript12 = CompareVersions.satisfies(rescriptVersion, rescript12VersionRange)
56+
5457
let rescriptCoreVersion = switch rescriptCoreVersions {
55-
| [version] => version
58+
| _ if isRescript12 => None
59+
| [version] => Some(version)
5660
| _ =>
57-
await P.select({
61+
let version = await P.select({
5862
message: "ReScript Core version?",
5963
options: rescriptCoreVersions->Array.map(v => {P.value: v}),
6064
})->P.resultOrRaise
65+
Some(version)
6166
}
6267

6368
{rescriptVersion, rescriptCoreVersion}
6469
}
6570

6671
let installVersions = async ({rescriptVersion, rescriptCoreVersion}) => {
6772
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+
}
6980

7081
// #58: Windows: packageManager may be something like
7182
// "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js".

src/RescriptVersions.resi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
type versions = {rescriptVersion: string, rescriptCoreVersion: string}
1+
type versions = {rescriptVersion: string, rescriptCoreVersion: option<string>}
22

33
let promptVersions: unit => promise<versions>
44

0 commit comments

Comments
 (0)