Skip to main content
Glama
UnityClientFactory.ts1.83 kB
import { IUnityClient, UnityClientConfig } from './types'; import { UnityClient } from './UnityClient'; import { ResilientUnityClient } from './ResilientUnityClient'; import { MockUnityClient } from './MockUnityClient'; import logger from '../utils/logger'; /** * Factory for creating Unity clients */ export class UnityClientFactory { /** * Create a Unity client * @param config Client configuration * @returns A Unity client instance */ public static createClient(config: UnityClientConfig = {}): IUnityClient { const { host = 'localhost', port = 8082, resilient = true } = config; // Check if we should use a mock client if (process.env.UNITY_MOCK === 'true') { logger.info('Using mock Unity client'); return this.createMockClient({ connected: true, executionDelay: parseInt(process.env.UNITY_MOCK_DELAY || '50'), failureRate: parseFloat(process.env.UNITY_MOCK_FAILURE_RATE || '0') }); } // Create a real client if (resilient) { logger.info(`Creating resilient Unity client for ${host}:${port}`); return new ResilientUnityClient(host, port, config.resilientOptions); } else { logger.info(`Creating standard Unity client for ${host}:${port}`); return new UnityClient(host, port); } } /** * Create a mock Unity client for testing * @param options Mock options * @returns A mock Unity client */ public static createMockClient(options: { connected?: boolean; executionDelay?: number; failureRate?: number; } = {}): MockUnityClient { logger.info('Creating mock Unity client for testing'); return new MockUnityClient({ connected: options.connected ?? true, executionDelay: options.executionDelay ?? 50, failureRate: options.failureRate ?? 0 }); } }

Latest Blog Posts

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/TSavo/Unity-MCP'

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