search for first valid platform in features
This commit is contained in:
1 parent
f62c81ea0d
commit
3ffb1facf3
1 file changed
+5
-9
@@ -2,8 +2,8 @@ use dioxus_cli_config::Platform;
|
|||||||
use manganis_cli_support::AssetManifest;
|
use manganis_cli_support::AssetManifest;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use cargo_toml::Dependency::{Detailed, Inherited, Simple};
|
||||||
use std::{fs::create_dir_all, io::Write, path::PathBuf};
|
use std::{fs::create_dir_all, io::Write, path::PathBuf};
|
||||||
use cargo_toml::Dependency::{Simple, Inherited, Detailed};
|
|
||||||
|
|
||||||
/// Run the WASM project on dev-server
|
/// Run the WASM project on dev-server
|
||||||
#[derive(Clone, Debug, Parser)]
|
#[derive(Clone, Debug, Parser)]
|
||||||
@@ -42,27 +42,23 @@ impl Serve {
|
|||||||
|
|
||||||
crate_config.set_cargo_args(self.serve.cargo_args);
|
crate_config.set_cargo_args(self.serve.cargo_args);
|
||||||
|
|
||||||
let mut platform = self
|
let mut platform = self.serve.platform;
|
||||||
.serve
|
|
||||||
.platform;
|
|
||||||
|
|
||||||
if platform.is_none() {
|
if platform.is_none() {
|
||||||
if let Some(dependency) = &crate_config.manifest.dependencies.get("dioxus") {
|
if let Some(dependency) = &crate_config.manifest.dependencies.get("dioxus") {
|
||||||
let features = match dependency {
|
let features = match dependency {
|
||||||
Inherited(detail) => detail.features.to_vec(),
|
Inherited(detail) => detail.features.to_vec(),
|
||||||
Detailed(detail) => detail.features.to_vec(),
|
Detailed(detail) => detail.features.to_vec(),
|
||||||
Simple(_) => vec![]
|
Simple(_) => vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
platform = features
|
platform = features
|
||||||
.iter()
|
.iter()
|
||||||
.next()
|
.find_map(|platform| serde_json::from_str(&format!(r#""{}""#, platform)).ok());
|
||||||
.and_then(|first_feature| serde_json::from_str(&format!(r#""{}""#, first_feature)).ok());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let platform = platform
|
let platform = platform.unwrap_or(crate_config.dioxus_config.application.default_platform);
|
||||||
.unwrap_or(crate_config.dioxus_config.application.default_platform);
|
|
||||||
|
|
||||||
match platform {
|
match platform {
|
||||||
Platform::Web => {
|
Platform::Web => {
|
||||||
|
|||||||
Reference in new issue
Block a user