typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
163 lines (141 loc) • 4.38 kB
TypeScript
// Type definitions for jStorage 0.3.0
// Project: http://www.jstorage.info/
// Definitions by: Danil Flores <https://github.com/dflor003/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
interface JStorageOptions {
TTL: number;
}
interface JStorageReadonlyStore {
[key: string]: any;
}
interface JStorageStatic {
/**
* Sets a key's value.
*
* @param key Key to set. If this value is not set or not
* a string an exception is raised.
* @param value Value to set. This can be any value that is JSON
* compatible (Numbers, Strings, Objects etc.).
* @param [options] - possible options to use
* @param [options.TTL] - optional TTL value
* @return the used value
*/
set<TValue>(key: string, value: TValue, options?: JStorageOptions): TValue;
/**
* Looks up a key in cache
*
* @param key - Key to look up.
* @param defaultIfNotFound - Default value to return, if key didn't exist.
* @return the key value, default value or null
*/
get <TValue>(key: string, defaultIfNotFound?: TValue): TValue;
/**
* Deletes a key from cache.
*
* @param key - Key to delete.
* @return true if key existed or false if it didn't
*/
deleteKey(key: string): boolean;
/**
* Sets a TTL for a key, or remove it if ttl value is 0 or below
*
* @param key - key to set the TTL for
* @param ttl - TTL timeout in milliseconds
* @return true if key existed or false if it didn't
*/
setTTL(key: string, ttl: number): boolean;
/**
* Gets remaining TTL (in milliseconds) for a key or 0 when no TTL has been set
*
* @param key Key to check
* @return Remaining TTL in milliseconds
*/
getTTL(key: string): number;
/**
* Deletes everything in cache.
*
* @return Always true
*/
flush(): boolean;
/**
* Returns a read-only copy of _storage
*
* @return Read-only copy of _storage
*/
storageObj(): JStorageReadonlyStore
/**
* Returns an index of all used keys as an array
* ['key1', 'key2',..'keyN']
*
* @return Used keys
*/
index(): string[];
/**
* How much space in bytes does the storage take?
*
* @return Storage size in chars (not the same as in bytes,
* since some chars may take several bytes)
*/
storageSize(): number;
/**
* Which backend is currently in use?
*
* @return Backend name
*/
currentBackend(): Storage;
/**
* Test if storage is available
*
* @return True if storage can be used
*/
storageAvailable(): boolean;
/**
* Register change listeners
*
* @param key Key name
* @param callback Function to run when the key changes
*/
listenKeyChange(key: string, callback: (key: string, value: any) => void ): void;
/**
* Register change listeners
*
* @param key Key name
* @param callback Function to run when the key changes
*/
listenKeyChange<TValue>(key: string, callback: (key: string, value: TValue) => void ): void;
/**
* Remove change listeners
*
* @param key Key name to unregister listeners against
* @param [callback] If set, unregister the callback, if not - unregister all
*/
stopListening(key: string, callback?: Function): void;
/**
* Subscribe to a Publish/Subscribe event stream
*
* @param channel Channel name
* @param callback Function to run when the something is published to the channel
*/
subscribe(channel: string, callback: (channel: string, value: any) => void ): void;
/**
* Subscribe to a Publish/Subscribe event stream
*
* @param channel Channel name
* @param callback Function to run when the something is published to the channel
*/
subscribe<TValue>(channel: string, callback: (channel: string, value: TValue) => void ): void;
/**
* Publish data to an event stream
*
* @param channel Channel name
* @param payload Payload to deliver
*/
publish(channel: string, payload: any): void;
/**
* Reloads the data from browser storage
*/
reInit(): void;
}
interface JQueryStatic {
jStorage: JStorageStatic;
}