sarvam-mcp-server
Version:
A Model Context Protocol (MCP) server implementation for Sarvam's text processing capabilities, providing language identification, text analytics, translation, and transliteration services for Indian languages.
60 lines (59 loc) • 2.02 kB
JavaScript
export class SarvamError extends Error {
status;
response;
constructor(message, status, response) {
super(message);
this.status = status;
this.response = response;
this.name = "SarvamError";
}
}
export class SarvamBadRequestError extends SarvamError {
constructor(message = "Bad Request") {
super(message, 400, { message });
this.name = "SarvamBadRequestError";
}
}
export class SarvamForbiddenRequestError extends SarvamError {
constructor(message = "Forbidden Request") {
super(message, 403, { message });
this.name = "SarvamForbiddenRequestError";
}
}
export class SarvamUnprocessableEntityError extends SarvamError {
constructor(message = "Unprocessable Entity") {
super(message, 422, { message });
this.name = "SarvamUnprocessableEntityError";
}
}
export class SarvamInternalServerError extends SarvamError {
constructor(message = "Internal Server Error") {
super(message, 500, { message });
this.name = "SarvamInternalServerError";
}
}
export class SarvamUnavailableServiceError extends SarvamError {
constructor(message = "Service Unavailable") {
super(message, 503, { message });
this.name = "SarvamUnavailableServiceError";
}
}
export function isSarvamError(error) {
return error instanceof SarvamError;
}
export function createSarvamError(status, response) {
switch (status) {
case 400:
return new SarvamBadRequestError(response?.message);
case 403:
return new SarvamForbiddenRequestError(response?.message);
case 422:
return new SarvamUnprocessableEntityError(response?.message);
case 500:
return new SarvamInternalServerError(response?.message);
case 503:
return new SarvamUnavailableServiceError(response?.message);
default:
return new SarvamError(response?.message || "Sarvam API error", status, response);
}
}