@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
99 lines (97 loc) • 10.2 kB
JavaScript
"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/surreal/surql/slot.ts
var slot_exports = {};
__export(slot_exports, {
default: () => Slot
});
module.exports = __toCommonJS(slot_exports);
var passthrough = /* @__PURE__ */ __name((v) => v, "passthrough");
var _Slot = class _Slot {
constructor(name, isRequired, options = {}) {
this.name = name;
this.isRequired = isRequired;
this._parse = options.parse || passthrough;
if (options.formatter) {
this.fmt = options.formatter;
}
if ("defaultValue" in options) {
this.defaultValue = options.defaultValue;
}
}
toOptions() {
const options = {
parse: this._parse,
formatter: this.fmt
};
if ("defaultValue" in this) {
options.defaultValue = this.defaultValue;
}
return options;
}
/**
* @alias {@link type}
*/
as(parser = (v) => v) {
const This = this.constructor;
const options = { parse: parser };
if ("defaultValue" in this) {
options.defaultValue = this.defaultValue;
}
return new This(this.name, true, options);
}
/**
* @alias {@link as}
*/
type(parser = (v) => v) {
return this.as(parser);
}
rename(name) {
const This = this.constructor;
return new This(name, this.isRequired, this.toOptions());
}
default(defaultValue) {
const This = this.constructor;
return new This(this.name, false, {
parse: this._parse,
formatter: this.fmt,
defaultValue: this.fmt?.toEncoded?.(defaultValue) || defaultValue
// TODO(tai-kun): ここでパースする必要あるか検討 (高コストだけどコンストラクター内でやる?)
// defaultValue: this._parse(defaultValue),
});
}
optional() {
const This = this.constructor;
return new This(this.name, false, {
parse: this._parse,
formatter: this.fmt
});
}
required() {
const This = this.constructor;
return new This(this.name, true, {
parse: this._parse,
formatter: this.fmt
});
}
};
__name(_Slot, "Slot");
var Slot = _Slot;
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3N1cnJlYWwvc3VycWwvc2xvdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBFbmNvZGVkLCBGb3JtYXR0ZXIgfSBmcm9tIFwiQHRhaS1rdW4vc3VycmVhbGRiL2Zvcm1hdHRlclwiO1xuaW1wb3J0IHR5cGUgeyBTbG90TGlrZSB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgV3JpdGFibGUgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5cbmNvbnN0IHBhc3N0aHJvdWdoID0gKHY6IHVua25vd24pOiBhbnkgPT4gdjtcblxuZXhwb3J0IGludGVyZmFjZSBTbG90T3B0aW9uczxUVmFsdWUgPSBhbnk+IHtcbiAgcmVhZG9ubHkgcGFyc2U/OiAoKHZhbHVlOiB1bmtub3duKSA9PiBUVmFsdWUpIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBmb3JtYXR0ZXI/OiBGb3JtYXR0ZXIgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZT86IFRWYWx1ZSB8IEVuY29kZWQ8VFZhbHVlPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2xvdDxcbiAgVE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBhbnksXG4gIFRSZXF1aXJlZCBleHRlbmRzIGJvb2xlYW4gPSBhbnksXG4gIFRWYWx1ZSA9IGFueSxcbj4gaW1wbGVtZW50cyBTbG90TGlrZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBmbXQ/OiBGb3JtYXR0ZXI7XG5cbiAgcmVhZG9ubHkgX3BhcnNlOiAodmFsdWU6IHVua25vd24pID0+IFRWYWx1ZTtcbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogVFZhbHVlIHwgRW5jb2RlZDxUVmFsdWU+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IG5hbWU6IFROYW1lLFxuICAgIHJlYWRvbmx5IGlzUmVxdWlyZWQ6IFRSZXF1aXJlZCxcbiAgICBvcHRpb25zOiBTbG90T3B0aW9uczxUVmFsdWU+ID0ge30sXG4gICkge1xuICAgIHRoaXMuX3BhcnNlID0gb3B0aW9ucy5wYXJzZSB8fCBwYXNzdGhyb3VnaDtcblxuICAgIGlmIChvcHRpb25zLmZvcm1hdHRlcikge1xuICAgICAgdGhpcy5mbXQgPSBvcHRpb25zLmZvcm1hdHRlcjtcbiAgICB9XG5cbiAgICBpZiAoXCJkZWZhdWx0VmFsdWVcIiBpbiBvcHRpb25zKSB7XG4gICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b09wdGlvbnMoKTogU2xvdE9wdGlvbnM8VFZhbHVlPiB7XG4gICAgY29uc3Qgb3B0aW9uczogV3JpdGFibGU8U2xvdE9wdGlvbnM+ID0ge1xuICAgICAgcGFyc2U6IHRoaXMuX3BhcnNlLFxuICAgICAgZm9ybWF0dGVyOiB0aGlzLmZtdCxcbiAgICB9O1xuXG4gICAgaWYgKFwiZGVmYXVsdFZhbHVlXCIgaW4gdGhpcykge1xuICAgICAgb3B0aW9ucy5kZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBAYWxpYXMge0BsaW5rIHR5cGV9XG4gICAqL1xuICBhczxUQmluZCBleHRlbmRzIFRWYWx1ZT4oKTogU2xvdDxUTmFtZSwgdHJ1ZSwgVEJpbmQ+O1xuXG4gIC8qKlxuICAgKiBAYWxpYXMge0BsaW5rIHR5cGV9XG4gICAqL1xuICBhczxUQmluZCBleHRlbmRzIFRWYWx1ZT4oXG4gICAgcGFyc2VyOiAodmFsdWU6IHVua25vd24pID0+IFRCaW5kLFxuICApOiBTbG90PFROYW1lLCB0cnVlLCBUQmluZD47XG5cbiAgLyoqXG4gICAqIEBhbGlhcyB7QGxpbmsgdHlwZX1cbiAgICovXG4gIGFzKHBhcnNlcjogKHZhbHVlOiB1bmtub3duKSA9PiB1bmtub3duID0gdiA9PiB2KTogU2xvdDxUTmFtZSwgdHJ1ZT4ge1xuICAgIGNvbnN0IFRoaXMgPSB0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBTbG90O1xuICAgIGNvbnN0IG9wdGlvbnM6IFdyaXRhYmxlPFNsb3RPcHRpb25zPiA9IHsgcGFyc2U6IHBhcnNlciB9O1xuXG4gICAgaWYgKFwiZGVmYXVsdFZhbHVlXCIgaW4gdGhpcykge1xuICAgICAgb3B0aW9ucy5kZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICAgIC8vIFRPRE8odGFpLWt1bik6IFx1MzA1M1x1MzA1M1x1MzA2N1x1MzBEMVx1MzBGQ1x1MzBCOVx1MzA1OVx1MzA4Qlx1NUZDNVx1ODk4MVx1MzA0Mlx1MzA4Qlx1MzA0Qlx1NjkxQ1x1OEEwRSAoXHU5QUQ4XHUzMEIzXHUzMEI5XHUzMEM4XHUzMDYwXHUzMDUxXHUzMDY5XHUzMEIzXHUzMEYzXHUzMEI5XHUzMEM4XHUzMEU5XHUzMEFGXHUzMEJGXHUzMEZDXHU1MTg1XHUzMDY3XHUzMDg0XHUzMDhCXHVGRjFGKVxuICAgICAgLy8gb3B0aW9ucy5kZWZhdWx0VmFsdWUgPSBwYXJzZXIodGhpcy5kZWZhdWx0VmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVGhpcyh0aGlzLm5hbWUsIHRydWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBhbGlhcyB7QGxpbmsgYXN9XG4gICAqL1xuICB0eXBlPFRCaW5kIGV4dGVuZHMgVFZhbHVlPigpOiBTbG90PFROYW1lLCB0cnVlLCBUQmluZD47XG5cbiAgLyoqXG4gICAqIEBhbGlhcyB7QGxpbmsgYXN9XG4gICAqL1xuICB0eXBlPFRCaW5kIGV4dGVuZHMgVFZhbHVlPihcbiAgICBwYXJzZXI6ICh2YWx1ZTogdW5rbm93bikgPT4gVEJpbmQsXG4gICk6IFNsb3Q8VE5hbWUsIHRydWUsIFRCaW5kPjtcblxuICAvKipcbiAgICogQGFsaWFzIHtAbGluayBhc31cbiAgICovXG4gIHR5cGUocGFyc2VyOiAodmFsdWU6IHVua25vd24pID0+IGFueSA9IHYgPT4gdik6IFNsb3Q8VE5hbWUsIHRydWU+IHtcbiAgICByZXR1cm4gdGhpcy5hcyhwYXJzZXIpO1xuICB9XG5cbiAgcmVuYW1lPGNvbnN0IFROYW1lIGV4dGVuZHMgc3RyaW5nPihcbiAgICBuYW1lOiBUTmFtZSxcbiAgKTogU2xvdDxUTmFtZSwgVFJlcXVpcmVkLCBUVmFsdWU+IHtcbiAgICBjb25zdCBUaGlzID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgU2xvdDtcblxuICAgIHJldHVybiBuZXcgVGhpcyhuYW1lLCB0aGlzLmlzUmVxdWlyZWQsIHRoaXMudG9PcHRpb25zKCkpO1xuICB9XG5cbiAgZGVmYXVsdChkZWZhdWx0VmFsdWU6IFRWYWx1ZSk6IFNsb3Q8VE5hbWUsIGZhbHNlLCBUVmFsdWU+IHtcbiAgICBjb25zdCBUaGlzID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgU2xvdDtcblxuICAgIHJldHVybiBuZXcgVGhpcyh0aGlzLm5hbWUsIGZhbHNlLCB7XG4gICAgICBwYXJzZTogdGhpcy5fcGFyc2UsXG4gICAgICBmb3JtYXR0ZXI6IHRoaXMuZm10LFxuICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmZtdD8udG9FbmNvZGVkPy4oZGVmYXVsdFZhbHVlKSB8fCBkZWZhdWx0VmFsdWUsXG4gICAgICAvLyBUT0RPKHRhaS1rdW4pOiBcdTMwNTNcdTMwNTNcdTMwNjdcdTMwRDFcdTMwRkNcdTMwQjlcdTMwNTlcdTMwOEJcdTVGQzVcdTg5ODFcdTMwNDJcdTMwOEJcdTMwNEJcdTY5MUNcdThBMEUgKFx1OUFEOFx1MzBCM1x1MzBCOVx1MzBDOFx1MzA2MFx1MzA1MVx1MzA2OVx1MzBCM1x1MzBGM1x1MzBCOVx1MzBDOFx1MzBFOVx1MzBBRlx1MzBCRlx1MzBGQ1x1NTE4NVx1MzA2N1x1MzA4NFx1MzA4Qlx1RkYxRilcbiAgICAgIC8vIGRlZmF1bHRWYWx1ZTogdGhpcy5fcGFyc2UoZGVmYXVsdFZhbHVlKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wdGlvbmFsKCk6IFNsb3Q8VE5hbWUsIGZhbHNlLCBUVmFsdWU+IHtcbiAgICBjb25zdCBUaGlzID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgU2xvdDtcblxuICAgIHJldHVybiBuZXcgVGhpcyh0aGlzLm5hbWUsIGZhbHNlLCB7XG4gICAgICBwYXJzZTogdGhpcy5fcGFyc2UsXG4gICAgICBmb3JtYXR0ZXI6IHRoaXMuZm10LFxuICAgIH0pO1xuICB9XG5cbiAgcmVxdWlyZWQoKTogU2xvdDxUTmFtZSwgdHJ1ZSwgVFZhbHVlPiB7XG4gICAgY29uc3QgVGhpcyA9IHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFNsb3Q7XG5cbiAgICByZXR1cm4gbmV3IFRoaXModGhpcy5uYW1lLCB0cnVlLCB7XG4gICAgICBwYXJzZTogdGhpcy5fcGFyc2UsXG4gICAgICBmb3JtYXR0ZXI6IHRoaXMuZm10LFxuICAgIH0pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsSUFBTSxjQUFjLHdCQUFDLE1BQW9CLEdBQXJCO0FBUXBCLElBQXFCLFFBQXJCLE1BQXFCLE1BSUM7QUFBQSxFQU1wQixZQUNXLE1BQ0EsWUFDVCxVQUErQixDQUFDLEdBQ2hDO0FBSFM7QUFDQTtBQUdULFNBQUssU0FBUyxRQUFRLFNBQVM7QUFFL0IsUUFBSSxRQUFRLFdBQVc7QUFDckIsV0FBSyxNQUFNLFFBQVE7QUFBQSxJQUNyQjtBQUVBLFFBQUksa0JBQWtCLFNBQVM7QUFDN0IsV0FBSyxlQUFlLFFBQVE7QUFBQSxJQUM5QjtBQUFBLEVBQ0Y7QUFBQSxFQUVVLFlBQWlDO0FBQ3pDLFVBQU0sVUFBaUM7QUFBQSxNQUNyQyxPQUFPLEtBQUs7QUFBQSxNQUNaLFdBQVcsS0FBSztBQUFBLElBQ2xCO0FBRUEsUUFBSSxrQkFBa0IsTUFBTTtBQUMxQixjQUFRLGVBQWUsS0FBSztBQUFBLElBQzlCO0FBRUEsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWlCQSxHQUFHLFNBQXNDLE9BQUssR0FBc0I7QUFDbEUsVUFBTSxPQUFPLEtBQUs7QUFDbEIsVUFBTSxVQUFpQyxFQUFFLE9BQU8sT0FBTztBQUV2RCxRQUFJLGtCQUFrQixNQUFNO0FBQzFCLGNBQVEsZUFBZSxLQUFLO0FBQUEsSUFHOUI7QUFFQSxXQUFPLElBQUksS0FBSyxLQUFLLE1BQU0sTUFBTSxPQUFPO0FBQUEsRUFDMUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWlCQSxLQUFLLFNBQWtDLE9BQUssR0FBc0I7QUFDaEUsV0FBTyxLQUFLLEdBQUcsTUFBTTtBQUFBLEVBQ3ZCO0FBQUEsRUFFQSxPQUNFLE1BQ2dDO0FBQ2hDLFVBQU0sT0FBTyxLQUFLO0FBRWxCLFdBQU8sSUFBSSxLQUFLLE1BQU0sS0FBSyxZQUFZLEtBQUssVUFBVSxDQUFDO0FBQUEsRUFDekQ7QUFBQSxFQUVBLFFBQVEsY0FBa0Q7QUFDeEQsVUFBTSxPQUFPLEtBQUs7QUFFbEIsV0FBTyxJQUFJLEtBQUssS0FBSyxNQUFNLE9BQU87QUFBQSxNQUNoQyxPQUFPLEtBQUs7QUFBQSxNQUNaLFdBQVcsS0FBSztBQUFBLE1BQ2hCLGNBQWMsS0FBSyxLQUFLLFlBQVksWUFBWSxLQUFLO0FBQUE7QUFBQTtBQUFBLElBR3ZELENBQUM7QUFBQSxFQUNIO0FBQUEsRUFFQSxXQUF1QztBQUNyQyxVQUFNLE9BQU8sS0FBSztBQUVsQixXQUFPLElBQUksS0FBSyxLQUFLLE1BQU0sT0FBTztBQUFBLE1BQ2hDLE9BQU8sS0FBSztBQUFBLE1BQ1osV0FBVyxLQUFLO0FBQUEsSUFDbEIsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVBLFdBQXNDO0FBQ3BDLFVBQU0sT0FBTyxLQUFLO0FBRWxCLFdBQU8sSUFBSSxLQUFLLEtBQUssTUFBTSxNQUFNO0FBQUEsTUFDL0IsT0FBTyxLQUFLO0FBQUEsTUFDWixXQUFXLEtBQUs7QUFBQSxJQUNsQixDQUFDO0FBQUEsRUFDSDtBQUNGO0FBdkhzQjtBQUp0QixJQUFxQixPQUFyQjsiLAogICJuYW1lcyI6IFtdCn0K