UNPKG

@tsailab/xai

Version:

The loto-xai is an openai nodejs sdk compatible extension library.

68 lines 1.97 kB
const DEF_MSG = 'Unknow XSseProxy Error'; export 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; } } //# sourceMappingURL=xnode.sse.error.js.map