agent-twitter-summary
Version:
A twitter client for agents
48 lines (41 loc) • 984 B
text/typescript
export class ApiError extends Error {
private constructor(
readonly response: Response,
readonly data: any,
message: string,
) {
super(message);
}
static async fromResponse(response: Response) {
// Try our best to parse the result, but don't bother if we can't
let data: string | object | undefined = undefined;
try {
data = await response.json();
} catch {
try {
data = await response.text();
} catch {}
}
return new ApiError(response, data, `Response status: ${response.status}`);
}
}
interface Position {
line: number;
column: number;
}
interface TraceInfo {
trace_id: string;
}
interface TwitterApiErrorExtensions {
code?: number;
kind?: string;
name?: string;
source?: string;
tracing?: TraceInfo;
}
export interface TwitterApiErrorRaw extends TwitterApiErrorExtensions {
message?: string;
locations?: Position[];
path?: string[];
extensions?: TwitterApiErrorExtensions;
}