UNPKG

@huolala-tech/page-spy-lynx

Version:

An SDK of PageSpy for debugging Lynx app

72 lines (71 loc) 2.49 kB
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; }