You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					95 lines
				
				3.8 KiB
			
		
		
			
		
	
	
					95 lines
				
				3.8 KiB
			| 
											3 years ago
										 | import { Db, MongoClient } from 'mongodb'; | ||
|  | import { CacheIndex, CacheValue } from './types'; | ||
|  | /** | ||
|  |  * Plugin cached connection handling class. | ||
|  |  * @version 3.1.0 | ||
|  |  */ | ||
|  | export declare class Cache { | ||
|  |     private store; | ||
|  |     private readonly emitter; | ||
|  |     constructor(); | ||
|  |     /** | ||
|  |      * Handles creating a new connection from an url and caching if necessary | ||
|  |      * @param {object} options - Options to initialize the cache | ||
|  |      * @param {string} options.url - The url to cache | ||
|  |      * @param {string} options.cacheName - The name of the cache to use | ||
|  |      * @param {any} options.init - The connection options provided | ||
|  |      **/ | ||
|  |     initialize(options: any): CacheIndex; | ||
|  |     /** | ||
|  |      * Search the cache for a space stored under an equivalent url. | ||
|  |      * | ||
|  |      * Just swapping parameters can cause two url to be deemed different when in fact they are not. | ||
|  |      * This method finds an url in the cache where another url could be stored even when they are not strictly equal | ||
|  |      * @param cacheName The name of the cache to search | ||
|  |      * @param url The mongodb url to compare | ||
|  |      * @return The similar url already in the cache | ||
|  |      */ | ||
|  |     findUri(cacheName: string, url: string): string; | ||
|  |     /** | ||
|  |      * Returns true if the cache has an entry matching the given index | ||
|  |      * @param cacheIndex The index to look for | ||
|  |      * @return Returns if the cache was found | ||
|  |      */ | ||
|  |     has(cacheIndex: CacheIndex): boolean; | ||
|  |     /** | ||
|  |      * Returns the contents of the cache in a given index | ||
|  |      * @param cacheIndex {object} The index to look for | ||
|  |      * @return {object} The cache contents or null if was not found | ||
|  |      */ | ||
|  |     get(cacheIndex: CacheIndex): CacheValue; | ||
|  |     /** | ||
|  |      * Sets the contents of the cache in a given index | ||
|  |      * @param cacheIndex The index to look for | ||
|  |      * @param value The value to set | ||
|  |      */ | ||
|  |     set(cacheIndex: CacheIndex, value: CacheValue): void; | ||
|  |     /** | ||
|  |      * Returns true if a given cache is resolving its associated connection | ||
|  |      * @param cacheIndex {object} The index to look for | ||
|  |      * @return Return true if the connection is not found yet | ||
|  |      */ | ||
|  |     isPending(cacheIndex: CacheIndex): boolean; | ||
|  |     /** | ||
|  |      * Return true if a given cache started resolving a connection for itself | ||
|  |      * @param cacheIndex {object} The index to look for | ||
|  |      * @return Return true if no instances have started creating a connection for this cache | ||
|  |      */ | ||
|  |     isOpening(cacheIndex: CacheIndex): boolean; | ||
|  |     /** | ||
|  |      * Sets the database and client for a given cache and resolves all instances waiting for it | ||
|  |      * @param cacheIndex {object} The index to look for | ||
|  |      * @param db  The database used to store files | ||
|  |      * @param [client] The client used to open the connection or null if none is provided | ||
|  |      */ | ||
|  |     resolve(cacheIndex: CacheIndex, db: Db, client?: MongoClient): void; | ||
|  |     /** | ||
|  |      * Rejects all instances waiting for this connections | ||
|  |      * @param cacheIndex The index to look for | ||
|  |      * @param err The error thrown by the driver | ||
|  |      */ | ||
|  |     reject(cacheIndex: CacheIndex, error: any): void; | ||
|  |     /** | ||
|  |      * Allows waiting for a connection associated to a given cache | ||
|  |      * @param cacheIndex The index to look for | ||
|  |      * @return A promise that will resolve when the connection for this cache is created | ||
|  |      */ | ||
|  |     waitFor(cacheIndex: CacheIndex): Promise<CacheValue>; | ||
|  |     /** | ||
|  |      * Gives the number of connections created by all cache instances | ||
|  |      * @return {number} The number of created connections | ||
|  |      */ | ||
|  |     connections(): number; | ||
|  |     /** | ||
|  |      * Removes a cache entry. | ||
|  |      * | ||
|  |      * > If the cache hasn't resolved yet it will be rejected. | ||
|  |      * @param cacheIndex The index to look for | ||
|  |      */ | ||
|  |     remove(cacheIndex: CacheIndex): void; | ||
|  |     /** | ||
|  |      * Removes all entries in the cache and all listeners | ||
|  |      */ | ||
|  |     clear(): void; | ||
|  | } |