synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
36 lines (35 loc) • 1.26 kB
TypeScript
import { BaseStorageConfig, ILogger, StorageType } from '../../storage.interface';
interface SingletonResult<T> {
instance: T;
isNewInstance: boolean;
appliedConfig: BaseStorageConfig;
conflicts?: string[];
}
export declare class SingletonManager {
private static instances;
private static configs;
private static logger?;
static setLogger(logger: ILogger): void;
static getOrCreate<T>(key: string, config: BaseStorageConfig, factory: (finalConfig: BaseStorageConfig) => T): SingletonResult<T>;
static exists(key: string): boolean;
static getConfig(key: string): BaseStorageConfig | undefined;
static remove(key: string): boolean;
static clear(): void;
static getStats(): {
instanceCount: number;
instances: string[];
};
private static mergeConfigurations;
private static strictMerge;
private static firstWinsMerge;
private static deepMerge;
private static overrideMerge;
private static warnAndUseFirst;
private static findConflicts;
private static findObjectConflicts;
private static deepMergeObjects;
}
export declare class SingletonKeyGenerator {
static generate(config: BaseStorageConfig, storageType: StorageType): string;
}
export {};