Skip to main content
Glama

MemoryMesh

by CheMiguel23
ManagerFactory.ts3.07 kB
// src/core/managers/ManagerFactory.ts import { NodeManager, EdgeManager, MetadataManager, SearchManager, TransactionManager } from '@application/index.js'; import type {IStorage} from '@infrastructure/index.js'; import type { INodeManager, IEdgeManager, IMetadataManager, ISearchManager, ITransactionManager } from '@application/index.js'; /** * Factory class responsible for creating instances of various manager classes * used in the knowledge graph. Ensures consistent initialization and configuration * of all manager instances. */ export class ManagerFactory { private static instances: { nodeManager?: NodeManager; edgeManager?: EdgeManager; metadataManager?: MetadataManager; searchManager?: SearchManager; transactionManager?: TransactionManager; } = {}; /** * Creates or returns an existing instance of NodeManager */ static getNodeManager(storage: IStorage): INodeManager { if (!this.instances.nodeManager) { this.instances.nodeManager = new NodeManager(storage); } return this.instances.nodeManager; } /** * Creates or returns an existing instance of EdgeManager */ static getEdgeManager(storage: IStorage): IEdgeManager { if (!this.instances.edgeManager) { this.instances.edgeManager = new EdgeManager(storage); } return this.instances.edgeManager; } /** * Creates or returns an existing instance of MetadataManager */ static getMetadataManager(storage: IStorage): IMetadataManager { if (!this.instances.metadataManager) { this.instances.metadataManager = new MetadataManager(storage); } return this.instances.metadataManager; } /** * Creates or returns an existing instance of SearchManager */ static getSearchManager(storage: IStorage): ISearchManager { if (!this.instances.searchManager) { this.instances.searchManager = new SearchManager(storage); } return this.instances.searchManager; } /** * Creates or returns an existing instance of TransactionManager */ static getTransactionManager(storage: IStorage): ITransactionManager { if (!this.instances.transactionManager) { this.instances.transactionManager = new TransactionManager(storage); } return this.instances.transactionManager; } /** * Creates all manager instances at once */ static getAllManagers(storage: IStorage) { return { nodeManager: this.getNodeManager(storage), edgeManager: this.getEdgeManager(storage), metadataManager: this.getMetadataManager(storage), searchManager: this.getSearchManager(storage), transactionManager: this.getTransactionManager(storage) }; } /** * Clears all cached manager instances */ static clearInstances(): void { this.instances = {}; } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CheMiguel23/MemoryMesh'

If you have feedback or need assistance with the MCP directory API, please join our Discord server