typescript-libraries
Version:
To install this library, run:
166 lines (165 loc) • 4.17 kB
TypeScript
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 {};