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 1417348

Browse files
feat: changed watch script in package.json when using rewatch (#93)
1 parent a6bb637 commit 1417348

File tree

4 files changed

+31
-6
lines changed

4 files changed

+31
-6
lines changed

‎src/ExistingJsProject.res

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

33
module P = ClackPrompts
44

5-
let updatePackageJson = async () =>
5+
let updatePackageJson = async (~versions) =>
66
await JsonUtils.updateJsonFile("package.json", json =>
77
switch json {
88
| Object(config) =>
@@ -15,7 +15,12 @@ let updatePackageJson = async () =>
1515
}
1616
scripts->Dict.set("res:build", String("rescript"))
1717
scripts->Dict.set("res:clean", String("rescript clean"))
18-
scripts->Dict.set("res:dev", String("rescript -w"))
18+
19+
if RescriptVersions.usesRewatch(versions) {
20+
scripts->Dict.set("res:dev", String("rescript watch"))
21+
} else {
22+
scripts->Dict.set("res:dev", String("rescript -w"))
23+
}
1924
| _ => ()
2025
}
2126
)
@@ -101,7 +106,7 @@ let addToExistingProject = async (~projectName) => {
101106
await Fs.Promises.appendFile(gitignorePath, `**/*${suffix}${Os.eol}`)
102107
}
103108

104-
await updatePackageJson()
109+
await updatePackageJson(~versions)
105110
await updateRescriptJson(~projectName, ~sourceDir, ~moduleSystem, ~suffix, ~versions)
106111

107112
if !Fs.existsSync(sourceDirPath) {

‎src/NewProject.res

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,24 @@ let validateProjectName = projectName =>
1515
None
1616
}
1717

18-
let updatePackageJson = async (~projectName) =>
18+
let updatePackageJson = async (~projectName, ~versions) =>
1919
await JsonUtils.updateJsonFile("package.json", json =>
2020
switch json {
21-
| Object(config) => config->Dict.set("name", String(projectName))
21+
| 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"))
34+
}
35+
}
2236
| _ => ()
2337
}
2438
)
@@ -69,7 +83,7 @@ let createProject = async (~templateName, ~projectName, ~versions) => {
6983
Process.chdir(projectPath)
7084

7185
await Fs.Promises.rename("_gitignore", ".gitignore")
72-
await updatePackageJson(~projectName)
86+
await updatePackageJson(~projectName, ~versions)
7387
await updateRescriptJson(~projectName, ~versions)
7488

7589
await RescriptVersions.installVersions(versions)

‎src/RescriptVersions.res

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module P = ClackPrompts
33
let rescript12VersionRange = ">=12.0.0-alpha.5"
44
let rescriptVersionRange = `11.x.x || ${rescript12VersionRange}`
55
let rescriptCoreVersionRange = ">=1.0.0"
6+
let rescriptRewatchVersionRange = ">=12.0.0-alpha.15"
67

78
type versions = {rescriptVersion: string, rescriptCoreVersion: option<string>}
89

@@ -95,3 +96,6 @@ let installVersions = async ({rescriptVersion, rescriptCoreVersion}) => {
9596

9697
let esmModuleSystemName = ({rescriptVersion}) =>
9798
CompareVersions.compareVersions(rescriptVersion, "11.1.0-rc.8") > 0. ? "esmodule" : "es6"
99+
100+
let usesRewatch = ({rescriptVersion}) =>
101+
CompareVersions.satisfies(rescriptVersion, rescriptRewatchVersionRange)

‎src/RescriptVersions.resi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ let promptVersions: unit => promise<versions>
55
let installVersions: versions => promise<unit>
66

77
let esmModuleSystemName: versions => string
8+
9+
let usesRewatch: versions => bool

0 commit comments

Comments
(0)

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