activity_sys/
sdk.rs

1use wasm_bindgen::prelude::*;
2use wasm_bindgen::JsValue;
3
4#[wasm_bindgen(module = "@discord/embedded-app-sdk")]
5extern "C" {
6    #[wasm_bindgen(extends=js_sys::Object)]
7    pub type DiscordSDK;
8
9    #[wasm_bindgen(constructor, catch)]
10    pub fn new(clientId: &str) -> Result<DiscordSDK, JsValue>;
11
12    #[wasm_bindgen(method, getter, js_name = clientId)]
13    pub fn client_id(this: &DiscordSDK) -> String;
14
15    #[wasm_bindgen(method, getter, js_name = instanceId)]
16    pub fn instance_id(this: &DiscordSDK) -> String;
17
18    #[wasm_bindgen(method, getter, js_name = customId)]
19    pub fn custom_id(this: &DiscordSDK) -> Option<String>;
20
21    #[wasm_bindgen(method, getter, js_name = referrerId)]
22    pub fn referrer_id(this: &DiscordSDK) -> Option<String>;
23
24    #[wasm_bindgen(method, getter)]
25    pub fn platform(this: &DiscordSDK) -> String;
26
27    #[wasm_bindgen(method, getter, js_name = guildId)]
28    pub fn guild_id(this: &DiscordSDK) -> Option<String>;
29
30    #[wasm_bindgen(method, getter, js_name = channelId)]
31    pub fn channel_id(this: &DiscordSDK) -> Option<String>;
32
33    #[wasm_bindgen(method, getter, js_name = sourceOrigin)]
34    pub fn source_origin(this: &DiscordSDK) -> Option<String>;
35
36    #[wasm_bindgen(method, getter)]
37    pub fn configuration(this: &DiscordSDK) -> JsValue;
38
39    #[wasm_bindgen(method, getter)]
40    pub fn commands(this: &DiscordSDK) -> DiscordSDKCommands;
41
42    #[wasm_bindgen(method, catch)]
43    pub async fn ready(this: &DiscordSDK) -> Result<(), JsValue>;
44
45    #[wasm_bindgen(method, catch)]
46    pub async fn subscribe(
47        this: &DiscordSDK,
48        event: &str,
49        f: &Closure<dyn FnMut(JsValue) -> Result<(), JsValue>>,
50        args: JsValue,
51    ) -> Result<(), JsValue>;
52
53    #[wasm_bindgen(method, catch)]
54    pub async fn unsubscribe(this: &DiscordSDK, event: &str) -> Result<(), JsValue>;
55
56    #[wasm_bindgen(method, js_name = unsubscribe)]
57    pub fn unsubscribe_nowait(this: &DiscordSDK, event: &str);
58}
59
60#[wasm_bindgen]
61extern "C" {
62    #[wasm_bindgen(extends=js_sys::Object)]
63    pub type DiscordSDKCommands;
64
65    #[wasm_bindgen(method, catch)]
66    pub async fn authorize(this: &DiscordSDKCommands, args: JsValue) -> Result<JsValue, JsValue>;
67
68    #[wasm_bindgen(method, catch)]
69    pub async fn authenticate(this: &DiscordSDKCommands, args: JsValue)
70        -> Result<JsValue, JsValue>;
71
72    #[wasm_bindgen(method, catch, js_name = captureLog)]
73    pub async fn capture_log(this: &DiscordSDKCommands, args: JsValue) -> Result<(), JsValue>;
74
75    #[wasm_bindgen(method, catch, js_name = encourageHardwareAcceleration)]
76    pub async fn encourage_hardware_acceleration(this: &DiscordSDKCommands) -> Result<(), JsValue>;
77
78    #[wasm_bindgen(method, catch, js_name = getChannel)]
79    pub async fn get_channel(this: &DiscordSDKCommands, args: JsValue) -> Result<JsValue, JsValue>;
80
81    #[wasm_bindgen(method, catch, js_name = getChannelPermissions)]
82    pub async fn get_channel_permissions(this: &DiscordSDKCommands) -> Result<JsValue, JsValue>;
83
84    #[wasm_bindgen(method, catch, js_name = getInstanceConnectedParticipants)]
85    pub async fn get_instance_connected_participants(
86        this: &DiscordSDKCommands,
87    ) -> Result<JsValue, JsValue>;
88
89    #[wasm_bindgen(method, catch, js_name = getPlatformBehaviors)]
90    pub async fn get_platform_behaviors(this: &DiscordSDKCommands) -> Result<JsValue, JsValue>;
91
92    #[wasm_bindgen(method, catch, js_name = initiateImageUpload)]
93    pub async fn initiate_image_upload(this: &DiscordSDKCommands) -> Result<JsValue, JsValue>;
94
95    #[wasm_bindgen(method, catch, js_name = openExternalLink)]
96    pub async fn open_external_link(
97        this: &DiscordSDKCommands,
98        args: JsValue,
99    ) -> Result<JsValue, JsValue>;
100
101    #[wasm_bindgen(method, catch, js_name = openInviteDialog)]
102    pub async fn open_invite_dialog(this: &DiscordSDKCommands) -> Result<(), JsValue>;
103
104    #[wasm_bindgen(method, catch, js_name = openShareMomentDialog)]
105    pub async fn open_share_moment_dialog(
106        this: &DiscordSDKCommands,
107        args: JsValue,
108    ) -> Result<(), JsValue>;
109
110    #[wasm_bindgen(method, catch, js_name = setActivity)]
111    pub async fn set_activity(this: &DiscordSDKCommands, args: JsValue) -> Result<(), JsValue>;
112
113    #[wasm_bindgen(method, catch, js_name = setConfig)]
114    pub async fn set_config(this: &DiscordSDKCommands, args: JsValue) -> Result<(), JsValue>;
115
116    #[wasm_bindgen(method, catch, js_name = setOrientationLockState)]
117    pub async fn set_orientation_lock_state(
118        this: &DiscordSDKCommands,
119        args: JsValue,
120    ) -> Result<(), JsValue>;
121
122    #[wasm_bindgen(method, catch, js_name = userSettingsGetLocale)]
123    pub async fn user_settings_get_locale(this: &DiscordSDKCommands) -> Result<JsValue, JsValue>;
124}