feat(tauri) allow plugin config on tauri.conf.json (#824)

This commit is contained in:
Lucas Fernandes Nogueira 2020-07-13 18:18:06 -03:00 committed by GitHub
parent 3337677109
commit 56f819d2ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 0 deletions

View File

@ -259,6 +259,18 @@
},
"type": "object"
},
"plugins": {
"additionalProperties": {
"additionalProperties": {
},
"defaultProperties": [
],
"type": "object"
},
"defaultProperties": [
],
"type": "object"
},
"tauri": {
"additionalProperties": false,
"defaultProperties": [

View File

@ -292,6 +292,11 @@ export interface TauriConfig {
active?: boolean
}
}
plugins?: {
[name: string]: {
[key: string]: any
}
}
}
export default TauriConfig

View File

@ -269,6 +269,18 @@ export const TauriConfigSchema = {
},
"type": "object"
},
"plugins": {
"additionalProperties": {
"additionalProperties": {
},
"defaultProperties": [
],
"type": "object"
},
"defaultProperties": [
],
"type": "object"
},
"tauri": {
"additionalProperties": false,
"defaultProperties": [

View File

@ -1,5 +1,6 @@
use serde::de::{Deserializer, Error as DeError, Visitor};
use serde::Deserialize;
use serde_json::Value as JsonValue;
use once_cell::sync::OnceCell;
use std::collections::HashMap;
@ -306,6 +307,8 @@ fn default_dev_path() -> String {
"".to_string()
}
type JsonObject = HashMap<String, JsonValue>;
/// The tauri.conf.json mapper.
#[derive(PartialEq, Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
@ -316,6 +319,16 @@ pub struct Config {
/// The build configuration.
#[serde(default = "default_build")]
pub build: BuildConfig,
/// The plugins config.
#[serde(default)]
plugins: HashMap<String, JsonObject>,
}
impl Config {
/// Gets a plugin configuration.
pub fn plugin_config<S: AsRef<str>>(&self, plugin_name: S) -> Option<&JsonObject> {
self.plugins.get(plugin_name.as_ref())
}
}
fn default_tauri() -> TauriConfig {
@ -431,6 +444,7 @@ mod test {
build: BuildConfig {
dev_path: String::from("../dist"),
},
plugins: Default::default(),
}
}