Current section

Files

Jump to
weapp src wechat network.gleam
Raw

src/wechat/network.gleam

//// network module provides network request bindings
//// details in [wechat document](https://developers.weixin.qq.com/miniprogram/dev/api/network/)
////
import gleam/javascript/promise.{type Promise}
import wechat/object.{type WechatResultCallback, type JsObject, type WechatCallback, type WechatResult}
/// `wx.downloadFile`
/// Download a file from the network
///
@external(javascript, "../wechat_network_ffi.mjs", "downloadFile")
pub fn download_file(
url u: String,
header h: JsObject,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.connectSocket`
/// Create a WebSocket connection
///
@external(javascript, "../wechat_network_ffi.mjs", "connectSocket")
pub fn connect_socket(
url u: String,
header h: JsObject,
protocols p: List(String),
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.onSocketOpen`
/// Listen for WebSocket connection opening events
///
@external(javascript, "../wechat_network_ffi.mjs", "onSocketOpen")
pub fn on_socket_open(callback cb: WechatResultCallback) -> Nil
/// `wx.onSocketError`
/// Listen for WebSocket error events
///
@external(javascript, "../wechat_network_ffi.mjs", "onSocketError")
pub fn on_socket_error(callback cb: WechatResultCallback) -> Nil
/// `wx.onSocketMessage`
/// Listen for WebSocket message events
///
@external(javascript, "../wechat_network_ffi.mjs", "onSocketMessage")
pub fn on_socket_message(callback cb: WechatResultCallback) -> Nil
/// `wx.onSocketClose`
/// Listen for WebSocket connection closing events
///
@external(javascript, "../wechat_network_ffi.mjs", "onSocketClose")
pub fn on_socket_close(callback cb: WechatResultCallback) -> Nil
/// `wx.sendSocketMessage`
/// Send data through WebSocket connection
///
@external(javascript, "../wechat_network_ffi.mjs", "sendSocketMessage")
pub fn send_socket_message(
data d: JsObject,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.closeSocket`
/// Close WebSocket connection
///
@external(javascript, "../wechat_network_ffi.mjs", "closeSocket")
pub fn close_socket(
code c: Int,
reason r: String,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.onNetworkStatusChange`
/// Listen for network status change events
///
@external(javascript, "../wechat_network_ffi.mjs", "onNetworkStatusChange")
pub fn on_network_status_change(callback cb: WechatResultCallback) -> Nil
/// `wx.offNetworkStatusChange`
/// Cancel listening for network status change events
///
@external(javascript, "../wechat_network_ffi.mjs", "offNetworkStatusChange")
pub fn off_network_status_change(callback cb: WechatResultCallback) -> Nil
/// `wx.request`
/// Initiate an HTTP request
///
@external(javascript, "../wechat_network_ffi.mjs", "request")
pub fn request(
url u: String,
method m: String,
data d: JsObject,
header h: JsObject,
timeout t: Int,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `RequestTask.abort`
/// Abort the request
///
@external(javascript, "../wechat_network_ffi.mjs", "requestTaskAbort")
pub fn request_task_abort(task: JsObject) -> Nil
/// `RequestTask.offHeadersReceived`
/// Cancel listening for headers received event
///
@external(javascript, "../wechat_network_ffi.mjs", "requestTaskOffHeadersReceived")
pub fn request_task_off_headers_received(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `RequestTask.onChunkReceived`
/// Listen for chunk received event
///
@external(javascript, "../wechat_network_ffi.mjs", "requestTaskOnChunkReceived")
pub fn request_task_on_chunk_received(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `RequestTask.onHeadersReceived`
/// Listen for headers received event
///
@external(javascript, "../wechat_network_ffi.mjs", "requestTaskOnHeadersReceived")
pub fn request_task_on_headers_received(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `DownloadTask.abort`
/// Abort the download task
///
@external(javascript, "../wechat_network_ffi.mjs", "downloadTaskAbort")
pub fn download_task_abort(task: JsObject) -> Nil
/// `DownloadTask.offHeadersReceived`
/// Cancel listening for headers received event
///
@external(javascript, "../wechat_network_ffi.mjs", "downloadTaskOffHeadersReceived")
pub fn download_task_off_headers_received(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `DownloadTask.offProgressUpdate`
/// Cancel listening for progress update event
///
@external(javascript, "../wechat_network_ffi.mjs", "downloadTaskOffProgressUpdate")
pub fn download_task_off_progress_update(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `DownloadTask.onHeadersReceived`
/// Listen for headers received event
///
@external(javascript, "../wechat_network_ffi.mjs", "downloadTaskOnHeadersReceived")
pub fn download_task_on_headers_received(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `DownloadTask.onProgressUpdate`
/// Listen for progress update event
///
@external(javascript, "../wechat_network_ffi.mjs", "downloadTaskOnProgressUpdate")
pub fn download_task_on_progress_update(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `UploadTask.abort`
/// Abort the upload task
///
@external(javascript, "../wechat_network_ffi.mjs", "uploadTaskAbort")
pub fn upload_task_abort(task: JsObject) -> Nil
/// `UploadTask.offHeadersReceived`
/// Cancel listening for headers received event
///
@external(javascript, "../wechat_network_ffi.mjs", "uploadTaskOffHeadersReceived")
pub fn upload_task_off_headers_received(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `UploadTask.offProgressUpdate`
/// Cancel listening for progress update event
///
@external(javascript, "../wechat_network_ffi.mjs", "uploadTaskOffProgressUpdate")
pub fn upload_task_off_progress_update(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `UploadTask.onHeadersReceived`
/// Listen for headers received event
///
@external(javascript, "../wechat_network_ffi.mjs", "uploadTaskOnHeadersReceived")
pub fn upload_task_on_headers_received(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// `UploadTask.onProgressUpdate`
/// Listen for progress update event
///
@external(javascript, "../wechat_network_ffi.mjs", "uploadTaskOnProgressUpdate")
pub fn upload_task_on_progress_update(
task: JsObject,
callback cb: WechatResultCallback,
) -> Nil
/// Socket APIs
///
/// TCPSocket type
///
pub type TCPSocket
/// UDPSocket type
///
pub type UDPSocket
/// `wx.createTCPSocket`
/// Create a TCP Socket instance
///
@external(javascript, "../wechat_network_ffi.mjs", "createTCPSocket")
pub fn create_tcp_socket(options o: JsObject) -> TCPSocket
/// TCPSocket.bindWifi
/// Bind TCP Socket to current wifi network
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketBindWifi")
pub fn tcp_socket_bind_wifi(socket: TCPSocket) -> Nil
/// TCPSocket.close
/// Close connection
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketClose")
pub fn tcp_socket_close(socket: TCPSocket) -> Nil
/// TCPSocket.connect
/// Connect to specified address
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketConnect")
pub fn tcp_socket_connect(
socket: TCPSocket,
address a: String,
port p: Int,
) -> Nil
/// TCPSocket.write
/// Write data
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketWrite")
pub fn tcp_socket_write(socket: TCPSocket, data d: JsObject) -> Nil
/// TCPSocket.offBindWifi
/// Remove bind wifi event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOffBindWifi")
pub fn tcp_socket_off_bind_wifi(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.offClose
/// Remove close event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOffClose")
pub fn tcp_socket_off_close(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.offConnect
/// Remove connect event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOffConnect")
pub fn tcp_socket_off_connect(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.offError
/// Remove error event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOffError")
pub fn tcp_socket_off_error(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.offMessage
/// Remove message event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOffMessage")
pub fn tcp_socket_off_message(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.onBindWifi
/// Listen for bind wifi event
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOnBindWifi")
pub fn tcp_socket_on_bind_wifi(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.onClose
/// Listen for close event
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOnClose")
pub fn tcp_socket_on_close(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.onConnect
/// Listen for connect event
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOnConnect")
pub fn tcp_socket_on_connect(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.onError
/// Listen for error event
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOnError")
pub fn tcp_socket_on_error(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// TCPSocket.onMessage
/// Listen for message event
///
@external(javascript, "../wechat_network_ffi.mjs", "tcpSocketOnMessage")
pub fn tcp_socket_on_message(
socket: TCPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// `wx.createUDPSocket`
/// Create a UDP Socket instance
///
@external(javascript, "../wechat_network_ffi.mjs", "createUDPSocket")
pub fn create_udp_socket(options o: JsObject) -> UDPSocket
/// UDPSocket.bind
/// Bind to a random port or specified port
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketBind")
pub fn udp_socket_bind(socket: UDPSocket, port p: Int) -> Nil
/// UDPSocket.close
/// Close UDP Socket
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketClose")
pub fn udp_socket_close(socket: UDPSocket) -> Nil
/// UDPSocket.connect
/// Pre-connect to specified IP and port
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketConnect")
pub fn udp_socket_connect(
socket: UDPSocket,
address a: String,
port p: Int,
) -> Nil
/// UDPSocket.send
/// Send message to specified IP and port
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketSend")
pub fn udp_socket_send(
socket: UDPSocket,
address a: String,
port p: Int,
message m: JsObject,
) -> Nil
/// UDPSocket.setTTL
/// Set IP_TTL socket option
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketSetTTL")
pub fn udp_socket_set_ttl(socket: UDPSocket, ttl t: Int) -> Nil
/// UDPSocket.write
/// Write data
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketWrite")
pub fn udp_socket_write(socket: UDPSocket, data d: JsObject) -> Nil
/// UDPSocket.offClose
/// Remove close event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOffClose")
pub fn udp_socket_off_close(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// UDPSocket.offError
/// Remove error event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOffError")
pub fn udp_socket_off_error(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// UDPSocket.offListening
/// Remove listening event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOffListened")
pub fn udp_socket_off_listened(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// UDPSocket.offMessage
/// Remove message event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOffMessage")
pub fn udp_socket_off_message(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// UDPSocket.onClose
/// Listen for close event
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOnClose")
pub fn udp_socket_on_close(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// UDPSocket.onError
/// Listen for error event
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOnError")
pub fn udp_socket_on_error(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// UDPSocket.onListening
/// Listen for listening event
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOnListening")
pub fn udp_socket_on_listening(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// UDPSocket.onMessage
/// Listen for message event
///
@external(javascript, "../wechat_network_ffi.mjs", "udpSocketOnMessage")
pub fn udp_socket_on_message(
socket: UDPSocket,
callback cb: WechatResultCallback,
) -> Nil
/// mDNS Service Discovery
///
/// `wx.startLocalServiceDiscovery`
/// Start searching for mDNS services
///
@external(javascript, "../wechat_network_ffi.mjs", "startLocalServiceDiscovery")
pub fn start_local_service_discovery(options o: JsObject) -> Nil
/// `wx.stopLocalServiceDiscovery`
/// Stop searching for mDNS services
///
@external(javascript, "../wechat_network_ffi.mjs", "stopLocalServiceDiscovery")
pub fn stop_local_service_discovery() -> Nil
/// `wx.onLocalServiceResolveFail`
/// Listen for mDNS service resolve fail event
///
@external(javascript, "../wechat_network_ffi.mjs", "onLocalServiceResolveFail")
pub fn on_local_service_resolve_fail(callback cb: WechatResultCallback) -> Nil
/// `wx.onLocalServiceLost`
/// Listen for mDNS service lost event
///
@external(javascript, "../wechat_network_ffi.mjs", "onLocalServiceLost")
pub fn on_local_service_lost(callback cb: WechatResultCallback) -> Nil
/// `wx.onLocalServiceFound`
/// Listen for mDNS service found event
///
@external(javascript, "../wechat_network_ffi.mjs", "onLocalServiceFound")
pub fn on_local_service_found(callback cb: WechatResultCallback) -> Nil
/// `wx.onLocalServiceDiscoveryStop`
/// Listen for mDNS service discovery stop event
///
@external(javascript, "../wechat_network_ffi.mjs", "onLocalServiceDiscoveryStop")
pub fn on_local_service_discovery_stop(callback cb: WechatResultCallback) -> Nil
/// `wx.offLocalServiceResolveFail`
/// Remove mDNS service resolve fail event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offLocalServiceResolveFail")
pub fn off_local_service_resolve_fail(callback cb: WechatResultCallback) -> Nil
/// `wx.offLocalServiceLost`
/// Remove mDNS service lost event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offLocalServiceLost")
pub fn off_local_service_lost(callback cb: WechatResultCallback) -> Nil
/// `wx.offLocalServiceFound`
/// Remove mDNS service found event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offLocalServiceFound")
pub fn off_local_service_found(callback cb: WechatResultCallback) -> Nil
/// `wx.offLocalServiceDiscoveryStop`
/// Remove mDNS service discovery stop event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offLocalServiceDiscoveryStop")
pub fn off_local_service_discovery_stop(callback cb: WechatResultCallback) -> Nil
/// VoIP Real-time Voice
///
/// `wx.updateVoIPChatMuteConfig`
/// Update VoIP mute configuration
///
@external(javascript, "../wechat_network_ffi.mjs", "updateVoIPChatMuteConfig")
pub fn update_voip_chat_mute_config(config c: JsObject) -> Nil
/// `wx.subscribeVoIPVideoMembers`
/// Subscribe to VoIP video members
///
@external(javascript, "../wechat_network_ffi.mjs", "subscribeVoIPVideoMembers")
pub fn subscribe_voip_video_members(config c: JsObject) -> Nil
/// `wx.setEnable1v1Chat`
/// Enable 1v1 chat
///
@external(javascript, "../wechat_network_ffi.mjs", "setEnable1v1Chat")
pub fn set_enable_1v1_chat(config c: JsObject) -> Nil
/// `wx.onVoIPVideoMembersChanged`
/// Listen for VoIP video members changed event
///
@external(javascript, "../wechat_network_ffi.mjs", "onVoIPVideoMembersChanged")
pub fn on_voip_video_members_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.onVoIPChatStateChanged`
/// Listen for VoIP chat state changed event
///
@external(javascript, "../wechat_network_ffi.mjs", "onVoIPChatStateChanged")
pub fn on_voip_chat_state_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.onVoIPChatSpeakersChanged`
/// Listen for VoIP chat speakers changed event
///
@external(javascript, "../wechat_network_ffi.mjs", "onVoIPChatSpeakersChanged")
pub fn on_voip_chat_speakers_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.onVoIPChatMembersChanged`
/// Listen for VoIP chat members changed event
///
@external(javascript, "../wechat_network_ffi.mjs", "onVoIPChatMembersChanged")
pub fn on_voip_chat_members_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.onVoIPChatInterrupted`
/// Listen for VoIP chat interrupted event
///
@external(javascript, "../wechat_network_ffi.mjs", "onVoIPChatInterrupted")
pub fn on_voip_chat_interrupted(callback cb: WechatResultCallback) -> Nil
/// `wx.offVoIPVideoMembersChanged`
/// Remove VoIP video members changed event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offVoIPVideoMembersChanged")
pub fn off_voip_video_members_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.offVoIPChatStateChanged`
/// Remove VoIP chat state changed event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offVoIPChatStateChanged")
pub fn off_voip_chat_state_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.offVoIPChatSpeakersChanged`
/// Remove VoIP chat speakers changed event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offVoIPChatSpeakersChanged")
pub fn off_voip_chat_speakers_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.offVoIPChatMembersChanged`
/// Remove VoIP chat members changed event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offVoIPChatMembersChanged")
pub fn off_voip_chat_members_changed(callback cb: WechatResultCallback) -> Nil
/// `wx.offVoIPChatInterrupted`
/// Remove VoIP chat interrupted event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offVoIPChatInterrupted")
pub fn off_voip_chat_interrupted(callback cb: WechatResultCallback) -> Nil
/// `wx.joinVoIPChat`
/// Join VoIP chat room
///
@external(javascript, "../wechat_network_ffi.mjs", "joinVoIPChat")
pub fn join_voip_chat(
config c: JsObject,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.join1v1Chat`
/// Join 1v1 VoIP chat
///
@external(javascript, "../wechat_network_ffi.mjs", "join1v1Chat")
pub fn join_1v1_chat(
config c: JsObject,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.exitVoIPChat`
/// Exit VoIP chat
///
@external(javascript, "../wechat_network_ffi.mjs", "exitVoIPChat")
pub fn exit_voip_chat(
config c: JsObject,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// Advanced Network
///
/// `wx.getNetworkType`
/// Get network type
///
@external(javascript, "../wechat_network_ffi.mjs", "getNetworkType")
pub fn get_network_type(complete cb: WechatCallback) -> Promise(WechatResult)
/// `wx.getLocalIPAddress`
/// Get local IP address
///
@external(javascript, "../wechat_network_ffi.mjs", "getLocalIPAddress")
pub fn get_local_ip_address(
options o: JsObject,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.onNetworkWeakChange`
/// Listen for network weak change event
///
@external(javascript, "../wechat_network_ffi.mjs", "onNetworkWeakChange")
pub fn on_network_weak_change(callback cb: WechatResultCallback) -> Nil
/// `wx.offNetworkWeakChange`
/// Remove network weak change event listener
///
@external(javascript, "../wechat_network_ffi.mjs", "offNetworkWeakChange")
pub fn off_network_weak_change(callback cb: WechatResultCallback) -> Nil