UNPKG

@coinbase/cdp-sdk

Version:

SDK for interacting with the Coinbase Developer Platform Wallet API

65 lines (56 loc) 1.59 kB
// 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 CoinbaseApiError extends Error { public readonly statusCode?: number; public readonly body?: unknown; public readonly rawResponse?: core.RawResponse; public readonly cause?: unknown; constructor({ message, statusCode, body, rawResponse, cause, }: { message?: string; statusCode?: number; body?: unknown; rawResponse?: core.RawResponse; cause?: unknown; }) { super(buildMessage({ message, statusCode, body })); Object.setPrototypeOf(this, new.target.prototype); if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } this.name = this.constructor.name; this.statusCode = statusCode; this.body = body; this.rawResponse = rawResponse; if (cause != null) { this.cause = cause; } } } 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"); }