"use strict";
// This file was auto-generated by Fern from our API Definition.
Object.defineProperty(exports, "__esModule", { value: true });
exports.MergeError = void 0;
const json_1 = require("../core/json");
class MergeError extends Error {
    constructor({ message, statusCode, body, rawResponse, }) {
        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;
    }
}
exports.MergeError = MergeError;
function buildMessage({ message, statusCode, body, }) {
    const lines = [];
    if (message != null) {
        lines.push(message);
    }
    if (statusCode != null) {
        lines.push(`Status code: ${statusCode.toString()}`);
    }
    if (body != null) {
        lines.push(`Body: ${(0, json_1.toJson)(body, undefined, 2)}`);
    }
    return lines.join("\n");
}
