1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
//! `firebase_js_sys` is a wrapper around the firebase javascript sdk, allowing you to use it in rust.
//!
//! See [this package's README](https://github.com/ActuallyHappening/rust-firebase-js/blob/master/firebase-js-sys/README.md) for more information,
//! and [the `firebase-js` package](https://github.com/ActuallyHappening/rust-firebase-js/tree/master/firebase-js) for a high level implementation
//! layer ontop of this crate.
//!
//! Don't use this crate unless you are prepared to implement a lot more conversion logic, as most
//! of the functions return `JsValue`s instead of a more useful types.
//! See crate `firebase-js` for a more ergonomic interface.
//!
//! Uses bindings hand-written using `#[wasm_bindgen]` and `rollup`.
//!
//! ## Examples:
//! Usage in general:
//! ```rs
//! use firebase_js_sys::ModuleApp;
//!
//! // Will give runtime console error
//! ModuleApp::initialize_app(&JsValue::UNDEFINED);
//! ```
//!
//! Example main.rs for using `trunk` to build + run in browser:
//! ```rs
//! use log::info;
//! use wasm_bindgen::JsValue;
//!
//! fn main() {
//! _ = console_log::init_with_level(log::Level::Debug);
//!
//! console_error_panic_hook::set_once();
//!
//! info!("main.rs is running!");
//!
//! // Will not work, but only gives console run time error
//! let app = firebase_js_sys::ModuleApp::initialize_app(&JsValue::UNDEFINED);
//! // println!("returned: {:?}", app);
//! }
//! ```
use *;
type closure<Args> = ;
pub use ModuleApp;
pub use ModuleDatabase;
// #[wasm_bindgen(module = "/firebase-interop/database.js")]
// extern {
// #[wasm_bindgen(js_name = "ref")]
// pub fn get_ref(db: &JsValue, path: String) -> JsValue;
// }