UNPKG

ai-utils.js

Version:

Build AI applications, chatbots, and agents with JavaScript and TypeScript.

53 lines (52 loc) 2.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.failedHuggingFaceCallResponseHandler = exports.HuggingFaceError = exports.huggingFaceErrorDataSchema = void 0; const secure_json_parse_1 = __importDefault(require("secure-json-parse")); const zod_1 = require("zod"); const ApiCallError_js_1 = require("../../util/api/ApiCallError.cjs"); exports.huggingFaceErrorDataSchema = zod_1.z.object({ error: zod_1.z.string(), }); class HuggingFaceError extends ApiCallError_js_1.ApiCallError { constructor({ data, statusCode, url, requestBodyValues, message = data.error, }) { super({ message, statusCode, requestBodyValues, url }); Object.defineProperty(this, "data", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.data = data; } } exports.HuggingFaceError = HuggingFaceError; const failedHuggingFaceCallResponseHandler = async ({ response, url, requestBodyValues }) => { const responseBody = await response.text(); try { const parsedError = exports.huggingFaceErrorDataSchema.parse(secure_json_parse_1.default.parse(responseBody)); return new HuggingFaceError({ url, requestBodyValues, statusCode: response.status, data: parsedError, }); } catch (error) { if (error instanceof Error) { if (error.name === "AbortError" || error instanceof ApiCallError_js_1.ApiCallError) { throw error; } } throw new ApiCallError_js_1.ApiCallError({ message: responseBody, cause: error, statusCode: response.status, url, requestBodyValues, }); } }; exports.failedHuggingFaceCallResponseHandler = failedHuggingFaceCallResponseHandler;