* fix false notification/rebuild for dx hot-reload
* Make sure we have permissions and the changed file exists before reading the metadata
---------
Co-authored-by: ealmloff <evanalmloff@gmail.com>
* Related to #1547: use `dioxus-cli` within a workspace
Although the `dx` CLI allows to specify a package name to chose from workspace members,
it does not support workspace members specified as glob-wildcards.
Neither it respects the effective package name, specified in the crate's `Cargo.toml`.
This PR addresses that issue:
- upon `dx build ...`, if the `--bin` CLI-argument is provided, treat the current dir as a workspace;
- search through the workspace's `members`: resolve each of them with `glob`;
- assume that any workspace member has a `Cargo.toml` in it (cargo does it, so it's okay);
- read said manifest, and check the package name in it;
- if found — there we have our sought package.
* Use cargo-metadata to find out the workspace structure
* glob is unused
Adds the ability to specify an indent string to public autofmt methods - either
a sequence of spaces or a tab character.
Get the indentation style and size from rustfmt for dx fmt, or from the editor
settings for the vscode extension.
Closes#1595
* cli: Log connection errors during `dx serve` in desktop apps
* add a note about the dioxus CLI
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Some zip files do not list directories separately from files. For example, a zip might contain `dir/file.txt` without a corresponding entry for just `dir/`. This should be okay, so we just create the leading paths for the files we extract as necessary.
Also adds tests for the expected and dangerous path cases of `extract_zip`.
I believe that technically this function is part of the public API via `dioxus_cli::cli::cfg::parse_public_url`. However, I don't see any evidence that this function is actually used inside or outside this crate. The last use within the crate was removed in January 2022 (9bb10c65a3).
* fix(serve): provide a clear error with pathless proxy URLs
Without this, `dx serve` panics with this message:
```
Paths must start with a `/`. Use "/" for
root routes
```
That's not very clear. Instead, we can detect this situation and provide a better error message:
```
Error: 🚫 Serving project failed: Failed to establish proxy: Proxy backend URL must have a non-empty path, e.g. http://localhost:8080/api instead of http://localhost:8080
```
* docs(config): correct format for `web.proxy`