@ever_cheng/memory-task-mcp
Version:
Memory and task management MCP Server
66 lines (65 loc) • 1.99 kB
TypeScript
/**
* Resource Management for MemTask
*
* Provides a clean way to manage disposable resources and ensure proper cleanup.
* Implements the Disposable pattern for consistent resource lifecycle management.
*/
/**
* Disposable interface for resources that need cleanup
*/
export interface Disposable {
/**
* Dispose of the resource and clean up any associated state
*/
dispose(): Promise<void>;
}
/**
* Resource manager for tracking and disposing of resources
*/
export declare class ResourceManager implements Disposable {
private resources;
private disposed;
/**
* Register a disposable resource for automatic cleanup
* @param resource The resource to register
* @returns The same resource for method chaining
*/
register<T extends Disposable>(resource: T): T;
/**
* Unregister a resource (useful if resource is manually disposed)
* @param resource The resource to unregister
*/
unregister<T extends Disposable>(resource: T): void;
/**
* Dispose all registered resources
*/
disposeAll(): Promise<void>;
/**
* Alias for disposeAll() to implement Disposable interface
*/
dispose(): Promise<void>;
/**
* Get the number of registered resources
*/
get resourceCount(): number;
/**
* Check if the resource manager has been disposed
*/
get isDisposed(): boolean;
}
/**
* Global resource manager instance for convenience
*/
export declare const globalResourceManager: ResourceManager;
/**
* Decorator for automatic resource registration
*/
export declare function disposable<T extends Disposable>(resource: T): T;
/**
* Utility function to safely dispose a resource
*/
export declare function safeDispose(resource: Disposable | null | undefined): Promise<void>;
/**
* Utility function to create a disposable wrapper for cleanup functions
*/
export declare function createDisposable(cleanupFn: () => Promise<void> | void): Disposable;