UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

106 lines (104 loc) 10.5 kB
"use strict"; 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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