@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
106 lines (104 loc) • 10.5 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/data-types/standard/future.ts
var future_exports = {};
__export(future_exports, {
default: () => Future
});
module.exports = __toCommonJS(future_exports);
var import_encodable_datatypes = require("../encodable/index.cjs");
var import_errors = require("../../errors/index.cjs");
var import_utils = require("../../utils/index.cjs");
var import_thing = require("../_internals/thing.cjs");
var _Future = class _Future extends import_encodable_datatypes.Future {
static raw(value) {
return new Raw(value);
}
static surql(texts, ...values) {
if (texts.length - values.length !== 1) {
throw new import_errors.SurrealValueError(
"template string",
`texts.length=${texts.length} and values.length=${values.length}`
);
}
let text = "";
for (let i = 0, j, v, len = texts.length, cache = {}; i < len; i++) {
text += texts[i];
if (i + 1 === len) {
break;
}
for (j = 0; j < i; j++) {
if (Object.is(values[j], values[i])) {
break;
}
}
v = values[j];
if (v instanceof Raw) {
text += v.toString();
} else {
text += cache[j] ??= (0, import_utils.toSurql)(v);
}
}
return text;
}
clone() {
const This = this.constructor;
return new This(this.block);
}
};
__name(_Future, "Future");
var Future = _Future;
var THING = /* @__PURE__ */ Symbol.for("@tai-kun/surrealdb/thing-datatypes");
function isThing(o) {
return !!o && typeof o === "object" && o["$$datatype"] === THING;
}
__name(isThing, "isThing");
function isGenerator(id) {
return id === "uuid()" || id === "ulid()" || id === "rand()";
}
__name(isGenerator, "isGenerator");
var _Raw = class _Raw {
constructor(value) {
this._val = value;
if (typeof value === "string") {
this._str = value;
} else if (value && typeof value === "object") {
if (isThing(value)) {
this._str = isGenerator(value.id) ? (0, import_thing.escapeTb)(value.table) + ":" + value.id : (0, import_thing.toString)(value);
} else if ("toSurql" in value) {
this._str = value.toSurql();
} else if (Object.hasOwn(value, "toString")) {
this._str = value.toString();
} else if (Object.hasOwn(value, Symbol.toPrimitive)) {
this._str = value[Symbol.toPrimitive]("string");
} else {
throw new import_errors.SurrealValueError("Object contains encode methods", value);
}
} else {
throw new import_errors.SurrealTypeError(["String", "Object"], value);
}
}
toString() {
return this._str;
}
};
__name(_Raw, "Raw");
var Raw = _Raw;
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGEtdHlwZXMvc3RhbmRhcmQvZnV0dXJlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBGdXR1cmUgYXMgQmFzZSB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZW5jb2RhYmxlLWRhdGF0eXBlc1wiO1xuaW1wb3J0IHsgU3VycmVhbFR5cGVFcnJvciwgU3VycmVhbFZhbHVlRXJyb3IgfSBmcm9tIFwiQHRhaS1rdW4vc3VycmVhbGRiL2Vycm9yc1wiO1xuaW1wb3J0IHsgdG9TdXJxbCB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvdXRpbHNcIjtcbmltcG9ydCB7IGVzY2FwZVRiLCB0b1N0cmluZyB9IGZyb20gXCIuLi9faW50ZXJuYWxzL3RoaW5nXCI7XG5pbXBvcnQgdHlwZSB7IFN0YW5kYXJkIH0gZnJvbSBcIi4vc3BlY1wiO1xuXG5leHBvcnQgdHlwZSAqIGZyb20gXCIuLi9lbmNvZGFibGUvZnV0dXJlXCI7XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS9kYXRhL2Z1dHVyZSlcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnV0dXJlIGV4dGVuZHMgQmFzZSBpbXBsZW1lbnRzIFN0YW5kYXJkIHtcbiAgc3RhdGljIHJhdyh2YWx1ZTogUmF3VmFsdWUpOiBSYXcge1xuICAgIHJldHVybiBuZXcgUmF3KHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBzdXJxbChcbiAgICB0ZXh0czogcmVhZG9ubHkgc3RyaW5nW10gfCBUZW1wbGF0ZVN0cmluZ3NBcnJheSxcbiAgICAuLi52YWx1ZXM6IHVua25vd25bXVxuICApOiBzdHJpbmcge1xuICAgIGlmICh0ZXh0cy5sZW5ndGggLSB2YWx1ZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgU3VycmVhbFZhbHVlRXJyb3IoXG4gICAgICAgIFwidGVtcGxhdGUgc3RyaW5nXCIsXG4gICAgICAgIGB0ZXh0cy5sZW5ndGg9JHt0ZXh0cy5sZW5ndGh9IGFuZCB2YWx1ZXMubGVuZ3RoPSR7dmFsdWVzLmxlbmd0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgdGV4dCA9IFwiXCI7XG5cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSAwLFxuICAgICAgICBqOiBudW1iZXIsXG4gICAgICAgIHYsXG4gICAgICAgIGxlbiA9IHRleHRzLmxlbmd0aCxcbiAgICAgICAgY2FjaGU6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7fTtcbiAgICAgIGkgPCBsZW47XG4gICAgICBpKytcbiAgICApIHtcbiAgICAgIHRleHQgKz0gdGV4dHNbaV07XG5cbiAgICAgIGlmIChpICsgMSA9PT0gbGVuKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKSB7XG4gICAgICAgIGlmIChPYmplY3QuaXModmFsdWVzW2pdLCB2YWx1ZXNbaV0pKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdiA9IHZhbHVlc1tqXTtcblxuICAgICAgaWYgKHYgaW5zdGFuY2VvZiBSYXcpIHtcbiAgICAgICAgdGV4dCArPSB2LnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ZXh0ICs9IGNhY2hlW2pdID8/PSB0b1N1cnFsKHYpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZWFkb25seSBcdTMwOTJcdTU5MTZcdTMwNTlcdTMwNjBcdTMwNTFcbiAgYmxvY2s6IHN0cmluZztcblxuICBjbG9uZSgpOiB0aGlzIHtcbiAgICBjb25zdCBUaGlzID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgRnV0dXJlO1xuXG4gICAgcmV0dXJuIG5ldyBUaGlzKHRoaXMuYmxvY2spIGFzIHRoaXM7XG4gIH1cbn1cblxuY29uc3QgVEhJTkcgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcIkB0YWkta3VuL3N1cnJlYWxkYi90aGluZy1kYXRhdHlwZXNcIik7XG5cbmZ1bmN0aW9uIGlzVGhpbmcobzogdW5rbm93bik6IG8gaXMge1xuICByZWFkb25seSB0YWJsZTogc3RyaW5nO1xuICByZWFkb25seSBpZDogdW5rbm93bjtcbn0ge1xuICByZXR1cm4gISFvXG4gICAgJiYgdHlwZW9mIG8gPT09IFwib2JqZWN0XCJcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgJiYgb1tcIiQkZGF0YXR5cGVcIl0gPT09IFRISU5HO1xufVxuXG5mdW5jdGlvbiBpc0dlbmVyYXRvcihpZDogdW5rbm93bik6IGlkIGlzIHN0cmluZyB7XG4gIHJldHVybiBpZCA9PT0gXCJ1dWlkKClcIiB8fCBpZCA9PT0gXCJ1bGlkKClcIiB8fCBpZCA9PT0gXCJyYW5kKClcIjtcbn1cblxuZXhwb3J0IHR5cGUgUmF3VmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IHsgcmVhZG9ubHkgdG9TdXJxbDogKCkgPT4gc3RyaW5nIH1cbiAgfCB7IHJlYWRvbmx5IHRvU3RyaW5nOiAoKSA9PiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgW1N5bWJvbC50b1ByaW1pdGl2ZV06IChoaW50OiBcInN0cmluZ1wiKSA9PiBzdHJpbmcgfTtcblxuY2xhc3MgUmF3IHtcbiAgcHJvdGVjdGVkIF92YWw6IFJhd1ZhbHVlO1xuICBwcm90ZWN0ZWQgX3N0cjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHZhbHVlOiBSYXdWYWx1ZSkge1xuICAgIHRoaXMuX3ZhbCA9IHZhbHVlO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhpcy5fc3RyID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGlmIChpc1RoaW5nKHZhbHVlKSkge1xuICAgICAgICB0aGlzLl9zdHIgPSBpc0dlbmVyYXRvcih2YWx1ZS5pZClcbiAgICAgICAgICA/IGVzY2FwZVRiKHZhbHVlLnRhYmxlKSArIFwiOlwiICsgdmFsdWUuaWRcbiAgICAgICAgICA6IHRvU3RyaW5nKHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXCJ0b1N1cnFsXCIgaW4gdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fc3RyID0gdmFsdWUudG9TdXJxbCgpO1xuICAgICAgfSBlbHNlIGlmIChPYmplY3QuaGFzT3duKHZhbHVlLCBcInRvU3RyaW5nXCIpKSB7XG4gICAgICAgIHRoaXMuX3N0ciA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKE9iamVjdC5oYXNPd24odmFsdWUsIFN5bWJvbC50b1ByaW1pdGl2ZSkpIHtcbiAgICAgICAgdGhpcy5fc3RyID0gKHZhbHVlIGFzIGFueSlbU3ltYm9sLnRvUHJpbWl0aXZlXSEoXCJzdHJpbmdcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgU3VycmVhbFZhbHVlRXJyb3IoXCJPYmplY3QgY29udGFpbnMgZW5jb2RlIG1ldGhvZHNcIiwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgU3VycmVhbFR5cGVFcnJvcihbXCJTdHJpbmdcIiwgXCJPYmplY3RcIl0sIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdHI7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQ0FBK0I7QUFDL0Isb0JBQW9EO0FBQ3BELG1CQUF3QjtBQUN4QixtQkFBbUM7QUFTbkMsSUFBcUIsVUFBckIsTUFBcUIsZ0JBQWUsMkJBQUFBLE9BQXlCO0FBQUEsRUFDM0QsT0FBTyxJQUFJLE9BQXNCO0FBQy9C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