hts/packages/provider/src/errors/json-parse-error.ts

41 lines
953 B
TypeScript

import { getErrorMessage } from './get-error-message';
export class JSONParseError extends Error {
// note: property order determines debugging output
readonly text: string;
readonly cause: unknown;
constructor({ text, cause }: { text: string; cause: unknown }) {
super(
`JSON parsing failed: ` +
`Text: ${text}.\n` +
`Error message: ${getErrorMessage(cause)}`,
);
this.name = 'AI_JSONParseError';
this.cause = cause;
this.text = text;
}
static isJSONParseError(error: unknown): error is JSONParseError {
return (
error instanceof Error &&
error.name === 'AI_JSONParseError' &&
typeof (error as JSONParseError).text === 'string' &&
typeof (error as JSONParseError).cause === 'string'
);
}
toJSON() {
return {
name: this.name,
message: this.message,
cause: this.cause,
stack: this.stack,
valueText: this.text,
};
}
}