UNPKG

typescript-libraries

Version:
166 lines (165 loc) 4.17 kB
declare class BaseProvider { /** Accept keys as array e.g: {blogId:"2",action:"view"} and convert it to unique string */ generateKey(object: any): string; /** Check if cache id already exist in saved context */ alreadyExist(storedContext: any, cacheKey: any): boolean; generateContextKey(key: any, value: any): string; /** * Get current time (compared to Epoch time) in seconds */ getCurrentTime(): number; /** * Return default values */ getDefault(): { prefix: string; ttl: number; }; /** * Return subscribers * * @returns {{cacheAdded: Array, cacheRemoved: Array}} */ getEventSubscribers(): { cacheAdded: any[]; cacheRemoved: any[]; }; /** * Dispatch event to subscribers * * @param event Event name * @param object Object will be sent to subscriber */ dispatchEvent(event: any, object: any): void; /** * Check if x is a function * * @param x * @returns {boolean} */ isFunction(x: any): boolean; } export declare class TSStorage { extra: any; support: string; constructor(type?: string, extra?: any); toggle(key: any, value?: any): any; storageAvailable(type: any): any; private createCookie; private readCookie; private serialize; private deserialize; private byteCount; } declare class StorageProvider extends BaseProvider { storage: TSStorage; constructor(type?: string, extra?: any); get(key: any): any; set(key: any, value: any, ttl?: any, contexts?: any): void; removeByKey(key: any): void; removeByContext(context: any): void; } declare class ArrayProvider extends BaseProvider { cacheArray: {}; cacheContexts: {}; constructor(); get(key: any): any; set(key: any, value: any, ttl?: any, contexts?: any): void; removeByKey(key: any): void; removeByContext(context: any): void; } declare class ProviderManager { DEFAULT: string; storageProvider: StorageProvider; arrayProvider: ArrayProvider; constructor(type?: string, extra?: any); use(provider: string): void; getProvider(name?: string): StorageProvider | ArrayProvider; } /** * Class TSCache - Core to work with cache */ export declare class TSCache { /** * Default values served as model */ static model: { DEFAULT: { prefix: string; ttl: number; }; eventSubscribers: { cacheAdded: any[]; cacheRemoved: any[]; }; }; providerManager: ProviderManager; constructor(type?: string, extra?: any); /** * Switch provider. available providers are: 'storage','array' * * @param provider */ use(provider: string): any; /** * Get cache by array key * * @param key - Array key * @returns {string} * @example * TSCache.get({blogId:"2",action:"view"}); */ get(key: any): any; /** * Save render for key * * @param key - Array key * @param value - value must be a string * @param ttl - Time to live in seconds * @param contexts - Contexts * @returns {TSCache} */ set(key: any, value: any, ttl?: number, contexts?: any): any; /** * Set prefix for cache key (default: _cache) * * @param prefix * @returns {TSCache} */ setPrefix(prefix: string): any; /** * Get prefix for cache key * * @returns {string} */ getPrefix(): string; /** * Remove by key from the cache * * @param key * @returns {TSCache} */ removeByKey(key: any): any; /** * Remove by context from the cache * * @param context * @returns {TSCache} */ removeByContext(context: any): any; /** * Subscribe to an event * * @param event * @param callback */ on(event: string, callback: Function): void; /** * Unsubscribe to an event * * @param event * @param callback */ unsubscribe(event: string, callback: Function): void; } export {};