@volley/recognition-client-sdk
Version:
Recognition Service TypeScript/Node.js Client SDK
47 lines (44 loc) • 1.48 kB
text/typescript
/**
* Factory function for creating Recognition Client instances
*/
import { RealTimeTwoWayWebSocketRecognitionClient } from './recognition-client.js';
import { ConfigBuilder } from './config-builder.js';
import type { IRecognitionClient, RealTimeTwoWayWebSocketRecognitionClientConfig } from './recognition-client.types.js';
/**
* Create a recognition client from a configuration object
*
* Example:
* ```typescript
* const client = createClient({
* url: 'ws://localhost:3101/ws/v1/recognize',
* audioUtteranceId: 'unique-id',
* onTranscript: (result) => console.log(result)
* });
* ```
*
* @param config - Client configuration
* @returns Configured recognition client instance
*/
export function createClient(config: RealTimeTwoWayWebSocketRecognitionClientConfig): IRecognitionClient {
return new RealTimeTwoWayWebSocketRecognitionClient(config);
}
/**
* Create a recognition client using the builder pattern
*
* Example:
* ```typescript
* const client = createClientWithBuilder((builder) =>
* builder
* .url('ws://localhost:3101/ws/v1/recognize')
* .onTranscript((result) => console.log(result))
* .onError((error) => console.error(error))
* );
* ```
*/
export function createClientWithBuilder(
configure: (builder: ConfigBuilder) => ConfigBuilder
): IRecognitionClient {
const builder = new ConfigBuilder();
const config = configure(builder).build();
return new RealTimeTwoWayWebSocketRecognitionClient(config);
}