@smbcloud / cli / commits / 8c1bb37

Add tsify

Seto Elkahfi committed Sep 16, 2023 at 16:33 UTC 8c1bb3760f5716525c748a438cac1577acfef105
4 files changed +100 -26
Cargo.lock
+63 -12
@@ -404,6 +404,19 @@ dependencies = [
404 "wasi 0.11.0+wasi-snapshot-preview1",
405 ]
406
407 +[[package]]
408 +name = "gloo-utils"
409 +version = "0.1.7"
410 +source = "registry+https://github.com/rust-lang/crates.io-index"
411 +checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e"
412 +dependencies = [
413 + "js-sys",
414 + "serde",
415 + "serde_json",
416 + "wasm-bindgen",
417 + "web-sys",
418 +]
419 +
420 [[package]]
421 name = "h2"
422 version = "0.3.15"
@@ -1134,6 +1147,17 @@ dependencies = [
1147 "syn 1.0.107",
1148 ]
1149
1150 +[[package]]
1151 +name = "serde_derive_internals"
1152 +version = "0.28.0"
1153 +source = "registry+https://github.com/rust-lang/crates.io-index"
1154 +checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509"
1155 +dependencies = [
1156 + "proc-macro2",
1157 + "quote",
1158 + "syn 2.0.30",
1159 +]
1160 +
1161 [[package]]
1162 name = "serde_json"
1163 version = "1.0.93"
@@ -1246,6 +1270,8 @@ dependencies = [
1270 "serde_json",
1271 "serde_repr",
1272 "spinners",
1273 + "tsify",
1274 + "wasm-bindgen",
1275 ]
1276
1277 [[package]]
@@ -1623,6 +1649,31 @@ version = "0.2.4"
1649 source = "registry+https://github.com/rust-lang/crates.io-index"
1650 checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
1651
1652 +[[package]]
1653 +name = "tsify"
1654 +version = "0.4.5"
1655 +source = "registry+https://github.com/rust-lang/crates.io-index"
1656 +checksum = "d6b26cf145f2f3b9ff84e182c448eaf05468e247f148cf3d2a7d67d78ff023a0"
1657 +dependencies = [
1658 + "gloo-utils",
1659 + "serde",
1660 + "serde_json",
1661 + "tsify-macros",
1662 + "wasm-bindgen",
1663 +]
1664 +
1665 +[[package]]
1666 +name = "tsify-macros"
1667 +version = "0.4.5"
1668 +source = "registry+https://github.com/rust-lang/crates.io-index"
1669 +checksum = "7a94b0f0954b3e59bfc2c246b4c8574390d94a4ad4ad246aaf2fb07d7dfd3b47"
1670 +dependencies = [
1671 + "proc-macro2",
1672 + "quote",
1673 + "serde_derive_internals",
1674 + "syn 2.0.30",
1675 +]
1676 +
1677 [[package]]
1678 name = "unicode-bidi"
1679 version = "0.3.10"
@@ -1709,9 +1760,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
1760
1761 [[package]]
1762 name = "wasm-bindgen"
1712 -version = "0.2.84"
1763 +version = "0.2.87"
1764 source = "registry+https://github.com/rust-lang/crates.io-index"
1714 -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
1765 +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
1766 dependencies = [
1767 "cfg-if",
1768 "wasm-bindgen-macro",
@@ -1719,16 +1770,16 @@ dependencies = [
1770
1771 [[package]]
1772 name = "wasm-bindgen-backend"
1722 -version = "0.2.84"
1773 +version = "0.2.87"
1774 source = "registry+https://github.com/rust-lang/crates.io-index"
1724 -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
1775 +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
1776 dependencies = [
1777 "bumpalo",
1778 "log",
1779 "once_cell",
1780 "proc-macro2",
1781 "quote",
1731 - "syn 1.0.107",
1782 + "syn 2.0.30",
1783 "wasm-bindgen-shared",
1784 ]
1785
@@ -1746,9 +1797,9 @@ dependencies = [
1797
1798 [[package]]
1799 name = "wasm-bindgen-macro"
1749 -version = "0.2.84"
1800 +version = "0.2.87"
1801 source = "registry+https://github.com/rust-lang/crates.io-index"
1751 -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
1802 +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
1803 dependencies = [
1804 "quote",
1805 "wasm-bindgen-macro-support",
@@ -1756,22 +1807,22 @@ dependencies = [
1807
1808 [[package]]
1809 name = "wasm-bindgen-macro-support"
1759 -version = "0.2.84"
1810 +version = "0.2.87"
1811 source = "registry+https://github.com/rust-lang/crates.io-index"
1761 -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
1812 +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
1813 dependencies = [
1814 "proc-macro2",
1815 "quote",
1765 - "syn 1.0.107",
1816 + "syn 2.0.30",
1817 "wasm-bindgen-backend",
1818 "wasm-bindgen-shared",
1819 ]
1820
1821 [[package]]
1822 name = "wasm-bindgen-shared"
1772 -version = "0.2.84"
1823 +version = "0.2.87"
1824 source = "registry+https://github.com/rust-lang/crates.io-index"
1774 -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
1825 +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
1826
1827 [[package]]
1828 name = "web-sys"
smbpndk-model/Cargo.toml
+5
@@ -17,3 +17,8 @@ serde = { version = "1", features = ["derive"] }
17 serde_json = "1.0.82"
18 serde_repr = "0.1"
19 spinners = "4.1.0"
20 +tsify = "0.4.5"
21 +wasm-bindgen = { version = "0.2" }
22 +
23 +[lib]
24 +crate-type = ["cdylib", "rlib"]
smbpndk-model/src/account.rs
+13 -6
@@ -2,9 +2,11 @@ use crate::signup::GithubEmail;
2 use serde::{Deserialize, Serialize};
3 use serde_repr::Serialize_repr;
4 use std::fmt::{Display, Formatter};
5 +use tsify::Tsify;
6
7 // SMBPNDK Users.
7 -#[derive(Debug, Serialize, Deserialize)]
8 +#[derive(Debug, Serialize, Deserialize, Tsify)]
9 +#[tsify(into_wasm_abi)]
10 pub struct User {
11 pub id: i32,
12 pub email: String,
@@ -16,13 +18,15 @@ impl Display for User {
18 }
19 }
20
19 -#[derive(Debug, Serialize, Deserialize)]
21 +#[derive(Debug, Serialize, Deserialize, Tsify)]
22 +#[tsify(into_wasm_abi)]
23 pub struct Status {
24 pub code: Option<i32>,
25 pub message: String,
26 }
27
25 -#[derive(Debug, Serialize, Deserialize)]
28 +#[derive(Debug, Serialize, Deserialize, Tsify)]
29 +#[tsify(into_wasm_abi)]
30 pub struct Data {
31 id: i32,
32 email: String,
@@ -30,7 +34,8 @@ pub struct Data {
34 }
35
36 // This is smb authorization model.
33 -#[derive(Debug, Serialize, Deserialize)]
37 +#[derive(Debug, Serialize, Deserialize, Tsify)]
38 +#[tsify(into_wasm_abi)]
39 pub struct SmbAuthorization {
40 pub message: String,
41 pub user: Option<User>,
@@ -39,7 +44,8 @@ pub struct SmbAuthorization {
44 pub error_code: Option<ErrorCode>,
45 }
46
42 -#[derive(Debug, Serialize_repr, Deserialize, PartialEq)]
47 +#[derive(Debug, Serialize_repr, Deserialize, PartialEq, Tsify)]
48 +#[tsify(namespace)]
49 #[repr(u32)]
50 pub enum ErrorCode {
51 EmailNotFound = 1000,
@@ -67,7 +73,8 @@ impl Clone for ErrorCode {
73 }
74 }
75
70 -#[derive(Debug, Serialize, Deserialize)]
76 +#[derive(Debug, Serialize, Deserialize, Tsify)]
77 +#[tsify(into_wasm_abi)]
78 pub struct GithubInfo {
79 pub id: i64,
80 pub login: String,
smbpndk-model/src/signup.rs
+19 -8
@@ -1,7 +1,10 @@
1 use crate::account::{Data, Status};
2 use serde::{Deserialize, Serialize};
3 use std::fmt::{Display, Formatter};
4 +use tsify::Tsify;
5
6 +#[derive(Debug, Serialize, Tsify)]
7 +#[tsify(into_wasm_abi)]
8 pub struct SignupArgs {
9 pub email: String,
10 pub password: Option<String>,
@@ -9,47 +12,55 @@ pub struct SignupArgs {
12 pub authorizations_attributes: Vec<Provider>,
13 }
14
12 -#[derive(Debug, Serialize)]
15 +#[derive(Debug, Serialize, Tsify)]
16 +#[tsify(into_wasm_abi)]
17 pub struct Provider {
18 pub uid: String,
19 pub provider: i8,
20 }
21
18 -#[derive(Debug, Serialize)]
22 +#[derive(Debug, Serialize, Tsify)]
23 +#[tsify(into_wasm_abi)]
24 pub struct SignupGithubParams {
25 pub user: SignupUserGithub,
26 }
27
23 -#[derive(Debug, Serialize)]
28 +#[derive(Debug, Serialize, Tsify)]
29 +#[tsify(into_wasm_abi)]
30 pub struct SignupEmailParams {
31 pub user: SignupUserEmail,
32 }
33
28 -#[derive(Debug, Serialize)]
34 +#[derive(Debug, Serialize, Tsify)]
35 +#[tsify(into_wasm_abi)]
36 pub struct SignupUserGithub {
37 pub email: String,
38 pub authorizations_attributes: Vec<Provider>,
39 }
40
34 -#[derive(Debug, Serialize)]
41 +#[derive(Debug, Serialize, Tsify)]
42 +#[tsify(into_wasm_abi)]
43 pub struct SignupUserEmail {
44 pub email: String,
45 pub password: String,
46 }
47
40 -#[derive(Debug, Serialize, Deserialize)]
48 +#[derive(Debug, Serialize, Deserialize, Tsify)]
49 +#[tsify(into_wasm_abi)]
50 pub struct SignupResult {
51 pub status: Status,
52 pub data: Option<Data>,
53 }
54
46 -#[derive(Debug, Serialize, Deserialize)]
55 +#[derive(Debug, Serialize, Deserialize, Tsify)]
56 +#[tsify(into_wasm_abi)]
57 pub struct GithubUser {
58 pub email: Option<String>,
59 pub name: String,
60 }
61
52 -#[derive(Debug, Serialize, Deserialize)]
62 +#[derive(Debug, Serialize, Deserialize, Tsify)]
63 +#[tsify(into_wasm_abi)]
64 pub struct GithubEmail {
65 pub email: String,
66 primary: bool,