Commit Graph
33 Commits
Author SHA1 Message Date
Jonathan Kelley 63e7aab4e8 Fix 2265: close tui on success, custom tui subscriber (#2734) 2024-07-31 10:49:51 -07:00
Evan Almloff a6e41e9d68 Make dioxus-cli a binary - not a library (#2698) 2024-07-24 18:09:57 -07:00
88af3e7eff Hotreloading of for/if/body, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI (#2258)
Hotreload the contents of for loops, if chains, component bodies, props, attributes, and any literals discovered in rsx!
Add a TUI renderer to the CLI.
Improve the CLI build system to be async and parallel.
Refactor RSX to allow partial expansion of expressions.
Merge autofmt implementations for consistency.
Merge the representation of elements and components under the hood.
Add a diagnostics system for rsx for improved error messages.
Drop interprocess and move to websockets for communication between the CLI and the server.
Assign IDs to nodes and attributes in a stable way to be used in non compiler contexts.
Add hotreloading to any body of component/for loop/if chain/etc.

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Liam Mitchell <liamkarlmitchell@gmail.com>
2024-07-17 19:11:18 -07:00
Miles Murgaw 2ef406982e Use Manganis Linker System (#2561)
* feat: new manganis linker

* revision: fmt, clippy, cleanup

* revision: link subcommand

* fix: async runtime

* revision: remove working dir arg

* revision: switch dep source

* fix: matrix, playwright

* fix: fullstack manganis
2024-07-02 21:36:44 -07:00
Miles Murgaw f4164c78c2 Fix: CLI Logging (#2254)
* fix: cli logging

* remove: debug print
2024-04-05 12:37:40 -07:00
Miles Murgaw 44f3047780 Revision: Change Default Logging In CLI (#2157)
* revision: filter to warn logs

* revision: change to use DIOXUS_LOG
2024-03-27 12:07:44 -07:00
Evan Almloff 2ac4bdb673 Switch to tracing for the cli (#2137)
* switch to tracing in the dioxus-cli

* bump manganis

* fix manganis features

* only print processing assets if skip assets is disabled

* switch all logs to tracing

* switch to published version of manganis

* undo all changes to cargo.toml

* remove reference to log
2024-03-25 15:21:51 -05:00
Evan Almloff da3b066934 Revert "switch to tracing"
This reverts commit 6608f73a2e.
2024-03-25 10:09:53 -05:00
Evan Almloff 6608f73a2e switch to tracing 2024-03-25 10:07:31 -05:00
Jonathan Kelley 982b96074a Add basic hotreload test samples 2024-03-13 13:07:15 -07:00
Jonathan Kelley ad7a350d2e fix hotreloading issues in the CLI 2024-03-12 13:39:42 -07:00
Jonathan Kelley 214a907adc Upgrade to axum 0.7, drop 3rd party adapters 2024-02-15 18:05:30 -08:00
Evan Almloff b88c66d8df report syn parse errors to the user 2024-02-08 10:00:25 -06:00
Andrew Voynov ea9622a75c fix(serve): fixed long rebuilds with dx serve 2024-02-06 00:27:45 +03:00
Andrew Voynov c22014571e refactor(cli): added multiple nested errors support
Before the top-level error message would print the dependent error
message. Now multiple nested errors can be shown (with anyhow context).
2024-01-30 18:09:21 +03:00
hem1t c6e1b0f728 init subcommand (#1840)
* `init` subcommand

* clippy
2024-01-16 10:25:07 -06:00
hem1t 1db8bd7edd Minor fixes in cli (#1837)
* not using bin, until needed

also removes an unnecessary warning!

* removed redundant line

maybe, it was readability?

* using same `if let` pattern as below

* to `get_bin(args.bin)?` with `Ok(())` at last

* unreachable!
2024-01-16 07:21:01 -06:00
Evan Almloff e004c1722f set the required environment variable for manganis support 2024-01-10 11:19:51 -06:00
Evan Almloff 23509ada9f Merge branch 'master' into cli-config-library 2024-01-08 13:24:16 -06:00
Evan Almloff 0914298bea Merge branch 'intigrate-collect-assets' of https://github.com/Demonthos/dioxus into intigrate-collect-assets 2023-12-21 18:05:02 -06:00
Evan Almloff 8b125231f0 make backend and frontend builds happen in parallel 2023-12-21 18:04:35 -06:00
YuKun Liu 695bf009d1 fix: dx create not work (#1709) 2023-12-11 13:27:55 -06:00
Evan Almloff 557630c419 Merge branch 'master' into cli-config-library 2023-11-20 18:35:24 -06:00
Raman Hafiyatulin 098689083d Related to #1547: use dioxus-cli within a workspace (wildcard-members, real package names) (#1642)
* 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
2023-11-15 15:14:16 -06:00
Evan Almloff 1ed66a54cc fix cli configuration environment variable 2023-11-14 15:50:04 -06:00
Evan Almloff 489338d642 create cli bundle command 2023-07-26 12:40:50 -07:00
Brian Donovan 2c2534d1cc feat(check): adds dx check
At the moment this only checks the Rules of Hooks, ensuring that hook functions (i.e. `use_*`) are being called as expected.

https://dioxuslabs.com/docs/0.3/guide/en/interactivity/hooks.html

Closes #1202
2023-07-23 16:06:55 -07:00
Miles Murgaw 4b70b1ce96 revision: find bin from workspace Cargo.toml 2023-07-17 14:30:05 -04:00
Miles Murgaw 9fab3cf4e3 Merge branch 'master' into cli-stuff 2023-07-15 12:40:23 -04:00
Brian Donovan 9cef71b6b9 fix(cli): improve error message for invalid config (#1200)
Previously an invalid `Dioxus.toml` file would yield this error when running e.g. `dx serve`:

```
Error: Failed to load `Dioxus.toml` because: Dioxus.toml parse failed
```

This doesn't give any indication why it failed to parse. This commit updates it to include why the parsing failed, e.g.:

```
Error: Failed to load Dioxus config because: Dioxus.toml missing field `name` for key `application` at line 38 column 1
```

I initially had it format the message to include `Dioxus.toml:38:1` to be clickable in some terminals, but the location specified didn't always seem particularly relevant to the actual problem so I left it as-is.

This also fixes what I believe would be an issue on case-sensitive file systems where if `dioxus.toml` existed it would try to read `Dioxus.toml`.

I'm still fairly new to Rust, so the `.as_path()` calls may not be the best way to deal with the fact that the borrow checker wouldn't let me re-use `crate_dir` and `dioxus_conf_file`. I'm open to suggestions!
2023-07-15 11:13:22 -05:00
Miles Murgaw d710b92696 fix: do it correctly 2023-07-14 20:41:27 -04:00
Jonathan Kelley 3f74b10e7c Feat: add dx as a package and move plugin to feature 2023-07-07 18:17:42 -07:00
Jonathan Kelley a9d7b4d32a Prepare CLI for move into mainline 2023-06-28 17:21:23 -07:00