@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
109 lines (107 loc) • 14 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/errors/general.ts
import getTypeName from "./get-type-name.mjs";
var _SurrealError = class _SurrealError extends Error {
constructor(message, options) {
super(message, options);
if (!("cause" in this) && options && "cause" in options) {
this.cause = options.cause;
}
}
};
__name(_SurrealError, "SurrealError");
_SurrealError.prototype.name = "SurrealError";
var SurrealError = _SurrealError;
var _SurrealTypeError = class _SurrealTypeError extends SurrealError {
constructor(expected, actual, options) {
expected = typeof expected === "string" ? expected : expected.slice().sort().join(" | ");
actual = getTypeName(actual);
super(`Expected ${expected} but got ${actual}.`, options);
this.expected = expected;
this.actual = actual;
}
};
__name(_SurrealTypeError, "SurrealTypeError");
_SurrealTypeError.prototype.name = "SurrealTypeError";
var SurrealTypeError = _SurrealTypeError;
var _SurrealValueError = class _SurrealValueError extends SurrealError {
constructor(expected, actual, options) {
expected = typeof expected === "string" ? expected : expected.slice().sort().join(" | ");
let s = String(actual);
s = s && (typeof actual === "string" ? actual.length < 30 - 2 ? JSON.stringify(actual) : JSON.stringify(`${actual.slice(0, 11)} ... ${actual.slice(-11)}`) : s.length < 30 ? s : `${s.slice(0, 12)} ... ${s.slice(-12)}`);
super(
`Expected ${expected} but got type ${getTypeName(actual)}${s && ` of value ${s}`}.`,
options
);
this.expected = expected;
this.actual = actual;
}
};
__name(_SurrealValueError, "SurrealValueError");
_SurrealValueError.prototype.name = "SurrealValueError";
var SurrealValueError = _SurrealValueError;
var _SurrealAggregateError = class _SurrealAggregateError extends SurrealError {
constructor(message, errors, options) {
super(message, options);
this.cause = errors.slice();
}
};
__name(_SurrealAggregateError, "SurrealAggregateError");
_SurrealAggregateError.prototype.name = "SurrealAggregateError";
var SurrealAggregateError = _SurrealAggregateError;
var _CircularReferenceError = class _CircularReferenceError extends SurrealError {
constructor(reference, options) {
super("Circular reference is detected", options);
this.reference = reference;
}
};
__name(_CircularReferenceError, "CircularReferenceError");
_CircularReferenceError.prototype.name = "CircularReferenceError";
var CircularReferenceError = _CircularReferenceError;
var _NumberRangeError = class _NumberRangeError extends SurrealError {
constructor(range, actual, options = {}) {
super(
`Value ${actual} is out of range. Expected value to be between ${range[0]} and ${range[1]}` + (options.integer ? " as an integer." : "."),
options
);
this.range = range;
this.actual = actual;
this.integer = !!options.integer;
}
};
__name(_NumberRangeError, "NumberRangeError");
_NumberRangeError.prototype.name = "NumberRangeError";
var NumberRangeError = _NumberRangeError;
var _UnsupportedRuntimeError = class _UnsupportedRuntimeError extends SurrealError {
constructor(reason) {
super("Unsupported runtime.", { cause: reason });
}
};
__name(_UnsupportedRuntimeError, "UnsupportedRuntimeError");
_UnsupportedRuntimeError.prototype.name = "UnsupportedRuntimeError";
var UnsupportedRuntimeError = _UnsupportedRuntimeError;
var _UnreachableError = class _UnreachableError extends SurrealError {
constructor(options) {
super("Unreachable code reached.", options);
}
};
__name(_UnreachableError, "UnreachableError");
_UnreachableError.prototype.name = "UnreachableError";
var UnreachableError = _UnreachableError;
function unreachable(...a) {
throw new UnreachableError(a.length > 0 && { cause: a[0] } || void 0);
}
__name(unreachable, "unreachable");
export {
CircularReferenceError,
NumberRangeError,
SurrealAggregateError,
SurrealError,
SurrealTypeError,
SurrealValueError,
UnreachableError,
UnsupportedRuntimeError,
unreachable
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Vycm9ycy9nZW5lcmFsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgZ2V0VHlwZU5hbWUsIHsgdHlwZSBUeXBlTmFtZSB9IGZyb20gXCIuL2dldC10eXBlLW5hbWVcIjtcblxuLy8gZHByaW50LWlnbm9yZVxudHlwZSBFcnJvck9wdGlvbnNCYXNlID1cbiAgXCJjYXVzZVwiIGV4dGVuZHMga2V5b2YgRXJyb3JcbiAgICA/IFJlYWRvbmx5PEVycm9yT3B0aW9ucz5cbiAgICA6IHsgcmVhZG9ubHkgY2F1c2U/OiB1bmtub3duIH0gLy8gcG9seWZpbGxcblxuZXhwb3J0IGludGVyZmFjZSBTdXJyZWFsRXJyb3JPcHRpb25zIGV4dGVuZHMgRXJyb3JPcHRpb25zQmFzZSB7fVxuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9ndWlkZXMvZXJyb3JzLyNzdXJyZWFsZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJyZWFsRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiU3VycmVhbEVycm9yXCI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBTdXJyZWFsRXJyb3JPcHRpb25zIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIShcImNhdXNlXCIgaW4gdGhpcykgJiYgb3B0aW9ucyAmJiBcImNhdXNlXCIgaW4gb3B0aW9ucykge1xuICAgICAgdGhpcy5jYXVzZSA9IG9wdGlvbnMuY2F1c2U7IC8vIHBvbHlmaWxsXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI3N1cnJlYWx0eXBlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJyZWFsVHlwZUVycm9yIGV4dGVuZHMgU3VycmVhbEVycm9yIHtcbiAgc3RhdGljIHtcbiAgICB0aGlzLnByb3RvdHlwZS5uYW1lID0gXCJTdXJyZWFsVHlwZUVycm9yXCI7XG4gIH1cblxuICBleHBlY3RlZDogc3RyaW5nO1xuICBhY3R1YWw6IFR5cGVOYW1lO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGV4cGVjdGVkOiBUeXBlTmFtZSB8IHJlYWRvbmx5IFR5cGVOYW1lW10sXG4gICAgYWN0dWFsOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBTdXJyZWFsRXJyb3JPcHRpb25zIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBleHBlY3RlZCA9IHR5cGVvZiBleHBlY3RlZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBleHBlY3RlZFxuICAgICAgOiBleHBlY3RlZC5zbGljZSgpLnNvcnQoKS5qb2luKFwiIHwgXCIpO1xuICAgIGFjdHVhbCA9IGdldFR5cGVOYW1lKGFjdHVhbCk7XG4gICAgc3VwZXIoYEV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9LmAsIG9wdGlvbnMpO1xuICAgIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDtcbiAgICB0aGlzLmFjdHVhbCA9IGFjdHVhbCBhcyBzdHJpbmc7XG4gIH1cbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvZ3VpZGVzL2Vycm9ycy8jc3VycmVhbHZhbHVlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXJyZWFsVmFsdWVFcnJvciBleHRlbmRzIFN1cnJlYWxFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiU3VycmVhbFZhbHVlRXJyb3JcIjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBleHBlY3RlZDogc3RyaW5nIHwgcmVhZG9ubHkgc3RyaW5nW10sXG4gICAgcHVibGljIGFjdHVhbDogdW5rbm93bixcbiAgICBvcHRpb25zPzogU3VycmVhbEVycm9yT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgZXhwZWN0ZWQgPSB0eXBlb2YgZXhwZWN0ZWQgPT09IFwic3RyaW5nXCJcbiAgICAgID8gZXhwZWN0ZWRcbiAgICAgIDogZXhwZWN0ZWQuc2xpY2UoKS5zb3J0KCkuam9pbihcIiB8IFwiKTtcbiAgICBsZXQgcyA9IFN0cmluZyhhY3R1YWwpO1xuICAgIHMgPSBzICYmIChcbiAgICAgIHR5cGVvZiBhY3R1YWwgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBhY3R1YWwubGVuZ3RoIDwgMzAgLSAyXG4gICAgICAgICAgPyBKU09OLnN0cmluZ2lmeShhY3R1YWwpXG4gICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShgJHthY3R1YWwuc2xpY2UoMCwgMTEpfSAuLi4gJHthY3R1YWwuc2xpY2UoLTExKX1gKVxuICAgICAgICA6IHMubGVuZ3RoIDwgMzBcbiAgICAgICAgPyBzXG4gICAgICAgIDogYCR7cy5zbGljZSgwLCAxMil9IC4uLiAke3Muc2xpY2UoLTEyKX1gXG4gICAgKTtcbiAgICBzdXBlcihcbiAgICAgIGBFeHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290IHR5cGUgJHtnZXRUeXBlTmFtZShhY3R1YWwpfSR7XG4gICAgICAgIHMgJiYgYCBvZiB2YWx1ZSAke3N9YFxuICAgICAgfS5gLFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI3N1cnJlYWxhZ2dyZWdhdGVlcnJvcilcbiAqL1xuZXhwb3J0IGNsYXNzIFN1cnJlYWxBZ2dyZWdhdGVFcnJvciBleHRlbmRzIFN1cnJlYWxFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiU3VycmVhbEFnZ3JlZ2F0ZUVycm9yXCI7XG4gIH1cblxuICBvdmVycmlkZSBjYXVzZTogdW5rbm93bltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBlcnJvcnM6IHJlYWRvbmx5IHVua25vd25bXSxcbiAgICBvcHRpb25zPzogT21pdDxTdXJyZWFsRXJyb3JPcHRpb25zLCBcImNhdXNlXCI+IHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBvcHRpb25zKTtcbiAgICB0aGlzLmNhdXNlID0gZXJyb3JzLnNsaWNlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvZ3VpZGVzL2Vycm9ycy8jY2lyY3VsYXJyZWZlcmVuY2VlcnJvcilcbiAqL1xuZXhwb3J0IGNsYXNzIENpcmN1bGFyUmVmZXJlbmNlRXJyb3IgZXh0ZW5kcyBTdXJyZWFsRXJyb3Ige1xuICBzdGF0aWMge1xuICAgIHRoaXMucHJvdG90eXBlLm5hbWUgPSBcIkNpcmN1bGFyUmVmZXJlbmNlRXJyb3JcIjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWZlcmVuY2U6IHVua25vd24sXG4gICAgb3B0aW9ucz86IFN1cnJlYWxFcnJvck9wdGlvbnMgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHN1cGVyKFwiQ2lyY3VsYXIgcmVmZXJlbmNlIGlzIGRldGVjdGVkXCIsIG9wdGlvbnMpO1xuICB9XG59XG5cbi8qKlxuICoge0BsaW5rIE51bWJlclJhbmdlRXJyb3J9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnVtYmVyUmFuZ2VFcnJvck9wdGlvbnMgZXh0ZW5kcyBTdXJyZWFsRXJyb3JPcHRpb25zIHtcbiAgcmVhZG9ubHkgaW50ZWdlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI251bWJlcnJhbmdlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUVycm9yIGV4dGVuZHMgU3VycmVhbEVycm9yIHtcbiAgc3RhdGljIHtcbiAgICB0aGlzLnByb3RvdHlwZS5uYW1lID0gXCJOdW1iZXJSYW5nZUVycm9yXCI7XG4gIH1cblxuICBpbnRlZ2VyOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByYW5nZTogW2Zyb206IG51bWJlciB8IGJpZ2ludCwgdG86IG51bWJlciB8IGJpZ2ludF0sXG4gICAgcHVibGljIGFjdHVhbDogbnVtYmVyIHwgYmlnaW50LFxuICAgIG9wdGlvbnM6IE51bWJlclJhbmdlRXJyb3JPcHRpb25zIHwgdW5kZWZpbmVkID0ge30sXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgYFZhbHVlICR7YWN0dWFsfSBpcyBvdXQgb2YgcmFuZ2UuIEV4cGVjdGVkIHZhbHVlIHRvIGJlIGJldHdlZW4gYFxuICAgICAgICArIGAke3JhbmdlWzBdfSBhbmQgJHtyYW5nZVsxXX1gXG4gICAgICAgICsgKG9wdGlvbnMuaW50ZWdlciA/IFwiIGFzIGFuIGludGVnZXIuXCIgOiBcIi5cIiksXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5pbnRlZ2VyID0gISFvcHRpb25zLmludGVnZXI7XG4gIH1cbn1cblxuLyoqXG4gKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvZ3VpZGVzL2Vycm9ycy8jdW5zdXBwb3J0ZWRydW50aW1lZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZFJ1bnRpbWVFcnJvciBleHRlbmRzIFN1cnJlYWxFcnJvciB7XG4gIHN0YXRpYyB7XG4gICAgdGhpcy5wcm90b3R5cGUubmFtZSA9IFwiVW5zdXBwb3J0ZWRSdW50aW1lRXJyb3JcIjtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgY2F1c2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihyZWFzb246IHN0cmluZykge1xuICAgIHN1cGVyKFwiVW5zdXBwb3J0ZWQgcnVudGltZS5cIiwgeyBjYXVzZTogcmVhc29uIH0pO1xuICB9XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2d1aWRlcy9lcnJvcnMvI3VucmVhY2hhYmxlZXJyb3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBVbnJlYWNoYWJsZUVycm9yIGV4dGVuZHMgU3VycmVhbEVycm9yIHtcbiAgc3RhdGljIHtcbiAgICB0aGlzLnByb3RvdHlwZS5uYW1lID0gXCJVbnJlYWNoYWJsZUVycm9yXCI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogU3VycmVhbEVycm9yT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKFwiVW5yZWFjaGFibGUgY29kZSByZWFjaGVkLlwiLCBvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWFjaGFibGUoKTogbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlYWNoYWJsZShjYXVzZTogbmV2ZXIpOiBuZXZlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVhY2hhYmxlKC4uLmE6IFtjYXVzZT86IG5ldmVyXSk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFVucmVhY2hhYmxlRXJyb3IoYS5sZW5ndGggPiAwICYmIHsgY2F1c2U6IGFbMF0gfSB8fCB1bmRlZmluZWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7OztBQUFBLE9BQU8saUJBQW9DO0FBYXBDLElBQU0sZ0JBQU4sTUFBTSxzQkFBcUIsTUFBTTtBQUFBLEVBS3RDLFlBQVksU0FBaUIsU0FBMkM7QUFDdEUsVUFBTSxTQUFTLE9BQU87QUFFdEIsUUFBSSxFQUFFLFdBQVcsU0FBUyxXQUFXLFdBQVcsU0FBUztBQUN2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