/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { S2Error } from "./s2error.js";
/** The fallback error class if no more specific error class is matched */
export class APIError extends S2Error {
    constructor(message, httpMeta) {
        if (message) {
            message += `: `;
        }
        message += `Status ${httpMeta.response.status}`;
        const contentType = httpMeta.response.headers.get("content-type") || `""`;
        if (contentType !== "application/json") {
            message += ` Content-Type ${contentType.includes(" ") ? `"${contentType}"` : contentType}`;
        }
        const body = httpMeta.body || `""`;
        message += body.length > 100 ? "\n" : ". ";
        let bodyDisplay = body;
        if (body.length > 10000) {
            const truncated = body.substring(0, 10000);
            const remaining = body.length - 10000;
            bodyDisplay = `${truncated}...and ${remaining} more chars`;
        }
        message += `Body: ${bodyDisplay}`;
        message = message.trim();
        super(message, httpMeta);
        this.name = "APIError";
    }
}
//# sourceMappingURL=apierror.js.map