@odel/module-sdk
Version:
SDK for building Odel modules - MCP protocol over HTTP for Cloudflare Workers
73 lines • 1.97 kB
TypeScript
/**
* Standardized error handling for Odel modules
*/
/**
* Error codes for module operations
*/
export declare enum ErrorCode {
INVALID_INPUT = 1001,
MISSING_REQUIRED_FIELD = 1002,
INVALID_FORMAT = 1003,
MISSING_SECRET = 2001,
INVALID_SECRET = 2002,
UNAUTHORIZED = 2003,
API_ERROR = 3001,
NETWORK_ERROR = 3002,
TIMEOUT = 3003,
NOT_FOUND = 3004,
RATE_LIMIT_EXCEEDED = 4001,
QUOTA_EXCEEDED = 4002,
INTERNAL_ERROR = 5001,
NOT_IMPLEMENTED = 5002,
CONFIGURATION_ERROR = 5003
}
/**
* Standardized module error class
*
* @example
* ```typescript
* throw new ModuleError(
* ErrorCode.MISSING_SECRET,
* 'RESEND_API_KEY secret is required',
* { secretName: 'RESEND_API_KEY' }
* );
* ```
*/
export declare class ModuleError extends Error {
code: ErrorCode;
metadata?: Record<string, any> | undefined;
/**
* Create a new module error
* @param code - Error code from ErrorCode enum
* @param message - Human-readable error message
* @param metadata - Optional additional error context
*/
constructor(code: ErrorCode, message: string, metadata?: Record<string, any> | undefined);
/**
* Convert error to JSON response format
* @returns Success/error response object
*/
toJSON(): {
metadata?: Record<string, any> | undefined;
success: false;
error: string;
code: ErrorCode;
};
/**
* Create a validation error
*/
static validationError(message: string, metadata?: Record<string, any>): ModuleError;
/**
* Create a missing secret error
*/
static missingSecret(secretName: string): ModuleError;
/**
* Create an API error
*/
static apiError(message: string, metadata?: Record<string, any>): ModuleError;
/**
* Create a rate limit error
*/
static rateLimitError(retryAfter?: number): ModuleError;
}
//# sourceMappingURL=errors.d.ts.map