UNPKG

@ever_cheng/memory-task-mcp

Version:

Memory and task management MCP Server

66 lines (65 loc) 1.99 kB
/** * 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;