UNPKG

@ticatec/redis-client

Version:

A lightweight TypeScript wrapper around ioredis with singleton pattern support, mock Redis for testing, and abstract caching framework.

51 lines 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * 缓存数据管理器 * 使用单例模式管理不同类型的缓存数据实例 * 提供统一的注册和获取接口 * @class CachedDataManager * @since 0.1.3 */ class CachedDataManager { /** * 获取CachedDataManager单例实例 * @static * @returns {CachedDataManager} CachedDataManager实例 */ static getInstance() { if (CachedDataManager.instance == null) { CachedDataManager.instance = new CachedDataManager(); } return CachedDataManager.instance; } /** * 私有构造函数,确保单例模式 * @private */ constructor() { this.map = new Map(); } /** * 注册缓存数据实例 * 将缓存数据类的构造函数和对应的实例进行关联注册 * @param {CachedDataConstructor} ctor - 缓存数据类的构造函数 * @param {AbstractCachedData<any>} instance - 缓存数据实例 * @returns {void} */ register(ctor, instance) { this.map.set(ctor, instance); } /** * 获取指定类型的缓存数据实例 * 根据构造函数获取对应的缓存实例,支持类型推断 * @template T - 缓存数据类型,必须继承AbstractCachedData * @param {CachedDataConstructor} ctor - 缓存数据类的构造函数 * @returns {T | undefined} 缓存数据实例,不存在时返回undefined */ get(ctor) { return this.map.get(ctor); } } exports.default = CachedDataManager; //# sourceMappingURL=CachedDataManager.js.map