Files
Dorod-Sky/skyvern-ts/client/src/errors/SkyvernError.ts
2025-10-23 20:14:59 -06:00

54 lines
1.3 KiB
TypeScript

// This file was auto-generated by Fern from our API Definition.
import type * as core from "../core/index.js";
import { toJson } from "../core/json.js";
export class SkyvernError extends Error {
public readonly statusCode?: number;
public readonly body?: unknown;
public readonly rawResponse?: core.RawResponse;
constructor({
message,
statusCode,
body,
rawResponse,
}: {
message?: string;
statusCode?: number;
body?: unknown;
rawResponse?: core.RawResponse;
}) {
super(buildMessage({ message, statusCode, body }));
Object.setPrototypeOf(this, SkyvernError.prototype);
this.statusCode = statusCode;
this.body = body;
this.rawResponse = rawResponse;
}
}
function buildMessage({
message,
statusCode,
body,
}: {
message: string | undefined;
statusCode: number | undefined;
body: unknown | undefined;
}): string {
const lines: string[] = [];
if (message != null) {
lines.push(message);
}
if (statusCode != null) {
lines.push(`Status code: ${statusCode.toString()}`);
}
if (body != null) {
lines.push(`Body: ${toJson(body, undefined, 2)}`);
}
return lines.join("\n");
}