mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-12 13:00:19 +00:00
Merge pull request #6301 from GauSim/master
adding typings for node-cache-manager lib
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
/// <reference path="cache-manager.d.ts" />
|
||||
|
||||
import * as cacheManager from 'cache-manager'
|
||||
|
||||
const memoryCache = cacheManager.caching({ store: 'memory', max: 100, ttl: 10/*seconds*/ });
|
||||
const ttl = 5;
|
||||
|
||||
memoryCache.set('foo', 'bar', { ttl: ttl }, (err) => {
|
||||
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
|
||||
memoryCache.get('foo', (err, result) => {
|
||||
|
||||
// console.log(result);
|
||||
|
||||
memoryCache.del('foo', (err) => {
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
function getUser(id: number, cb: Function) {
|
||||
|
||||
cb(null, { id: id, name: 'Bob' });
|
||||
}
|
||||
|
||||
const userId = 123;
|
||||
const key = 'user_' + userId;
|
||||
|
||||
// Note: ttl is optional in wrap()
|
||||
memoryCache.wrap<{ id: number, name: string }>(key, (cb) => {
|
||||
|
||||
getUser(userId, cb);
|
||||
|
||||
}, { ttl: ttl }, (err, user) => {
|
||||
|
||||
//console.log(user);
|
||||
|
||||
// Second time fetches user from memoryCache
|
||||
memoryCache.wrap<{ id: number, name: string }>(key, (cb) => {
|
||||
|
||||
getUser(userId, cb);
|
||||
|
||||
}, (err, user) => {
|
||||
|
||||
//console.log(user);
|
||||
|
||||
});
|
||||
});
|
||||
Vendored
+36
@@ -0,0 +1,36 @@
|
||||
// Type definitions for cache-manager v1.2.0
|
||||
// Project: https://github.com/BryanDonovan/node-cache-manager
|
||||
// Definitions by: Simon Gausmann <https://github.com/GausSim/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
declare module 'cache-manager' {
|
||||
|
||||
|
||||
interface CachingConfig {
|
||||
ttl: number;
|
||||
}
|
||||
interface StoreConfig extends CachingConfig {
|
||||
store: string;
|
||||
max?: number;
|
||||
isCacheableValue?: (value: any) => boolean;
|
||||
}
|
||||
interface Cache {
|
||||
set<T>(key: string, value: T, options: CachingConfig, callback?: (error: any) => void): void;
|
||||
set<T>(key: string, value: T, ttl: number, callback?: (error: any) => void): void;
|
||||
|
||||
wrap<T>(key: string, wrapper: (callback: (error: any, result: T) => void) => void, options: CachingConfig, callback: (error: any, result: T) => void): void;
|
||||
wrap<T>(key: string, wrapper: (callback: (error: any, result: T) => void) => void, callback: (error: any, result: T) => void): void;
|
||||
|
||||
get<T>(key: string, callback: (error: any, result: T) => void): void;
|
||||
|
||||
del(key: string, callback?: (error: any) => void): void;
|
||||
}
|
||||
|
||||
|
||||
|
||||
module cacheManager {
|
||||
function caching(ICongig: StoreConfig): Cache;
|
||||
function multiCaching(Caches: Cache[]): Cache;
|
||||
}
|
||||
|
||||
export = cacheManager;
|
||||
}
|
||||
Reference in New Issue
Block a user