Skip to main content
Glama

JFrog MCP Server

Official
by jfrog
errors.ts2.66 kB
export class JFrogError extends Error { constructor( message: string, public readonly status: number, public readonly response: unknown ) { super(message); this.name = "JFrogError"; } } export class JFrogValidationError extends JFrogError { constructor(message: string, status: number, response: unknown) { super(message, status, response); this.name = "JFrogValidationError"; } } export class JFrogResourceNotFoundError extends JFrogError { constructor(resource: string) { super(`Resource not found: ${resource}`, 404, { message: `${resource} not found` }); this.name = "JFrogResourceNotFoundError"; } } export class JFrogAuthenticationError extends JFrogError { constructor(message = "Authentication failed") { super(message, 401, { message }); this.name = "JFrogAuthenticationError"; } } export class JFrogPermissionError extends JFrogError { constructor(message = "Insufficient permissions") { super(message, 403, { message }); this.name = "JFrogPermissionError"; } } export class JFrogRateLimitError extends JFrogError { constructor( message = "Rate limit exceeded", public readonly resetAt: Date ) { super(message, 429, { message, reset_at: resetAt.toISOString() }); this.name = "JFrogRateLimitError"; } } export class JFrogConflictError extends JFrogError { constructor(message: string) { super(message, 409, { message }); this.name = "JFrogConflictError"; } } export function isJFrogError(error: unknown): error is JFrogError { return error instanceof JFrogError; } export function createJFrogError(status: number, response: { message?: string; errors?: Array<{ message: string }>; reset_at?: string }): JFrogError { switch (status) { case 401: return new JFrogAuthenticationError(response?.message); case 403: return new JFrogPermissionError(response?.message); case 404: return new JFrogResourceNotFoundError(response?.message || "Resource"); case 409: return new JFrogConflictError(response?.message || "Conflict occurred"); case 422: return new JFrogValidationError( response?.message || "Validation failed", status, response ); case 429: return new JFrogRateLimitError( response?.message, new Date(response?.reset_at || Date.now() + 60000) ); case 500: return new JFrogResourceNotFoundError(response?.message || "Resource"); default: { const errorMessage = response?.errors?.[0]?.message || response?.message || "JFrog API error"; return new JFrogError( errorMessage, status, response ); } } }

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/jfrog/mcp-jfrog'

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