UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

109 lines (107 loc) 14 kB
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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