UNPKG

@yiero/gmlib

Version:

GM Lib for Tampermonkey/ScriptCat

67 lines (66 loc) 1.57 kB
/** * 存储变更详情接口 */ export interface IGMStorageChangeDetail<T> { /** 变更的键名 */ key: string; /** 变更前的值 */ oldValue: T | undefined; /** 变更后的值 */ newValue: T | undefined; /** 是否来自其他标签页的变更 */ remote: boolean; } /** * 油猴存储管理类 * * 封装 GM_getValue / GM_setValue API,提供类型安全的值存取、 * 变更监听和默认值支持。 * * @warn 需要授权函数 `GM_getValue`、`GM_setValue`、`GM_deleteValue`、 * `GM_addValueChangeListener`、`GM_removeValueChangeListener` * * @example * ```ts * // 创建计数器存储 * const counterStorage = new GmStorage('page_counter', 0); * * // 获取值 * console.log(counterStorage.value); * * // 设置值 * counterStorage.set(1); * ``` */ export declare class GmStorage<T> { protected readonly key: string; protected readonly defaultValue: T; protected listenerId: number | null; constructor(key: string, defaultValue: T); /** * 获取当前存储的值 * * @alias get() */ get value(): T; /** * 获取当前存储的值 */ get(): T; /** * 给当前存储设置一个新值 */ set(value: T): void; /** * 移除当前键 */ remove(): void; /** * 监听元素更新, 同时只能存在 1 个监听器 */ updateListener(callback: (changeDetail: IGMStorageChangeDetail<T>) => void): void; /** * 移除元素更新回调 */ removeListener(): void; }