Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f9bcf81

Browse files
authored
Merge pull request #100 from nojaf/update-vite
Update to Vite 7, React 19, modernize configurations
2 parents 4e15525 + e0f22c1 commit f9bcf81

File tree

5 files changed

+808
-554
lines changed

5 files changed

+808
-554
lines changed

‎src/NewProject.res

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ open Node
22

33
module P = ClackPrompts
44

5-
let packageNameRegExp = %re("/^[a-z0-9-]+$/")
5+
let packageNameRegExp = /^[a-z0-9-]+$/
66

77
let validateProjectName = projectName =>
88
if projectName->String.trim->String.length === 0 {
@@ -19,20 +19,20 @@ let updatePackageJson = async (~projectName, ~versions) =>
1919
await JsonUtils.updateJsonFile("package.json", json =>
2020
switch json {
2121
| Object(config) => {
22-
config->Dict.set("name", String(projectName))
23-
24-
let scripts = switch config->Dict.get("scripts") {
25-
| Some(Object(scripts)) => scripts
26-
| _ =>
27-
let scripts = Dict.make()
28-
config->Dict.set("scripts", Object(scripts))
29-
scripts
30-
}
31-
32-
if RescriptVersions.usesRewatch(versions) {
33-
scripts->Dict.set("res:dev", String("rescript watch"))
22+
config->Dict.set("name", String(projectName))
23+
24+
let scripts = switch config->Dict.get("scripts") {
25+
| Some(Object(scripts)) => scripts
26+
| _ =>
27+
let scripts = Dict.make()
28+
config->Dict.set("scripts", Object(scripts))
29+
scripts
30+
}
31+
32+
if RescriptVersions.usesRewatch(versions) {
33+
scripts->Dict.set("res:dev", String("rescript watch"))
34+
}
3435
}
35-
}
3636
| _ => ()
3737
}
3838
)
@@ -55,6 +55,11 @@ let updateRescriptJson = async (~projectName, ~versions) =>
5555
if Option.isNone(versions.rescriptCoreVersion) {
5656
RescriptJsonUtils.removeRescriptCore(config)
5757
}
58+
59+
// https://github.com/rescript-lang/rescript/blob/master/CHANGELOG.md#1200-beta3
60+
if CompareVersions.satisfies(versions.rescriptVersion, ">=12.0.0-beta.3") {
61+
RescriptJsonUtils.modernizeConfigurationFields(config)
62+
}
5863
| _ => ()
5964
}
6065
)
@@ -119,8 +124,10 @@ let createNewProject = async () => {
119124
validate: validateProjectName,
120125
})->P.resultOrRaise
121126

122-
let templateName =
123-
await P.select({message: "Select a template", options: getTemplateOptions()})->P.resultOrRaise
127+
let templateName = await P.select({
128+
message: "Select a template",
129+
options: getTemplateOptions(),
130+
})->P.resultOrRaise
124131

125132
let versions = await RescriptVersions.promptVersions()
126133

‎src/RescriptJsonUtils.res

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,18 @@ let removeRescriptCore = (config: Dict.t<JSON.t>) => {
2727
| _ => ()
2828
}
2929
}
30+
31+
let renameConfigKey = (config: Dict.t<JSON.t>, ~from, ~to) => {
32+
switch config->Dict.get(from) {
33+
| Some(value) =>
34+
config->Dict.set(to, value)
35+
config->Dict.delete(from)
36+
| _ => ()
37+
}
38+
}
39+
40+
let modernizeConfigurationFields = (config: Dict.t<JSON.t>) => {
41+
renameConfigKey(config, ~from="bs-dependencies", ~to="dependencies")
42+
renameConfigKey(config, ~from="bs-dev-dependencies", ~to="dev-dependencies")
43+
renameConfigKey(config, ~from="bsc-flags", ~to="compiler-flags")
44+
}

‎src/Templates.res

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ let templates = [
1010
{
1111
name: "rescript-template-vite",
1212
displayName: "Vite",
13-
shortDescription: "Vite 6, React and Tailwind 4",
13+
shortDescription: "Vite 7, React and Tailwind 4",
1414
},
1515
{
1616
name: "rescript-template-nextjs",

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /