deepsource-mcp-server
Version:
Model Context Protocol server for DeepSource
41 lines (40 loc) • 1.81 kB
TypeScript
/**
* @fileoverview Base handler factory implementation for standardized handler creation
* @packageDocumentation
*/
import { BaseHandlerDeps, HandlerFactory } from './handler.interface.js';
import { ApiResponse } from '../../models/common.js';
/**
* Creates a base handler factory with common functionality
* @template TParams - The handler parameters type
* @template TResult - The handler result type
* @param handlerName - The name of the handler for logging
* @param handlerLogic - The actual handler implementation
* @returns A handler factory function
*/
export declare function createBaseHandlerFactory<TParams = unknown, TResult = ApiResponse>(handlerName: string, handlerLogic: (deps: BaseHandlerDeps, params: TParams) => Promise<TResult>): HandlerFactory<BaseHandlerDeps, TParams, TResult>;
/**
* Creates default handler dependencies
* @param overrides - Optional overrides for specific dependencies
* @returns The complete handler dependencies
*/
export declare function createDefaultHandlerDeps(overrides?: Partial<BaseHandlerDeps>): BaseHandlerDeps;
/**
* Wraps a handler result in an ApiResponse format
* @param data - The data to wrap
* @returns An ApiResponse with the data as JSON text
*/
export declare function wrapInApiResponse<T>(data: T): ApiResponse;
/**
* Creates an error ApiResponse
* @param error - The error to convert
* @param defaultMessage - Default message if error parsing fails
* @returns An ApiResponse with error information
*/
export declare function createErrorResponse(error: unknown, defaultMessage?: string): ApiResponse;
/**
* Type guard to check if a value is an ApiResponse
* @param value - The value to check
* @returns True if the value is an ApiResponse
*/
export declare function isApiResponse(value: unknown): value is ApiResponse;