Skip to content

Commit 7553601

Browse files
committed
Handle app directory not existing
1 parent af7a45f commit 7553601

File tree

5 files changed

+102
-94
lines changed

5 files changed

+102
-94
lines changed

package-lock.json

Lines changed: 81 additions & 81 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"xstate": "^4.33.0"
5151
},
5252
"devDependencies": {
53-
"@tauri-apps/cli": "^1.0.3",
53+
"@tauri-apps/cli": "^1.0.5",
5454
"@types/prosemirror-commands": "^1.0.4",
5555
"@types/prosemirror-keymap": "^1.0.4",
5656
"@types/prosemirror-state": "^1.3.0",

source/state/packager.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Command} from "@tauri-apps/api/shell"
2-
import {readTextFile, writeTextFile, removeFile, readDir} from "@tauri-apps/api/fs"
2+
import {readTextFile, writeTextFile, removeFile, createDir, readDir} from "@tauri-apps/api/fs"
33
import { ReactiveController, ReactiveControllerHost } from "lit"
44
import { property } from "lit/decorators/property.js"
55
import type { IPackageJson } from "package-json-type"
@@ -38,13 +38,17 @@ export class Packager {
3838
}
3939

4040
async initialize(inAppDir=true) {
41-
this.appDir = (await appDir()).slice(0, -1)
41+
this.appDir = await appDir()
42+
try {
43+
await readDir(this.appDir)
44+
}
45+
catch(err) {
46+
await createDir(this.appDir)
47+
}
4248
const list = await this.ls() as any
4349
if(!list?.name) {
44-
await this.npm("init", ["--yes"], false, true)
45-
// const packageJsonPath = await join(this.appDir, "package.json")
46-
// await (new Command(`"${DEFAULT_PACKAGE_JSON}" > "${packageJsonPath}"`)).execute()
47-
return this.install(Packager.corePackages)
50+
await this.npm("init", ["--yes"], false, inAppDir)
51+
return this.install(Packager.corePackages, true, false)
4852
}
4953

5054
}
@@ -194,6 +198,7 @@ export class PackagerController extends Packager implements ReactiveController {
194198
}
195199

196200
async fetchInstalledPackages(loading=true, importPackages=false) {
201+
console.trace("fetchInstalledPackages")
197202
this.loading = loading
198203
await this.initialized
199204
this.host.requestUpdate()
@@ -219,6 +224,7 @@ export class PackagerController extends Packager implements ReactiveController {
219224
}
220225

221226
async fetchAllPackages(from=0, append=true, loading=true) {
227+
console.trace("fetchAllPackages")
222228
this.loading = loading
223229
await this.initialized
224230
this.host.requestUpdate()
@@ -229,9 +235,9 @@ export class PackagerController extends Packager implements ReactiveController {
229235
this.host.requestUpdate()
230236
}
231237

232-
async install(args: string[] = [], importPackages=true) {
238+
async install(args: string[] = [], importPackages=true, fetchInstalled=true) {
233239
const result = await super.install(args)
234-
await this.fetchInstalledPackages()
240+
fetchInstalled? await this.fetchInstalledPackages(): null
235241
importPackages? await super.writeBundle(this.installedPackages): null
236242
importPackages? await super.importBundle(this.installedPackages): null
237243
this.host.requestUpdate()

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ tauri-build = { version = "1.0.2", features = [] }
1717
[dependencies]
1818
serde_json = "1.0"
1919
serde = { version = "1.0", features = ["derive"] }
20-
tauri = { version = "1.0.2", features = ["devtools", "dialog-all", "fs-read-file", "fs-remove-file", "fs-write-file", "path-all", "shell-execute", "shell-open", "shell-sidecar"] }
20+
tauri = { version = "1.0.2", features = ["devtools", "dialog-all", "fs-create-dir", "fs-read-dir", "fs-read-file", "fs-remove-file", "fs-write-file", "path-all", "shell-execute", "shell-open", "shell-sidecar"] }
2121

2222
[features]
2323
# by default Tauri runs in production mode

0 commit comments

Comments
 (0)