@slynova/flydrive
Version:
Flexible and Fluent way to manage storage in Node.js.
49 lines • 1.23 kB
TypeScript
/**
* @slynova/flydrive
*
* @license MIT
* @copyright Slynova - Romain Lanz <romain.lanz@slynova.ch>
*/
import Storage from './Storage';
import { StorageManagerConfig, StorageManagerSingleDiskConfig } from './types';
interface StorageConstructor<T extends Storage = Storage> {
new (...args: any[]): T;
}
export default class StorageManager {
/**
* Default disk.
*/
private defaultDisk;
/**
* Configured disks.
*/
private disksConfig;
/**
* Instantiated disks.
*/
private _disks;
/**
* List of available drivers.
*/
private _drivers;
constructor(config: StorageManagerConfig);
/**
* Get the instantiated disks
*/
getDisks(): Map<string, Storage>;
/**
* Get the registered drivers
*/
getDrivers(): Map<string, StorageConstructor<Storage>>;
/**
* Get a disk instance.
*/
disk<T extends Storage = Storage>(name?: string): T;
addDisk(name: string, config: StorageManagerSingleDiskConfig): void;
/**
* Register a custom driver.
*/
registerDriver<T extends Storage>(name: string, driver: StorageConstructor<T>): void;
}
export {};
//# sourceMappingURL=StorageManager.d.ts.map