UNPKG

analytics-tracker-sdk

Version:

一个功能强大的前端数据埋点 SDK,支持自动埋点、手动埋点、批量上报等特性

103 lines (102 loc) 2.78 kB
import { Storage as StorageInterface } from '../types'; /** * 本地存储实现类 * 提供基于 localStorage 的数据存储功能 */ export declare class Storage implements StorageInterface { /** * 获取存储的值 * @param key - 存储键名 */ get(key: string): any; /** * 设置存储值 * @param key - 存储键名 * @param value - 要存储的值 */ set(key: string, value: any): void; /** * 移除存储的值 * @param key - 要移除的键名 */ remove(key: string): void; /** * 清空所有存储 */ clear(): void; } /** * 本地存储实现类,使用 localStorage 作为存储介质 * 支持数据的持久化存储,并提供前缀隔离机制 */ export declare class LocalStorage implements Storage { private prefix; /** * 创建 LocalStorage 实例 * @param prefix - 存储键的前缀,默认为 'tracker_' */ constructor(prefix?: string); /** * 获取带前缀的完整存储键 * @param key - 原始键名 * @returns 带前缀的完整键名 */ private getKey; /** * 获取存储的值 * @param key - 存储键名 * @returns 存储的值,如果不存在或解析失败则返回 null */ get(key: string): any; /** * 设置存储值 * @param key - 存储键名 * @param value - 要存储的值,会被自动序列化为 JSON 字符串 */ set(key: string, value: any): void; /** * 移除指定键的存储值 * @param key - 要移除的存储键名 */ remove(key: string): void; /** * 清除所有带有指定前缀的存储项 */ clear(): void; } /** * 内存存储实现类,使用 Map 作为存储介质 * 用于在不支持 localStorage 的环境中提供备选方案 */ export declare class MemoryStorage implements Storage { private storage; constructor(); /** * 获取存储的值 * @param key - 存储键名 * @returns 存储的值,如果不存在则返回 undefined */ get(key: string): any; /** * 设置存储值 * @param key - 存储键名 * @param value - 要存储的值 */ set(key: string, value: any): void; /** * 移除指定键的存储值 * @param key - 要移除的存储键名 */ remove(key: string): void; /** * 清除所有存储项 */ clear(): void; } /** * 创建存储实例的工厂函数 * @param type - 存储类型,可选 'local' 或 'memory',默认为 'local' * @param prefix - 存储键的前缀,仅在使用 LocalStorage 时有效 * @returns Storage 实例 */ export declare const createStorage: (type?: "local" | "memory", prefix?: string) => Storage;