Current section
Files
Jump to
Current section
Files
src/wechat/storage.gleam
//// storage module provides storage API bindings
//// details in [wechat document](https://developers.weixin.qq.com/miniprogram/dev/api/storage/)
////
import gleam/javascript/promise.{type Promise}
import wechat/object.{type JsObject, type WechatCallback, type WechatResult}
/// `wx.createBufferURL`
/// Create buffer URL from ArrayBuffer
///
@external(javascript, "../wechat_base_ffi.mjs", "createBufferURL")
pub fn create_buffer_url(buffer b: JsObject) -> String
/// `wx.revokeBufferURL`
/// Revoke buffer URL
///
@external(javascript, "../wechat_base_ffi.mjs", "revokeBufferURL")
pub fn revoke_buffer_url(url u: String) -> Nil
/// `wx.batchSetStorage`
/// Batch set storage items
///
@external(javascript, "../wechat_base_ffi.mjs", "batchSetStorage")
pub fn batch_set_storage(
items i: JsObject,
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.batchSetStorageSync`
/// Batch set storage items (sync)
///
@external(javascript, "../wechat_base_ffi.mjs", "batchSetStorageSync")
pub fn batch_set_storage_sync(items i: JsObject) -> Nil
/// `wx.batchGetStorage`
/// Batch get storage items
///
@external(javascript, "../wechat_base_ffi.mjs", "batchGetStorage")
pub fn batch_get_storage(
keys k: List(String),
complete cb: WechatCallback,
) -> Promise(WechatResult)
/// `wx.batchGetStorageSync`
/// Batch get storage items (sync)
///
@external(javascript, "../wechat_base_ffi.mjs", "batchGetStorageSync")
pub fn batch_get_storage_sync(keys k: List(String)) -> JsObject
/// Phase 10: Storage Sync Methods
///
/// `wx.setStorageSync`
/// Synchronously set data in local storage
///
@external(javascript, "../wechat_base_ffi.mjs", "setStorageSync")
pub fn set_storage_sync(key k: String, data d: JsObject) -> Nil
/// `wx.getStorageSync`
/// Synchronously get data from local storage
///
@external(javascript, "../wechat_base_ffi.mjs", "getStorageSync")
pub fn get_storage_sync(key k: String) -> JsObject
/// `wx.removeStorageSync`
/// Synchronously remove data from local storage
///
@external(javascript, "../wechat_base_ffi.mjs", "removeStorageSync")
pub fn remove_storage_sync(key k: String) -> Nil
/// `wx.clearStorageSync`
/// Synchronously clear all local storage
///
@external(javascript, "../wechat_base_ffi.mjs", "clearStorageSync")
pub fn clear_storage_sync() -> Nil
/// Storage Advanced - CacheManager
///
/// CacheManager type
///
pub type CacheManager
/// `wx.createCacheManager`
/// Create a cache manager instance
///
@external(javascript, "../wechat_cache_ffi.mjs", "createCacheManager")
pub fn create_cache_manager(options o: JsObject) -> CacheManager
/// `CacheManager.addRule`
/// Add a cache rule
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerAddRule")
pub fn cache_manager_add_rule(cm: CacheManager, rule r: JsObject) -> Nil
/// `CacheManager.addRules`
/// Add multiple cache rules
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerAddRules")
pub fn cache_manager_add_rules(cm: CacheManager, rules r: List(JsObject)) -> Nil
/// `CacheManager.clearCaches`
/// Clear all caches
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerClearCaches")
pub fn cache_manager_clear_caches(cm: CacheManager) -> Nil
/// `CacheManager.clearRules`
/// Clear all rules
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerClearRules")
pub fn cache_manager_clear_rules(cm: CacheManager) -> Nil
/// `CacheManager.deleteCache`
/// Delete specific cache
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerDeleteCache")
pub fn cache_manager_delete_cache(cm: CacheManager, url u: String) -> Nil
/// `CacheManager.deleteCaches`
/// Delete multiple caches
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerDeleteCaches")
pub fn cache_manager_delete_caches(
cm: CacheManager,
urls u: List(String),
) -> Nil
/// `CacheManager.deleteRule`
/// Delete specific rule
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerDeleteRule")
pub fn cache_manager_delete_rule(cm: CacheManager, id i: String) -> Nil
/// `CacheManager.deleteRules`
/// Delete multiple rules
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerDeleteRules")
pub fn cache_manager_delete_rules(cm: CacheManager, ids i: List(String)) -> Nil
/// `CacheManager.match`
/// Match URL against rules
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerMatch")
pub fn cache_manager_match(cm: CacheManager, url u: String) -> JsObject
/// `CacheManager.off`
/// Remove event listener
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerOff")
pub fn cache_manager_off(
cm: CacheManager,
event_name en: String,
handler h: fn(JsObject) -> Nil,
) -> Nil
/// `CacheManager.on`
/// Add event listener
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerOn")
pub fn cache_manager_on(
cm: CacheManager,
event_name en: String,
handler h: fn(JsObject) -> Nil,
) -> Nil
/// `CacheManager.start`
/// Start cache manager
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerStart")
pub fn cache_manager_start(cm: CacheManager) -> Nil
/// `CacheManager.stop`
/// Stop cache manager
///
@external(javascript, "../wechat_cache_ffi.mjs", "cacheManagerStop")
pub fn cache_manager_stop(cm: CacheManager) -> Nil