@huolala-tech/page-spy-lynx
Version:
An SDK of PageSpy for debugging Lynx app
72 lines (71 loc) • 2.49 kB
TypeScript
import type { PageSpyPlugin, OnInitParams } from '@huolala-tech/page-spy-types';
/**
* 获取存储项
* 优先级:原生存储 > Web 存储 > 内存存储
* @param key - 存储项的键名
* @returns 存储值,不存在时返回 null
*/
export declare const getStorageItem: (key: string) => Promise<string | null>;
/**
* 设置存储项
* 优先级:原生存储 > Web 存储 > 内存存储
* @param key - 存储项的键名
* @param value - 存储项的值
*/
export declare const setStorageItem: (key: string, value: string) => void;
/**
* 清空所有存储项
* 同时清空持久化存储和内存存储
*/
export declare const clearStorage: () => void;
/**
* 删除指定存储项
* 若原生/Web 存储不支持 removeItem,则通过设置为空字符串来模拟删除
* @param key - 存储项的键名
*/
export declare const removeStorageItem: (key: string) => void;
/** 存储操作集合,对外暴露的统一接口 */
export declare const storage: {
getStorageItem: (key: string) => Promise<string | null>;
setStorageItem: (key: string, value: string) => void;
removeStorageItem: (key: string) => void;
clearStorage: () => void;
};
/**
* Storage 插件
* 实现 PageSpyPlugin 接口,通过 WebSocket 监听远程存储操作指令,
* 并在本地执行对应的存储增删改查操作
*/
export default class StoragePlugin implements PageSpyPlugin {
/** 插件名称 */
name: string;
/** 标记插件是否已初始化,防止重复初始化 */
static hasInitd: boolean;
/** 存储操作集合 */
storage: {
getStorageItem: (key: string) => Promise<string | null>;
setStorageItem: (key: string, value: string) => void;
removeStorageItem: (key: string) => void;
clearStorage: () => void;
};
/** WebSocket 连接存储实例,用于监听和响应远程指令 */
private socketStore;
/**
* 处理远程存储操作事件
* 支持 set、remove、clear、get 四种操作
* @param event - 远程交互事件
* @param reply - 回复函数,用于将操作结果返回给远程端
*/
private onStorage;
/**
* 插件初始化
* 注册 WebSocket 监听器,监听远程存储操作指令
* @param socketStore - WebSocket 连接存储实例
*/
onInit({ socketStore }: OnInitParams<any>): void;
/**
* 插件重置
* 移除 WebSocket 监听器,清理状态
*/
onReset(): void;
}