"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

function _es6Error() {
  const data = _interopRequireDefault(require("es6-error"));

  _es6Error = function () {
    return data;
  };

  return data;
}

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

const ERROR_PREFIX = 'Error: ';

class XDLError extends _es6Error().default {
  constructor(code, message, options = {
    noTrack: false
  }) {
    // If e.toString() was called to get `message` we don't want it to look
    // like "Error: Error:".
    if (message.startsWith(ERROR_PREFIX)) {
      message = message.substring(ERROR_PREFIX.length);
    }

    super(message);

    _defineProperty(this, "code", void 0);

    _defineProperty(this, "isXDLError", void 0);

    this.code = code;
    this.isXDLError = true;
  }

}

exports.default = XDLError;
//# sourceMappingURL=__sourcemaps__/XDLError.js.map