UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

87 lines (85 loc) 9.51 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/data-types/standard/future.ts import { Future as Base } from "../encodable/index.mjs"; import { SurrealTypeError, SurrealValueError } from "../../errors/index.mjs"; import { toSurql } from "../../utils/index.mjs"; import { escapeTb, toString } from "../_internals/thing.mjs"; var _Future = class _Future extends Base { static raw(value) { return new Raw(value); } static surql(texts, ...values) { if (texts.length - values.length !== 1) { throw new 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] ??= 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) ? escapeTb(value.table) + ":" + value.id : 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 SurrealValueError("Object contains encode methods", value); } } else { throw new SurrealTypeError(["String", "Object"], value); } } toString() { return this._str; } }; __name(_Raw, "Raw"); var Raw = _Raw; export { Future as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGEtdHlwZXMvc3RhbmRhcmQvZnV0dXJlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBGdXR1cmUgYXMgQmFzZSB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZW5jb2RhYmxlLWRhdGF0eXBlc1wiO1xuaW1wb3J0IHsgU3VycmVhbFR5cGVFcnJvciwgU3VycmVhbFZhbHVlRXJyb3IgfSBmcm9tIFwiQHRhaS1rdW4vc3VycmVhbGRiL2Vycm9yc1wiO1xuaW1wb3J0IHsgdG9TdXJxbCB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvdXRpbHNcIjtcbmltcG9ydCB7IGVzY2FwZVRiLCB0b1N0cmluZyB9IGZyb20gXCIuLi9faW50ZXJuYWxzL3RoaW5nXCI7XG5pbXBvcnQgdHlwZSB7IFN0YW5kYXJkIH0gZnJvbSBcIi4vc3BlY1wiO1xuXG5leHBvcnQgdHlwZSAqIGZyb20gXCIuLi9lbmNvZGFibGUvZnV0dXJlXCI7XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS9kYXRhL2Z1dHVyZSlcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnV0dXJlIGV4dGVuZHMgQmFzZSBpbXBsZW1lbnRzIFN0YW5kYXJkIHtcbiAgc3RhdGljIHJhdyh2YWx1ZTogUmF3VmFsdWUpOiBSYXcge1xuICAgIHJldHVybiBuZXcgUmF3KHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBzdXJxbChcbiAgICB0ZXh0czogcmVhZG9ubHkgc3RyaW5nW10gfCBUZW1wbGF0ZVN0cmluZ3NBcnJheSxcbiAgICAuLi52YWx1ZXM6IHVua25vd25bXVxuICApOiBzdHJpbmcge1xuICAgIGlmICh0ZXh0cy5sZW5ndGggLSB2YWx1ZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgU3VycmVhbFZhbHVlRXJyb3IoXG4gICAgICAgIFwidGVtcGxhdGUgc3RyaW5nXCIsXG4gICAgICAgIGB0ZXh0cy5sZW5ndGg9JHt0ZXh0cy5sZW5ndGh9IGFuZCB2YWx1ZXMubGVuZ3RoPSR7dmFsdWVzLmxlbmd0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgdGV4dCA9IFwiXCI7XG5cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSAwLFxuICAgICAgICBqOiBudW1iZXIsXG4gICAgICAgIHYsXG4gICAgICAgIGxlbiA9IHRleHRzLmxlbmd0aCxcbiAgICAgICAgY2FjaGU6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7fTtcbiAgICAgIGkgPCBsZW47XG4gICAgICBpKytcbiAgICApIHtcbiAgICAgIHRleHQgKz0gdGV4dHNbaV07XG5cbiAgICAgIGlmIChpICsgMSA9PT0gbGVuKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKSB7XG4gICAgICAgIGlmIChPYmplY3QuaXModmFsdWVzW2pdLCB2YWx1ZXNbaV0pKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdiA9IHZhbHVlc1tqXTtcblxuICAgICAgaWYgKHYgaW5zdGFuY2VvZiBSYXcpIHtcbiAgICAgICAgdGV4dCArPSB2LnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ZXh0ICs9IGNhY2hlW2pdID8/PSB0b1N1cnFsKHYpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZWFkb25seSBcdTMwOTJcdTU5MTZcdTMwNTlcdTMwNjBcdTMwNTFcbiAgYmxvY2s6IHN0cmluZztcblxuICBjbG9uZSgpOiB0aGlzIHtcbiAgICBjb25zdCBUaGlzID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgRnV0dXJlO1xuXG4gICAgcmV0dXJuIG5ldyBUaGlzKHRoaXMuYmxvY2spIGFzIHRoaXM7XG4gIH1cbn1cblxuY29uc3QgVEhJTkcgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcihcIkB0YWkta3VuL3N1cnJlYWxkYi90aGluZy1kYXRhdHlwZXNcIik7XG5cbmZ1bmN0aW9uIGlzVGhpbmcobzogdW5rbm93bik6IG8gaXMge1xuICByZWFkb25seSB0YWJsZTogc3RyaW5nO1xuICByZWFkb25seSBpZDogdW5rbm93bjtcbn0ge1xuICByZXR1cm4gISFvXG4gICAgJiYgdHlwZW9mIG8gPT09IFwib2JqZWN0XCJcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgJiYgb1tcIiQkZGF0YXR5cGVcIl0gPT09IFRISU5HO1xufVxuXG5mdW5jdGlvbiBpc0dlbmVyYXRvcihpZDogdW5rbm93bik6IGlkIGlzIHN0cmluZyB7XG4gIHJldHVybiBpZCA9PT0gXCJ1dWlkKClcIiB8fCBpZCA9PT0gXCJ1bGlkKClcIiB8fCBpZCA9PT0gXCJyYW5kKClcIjtcbn1cblxuZXhwb3J0IHR5cGUgUmF3VmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IHsgcmVhZG9ubHkgdG9TdXJxbDogKCkgPT4gc3RyaW5nIH1cbiAgfCB7IHJlYWRvbmx5IHRvU3RyaW5nOiAoKSA9PiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgW1N5bWJvbC50b1ByaW1pdGl2ZV06IChoaW50OiBcInN0cmluZ1wiKSA9PiBzdHJpbmcgfTtcblxuY2xhc3MgUmF3IHtcbiAgcHJvdGVjdGVkIF92YWw6IFJhd1ZhbHVlO1xuICBwcm90ZWN0ZWQgX3N0cjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHZhbHVlOiBSYXdWYWx1ZSkge1xuICAgIHRoaXMuX3ZhbCA9IHZhbHVlO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhpcy5fc3RyID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGlmIChpc1RoaW5nKHZhbHVlKSkge1xuICAgICAgICB0aGlzLl9zdHIgPSBpc0dlbmVyYXRvcih2YWx1ZS5pZClcbiAgICAgICAgICA/IGVzY2FwZVRiKHZhbHVlLnRhYmxlKSArIFwiOlwiICsgdmFsdWUuaWRcbiAgICAgICAgICA6IHRvU3RyaW5nKHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXCJ0b1N1cnFsXCIgaW4gdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fc3RyID0gdmFsdWUudG9TdXJxbCgpO1xuICAgICAgfSBlbHNlIGlmIChPYmplY3QuaGFzT3duKHZhbHVlLCBcInRvU3RyaW5nXCIpKSB7XG4gICAgICAgIHRoaXMuX3N0ciA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKE9iamVjdC5oYXNPd24odmFsdWUsIFN5bWJvbC50b1ByaW1pdGl2ZSkpIHtcbiAgICAgICAgdGhpcy5fc3RyID0gKHZhbHVlIGFzIGFueSlbU3ltYm9sLnRvUHJpbWl0aXZlXSEoXCJzdHJpbmdcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgU3VycmVhbFZhbHVlRXJyb3IoXCJPYmplY3QgY29udGFpbnMgZW5jb2RlIG1ldGhvZHNcIiwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgU3VycmVhbFR5cGVFcnJvcihbXCJTdHJpbmdcIiwgXCJPYmplY3RcIl0sIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdHI7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7QUFBQSxTQUFTLFVBQVUsWUFBWTtBQUMvQixTQUFTLGtCQUFrQix5QkFBeUI7QUFDcEQsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsVUFBVSxnQkFBZ0I7QUFTbkMsSUFBcUIsVUFBckIsTUFBcUIsZ0JBQWUsS0FBeUI7QUFBQSxFQUMzRCxPQUFPLElBQUksT0FBc0I7QUFDL0IsV0FBTyxJQUFJLElBQUks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