123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- declare namespace mem {
- interface CacheStorage<KeyType extends unknown, ValueType extends unknown> {
- has(key: KeyType): boolean;
- get(key: KeyType): ValueType | undefined;
- set(key: KeyType, value: ValueType): void;
- delete(key: KeyType): void;
- clear?: () => void;
- }
- interface Options<
- ArgumentsType extends unknown[],
- CacheKeyType extends unknown,
- ReturnType extends unknown
- > {
-
- readonly maxAge?: number;
-
- readonly cacheKey?: (...arguments: ArgumentsType) => CacheKeyType;
-
- readonly cache?: CacheStorage<CacheKeyType, {data: ReturnType; maxAge: number}>;
-
- readonly cachePromiseRejection?: boolean;
- }
- }
- declare const mem: {
-
- <
- ArgumentsType extends unknown[],
- ReturnType extends unknown,
- CacheKeyType extends unknown
- >(
- fn: (...arguments: ArgumentsType) => ReturnType,
- options?: mem.Options<ArgumentsType, CacheKeyType, ReturnType>
- ): (...arguments: ArgumentsType) => ReturnType;
-
- clear<ArgumentsType extends unknown[], ReturnType extends unknown>(
- fn: (...arguments: ArgumentsType) => ReturnType
- ): void;
-
- default: typeof mem;
- };
- export = mem;
|