@tsailab/xai
Version:
The loto-xai is an openai nodejs sdk compatible extension library.
72 lines • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.XSseProxyError = void 0;
const DEF_MSG = 'Unknow XSseProxy Error';
class XSseProxyError extends Error {
statusCode = 500;
statusText = DEF_MSG;
response;
errorCode;
constructor(message, options) {
super(message ?? options?.errorCode ?? DEF_MSG);
if (options?.cause) {
this.response = options.cause;
}
if (options?.errorCode) {
this.errorCode = options.errorCode;
}
this.name = new.target.name;
if (typeof Error.captureStackTrace === 'function') {
Error.captureStackTrace(this, new.target);
}
if (typeof Object.setPrototypeOf === 'function') {
Object.setPrototypeOf(this, new.target.prototype);
}
else {
this.__proto__ = new.target.prototype;
}
}
/**
*
* @param message error message
* @param res response
* @param errcode bizcode
* @returns XSseProxyError
*/
static createError(message, res, errcode) {
const e = new XSseProxyError(message, { cause: res });
if (res) {
e.statusCode = res.status;
e.statusText = res.statusText;
}
e.errorCode = errcode ?? res?.statusText ?? res?.status;
return e;
}
/**
*
* @param ex maybe BizException extends Error
* @returns XSseProxyError
*/
static fromException(ex) {
let errmsg = DEF_MSG;
if (typeof ex === 'string') {
errmsg = ex;
}
else if (typeof ex === 'object' && ex?.message) {
errmsg = ex.message;
}
const e = new XSseProxyError(errmsg);
e.statusText = errmsg;
if (typeof ex === 'object' && ex?.code) {
e.errorCode = ex.code;
e.statusCode = ex.code;
}
else {
e.statusCode = 500;
e.errorCode = 500;
}
return e;
}
}
exports.XSseProxyError = XSseProxyError;
//# sourceMappingURL=xnode.sse.error.js.map