1use serde::{Deserialize, Serialize};
2use wasm_bindgen::prelude::*;
3
4#[derive(Debug, Serialize, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct Config {
7 api_key: String,
8 auth_domain: Option<String>,
9 database_url: Option<String>,
10 project_id: Option<String>,
11 storage_bucket: Option<String>,
12 messaging_sender_id: Option<String>,
13 app_id: Option<String>,
14}
15
16impl Config {
17 pub fn initialize(
18 api_key: &str,
19 auth_domain: Option<String>,
20 database_url: Option<String>,
21 project_id: Option<String>,
22 storage_bucket: Option<String>,
23 messaging_sender_id: Option<String>,
24 app_id: Option<String>,
25 ) -> JsValue {
26 let config = Config {
27 api_key: String::from(api_key),
28 auth_domain,
29 database_url,
30 project_id,
31 storage_bucket,
32 messaging_sender_id,
33 app_id,
34 };
35 serde_wasm_bindgen::to_value(&config).unwrap()
36 }
37}