forked from dachan/dach
1
0
Fork 0
dach/node_modules/memorystore/index.d.ts

82 lines
2.7 KiB
TypeScript
Raw Normal View History

import expressSession, {
MemoryStore as ExpressMemoryStore,
} from "express-session";
interface MemoryStoreOptions {
/**
* Define how long MemoryStore will check for expired.
* The period is in ms. The automatic check is disabled by default!
* Not setting this is kind of silly, since that's the whole purpose of
* this lib.
*/
checkPeriod?: number;
/**
* The maximum size of the cache, checked by applying the length
* function to all values in the cache. It defaults to `Infinity`.
*/
max?: number;
/**
* Session TTL (expiration) in milliseconds.
* Defaults to `session.maxAge` (if set), or one day.
*/
ttl?: number | ((options: any, sess: any, sessionId: any) => number);
/**
* Function that is called on sessions when they are dropped from the
* cache. This can be handy if you want to close file descriptors or do
* other cleanup tasks when sessions are no longer accessible. It's
* called before actually removing the item from the internal cache, so
* if you want to immediately put it back in, you'll have to do that in
* a `nextTick` or `setTimeout` callback or it won't do anything.
*/
dispose?: (key: any, value: any) => void;
/**
* By default, if you set a `maxAge`, it'll only actually pull stale
* items out of the cache when you `get(key)`. (That is, it's not
* pre-emptively doing a setTimeout or anything.) If you set
* `stale:true`, it'll return the stale value before deleting it. If
* you don't set this, then it'll return undefined when you try to get
* a stale entry, as if it had already been deleted.
*/
stale?: boolean;
/**
* By default, if you set a `dispose()` method, then it'll be called
* whenever a `set()` operation overwrites an existing key. If you set
* this option, `dispose()` will only be called when a key falls out of
* the cache, not when it is overwritten.
*/
noDisposeOnSet?: boolean;
/**
* An object compatible with Javascript's JSON to override the
* serializer used.
*/
serializer?: {
stringify: (arg: object) => string;
parse: (str: string) => object;
};
}
declare class MemoryStore extends ExpressMemoryStore {
constructor(options: MemoryStoreOptions);
/** method to start the automatic check for expired. */
startInterval(): void;
/** method to clear the automatic check for expired. */
stopInterval(): void;
/** use to manually remove only the expired entries from the store. */
prune(): void;
}
/**
* Sample usage:
* ```
* import session from 'express-session';
* import createMemoryStore from 'memorystore';
* const MemoryStore = createMemoryStore(session);
* ...
* app.use(session({ store: new MemoryStore({ ...options }) }));
* ```
*/
declare function createMemoryStore(
session: typeof expressSession
): typeof MemoryStore;
export = createMemoryStore;