@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
103 lines (101 loc) • 9.44 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/formatters/json/formatter.ts
var formatter_exports = {};
__export(formatter_exports, {
default: () => JsonFormatter
});
module.exports = __toCommonJS(formatter_exports);
var import_errors = require("../../errors/index.cjs");
var import_formatter = require("../../formatter/index.cjs");
var import_utils = require("../../utils/index.cjs");
var __PROTO__REGEX = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/;
var CONSTRUCTOR_REGEX = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;
var _JsonFormatter = class _JsonFormatter {
constructor() {
this.contentType = "application/json";
this.wsProtocols = ["json"];
}
encodeSync(data) {
return JSON.stringify(data);
}
decodeSync(data) {
const json = toString(data);
if (__PROTO__REGEX.test(json)) {
throw new import_errors.JsonUnsafeMapKeyError("__proto__");
}
if (CONSTRUCTOR_REGEX.test(json)) {
throw new import_errors.JsonUnsafeMapKeyError("constructor");
}
return JSON.parse(json);
}
cloneSync(data) {
switch (typeof data) {
case "string":
case "number":
case "boolean":
return data;
default:
switch (data) {
case null:
case void 0:
return data;
default:
return (0, import_formatter.cloneSync)(this, data);
}
}
}
toEncoded(data) {
if (data instanceof import_formatter.EncodedJSON) {
return data;
}
return new import_formatter.EncodedJSON(
{
data: this.cloneSync(data)
},
/* @__PURE__ */ __name(function toJSON() {
return this.data;
}, "toJSON")
// TODO(tai-kun): JSON フォーマッターの事前エンコーディングを実装する。
// function toRawJSON() {
// return (this.json ??= JSON.stringify(this.data));
// },
);
}
};
__name(_JsonFormatter, "JsonFormatter");
var JsonFormatter = _JsonFormatter;
function toString(data) {
switch (true) {
case typeof data === "string":
return data;
case (data instanceof Uint8Array || (0, import_utils.isArrayBuffer)(data)):
return import_utils.utf8.decode(data);
case (typeof Buffer !== "undefined" && Array.isArray(data) && data.every((b) => Buffer.isBuffer(b))):
return import_utils.utf8.decode(Buffer.concat(data));
default:
throw new import_errors.SurrealTypeError(
["String", "Buffer", "ArrayBuffer", "Uint8Array", "Buffer[]"],
data
);
}
}
__name(toString, "toString");
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Zvcm1hdHRlcnMvanNvbi9mb3JtYXR0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7XG4gIEpzb25VbnNhZmVNYXBLZXlFcnJvcixcbiAgU3VycmVhbFR5cGVFcnJvcixcbn0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi9lcnJvcnNcIjtcbmltcG9ydCB7XG4gIGNsb25lU3luYyxcbiAgdHlwZSBEYXRhLFxuICBFbmNvZGVkSlNPTixcbiAgdHlwZSBGb3JtYXR0ZXIsXG59IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZm9ybWF0dGVyXCI7XG5pbXBvcnQgeyBpc0FycmF5QnVmZmVyLCB1dGY4IH0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi91dGlsc1wiO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFzdGlmeS9zZWN1cmUtanNvbi1wYXJzZVxuY29uc3QgX19QUk9UT19fUkVHRVggPVxuICAvXCIoPzpffFxcXFx1MDA1W0ZmXSkoPzpffFxcXFx1MDA1W0ZmXSkoPzpwfFxcXFx1MDA3MCkoPzpyfFxcXFx1MDA3MikoPzpvfFxcXFx1MDA2W0ZmXSkoPzp0fFxcXFx1MDA3NCkoPzpvfFxcXFx1MDA2W0ZmXSkoPzpffFxcXFx1MDA1W0ZmXSkoPzpffFxcXFx1MDA1W0ZmXSlcIlxccyo6LztcbmNvbnN0IENPTlNUUlVDVE9SX1JFR0VYID1cbiAgL1wiKD86Y3xcXFxcdTAwNjMpKD86b3xcXFxcdTAwNltGZl0pKD86bnxcXFxcdTAwNltFZV0pKD86c3xcXFxcdTAwNzMpKD86dHxcXFxcdTAwNzQpKD86cnxcXFxcdTAwNzIpKD86dXxcXFxcdTAwNzUpKD86Y3xcXFxcdTAwNjMpKD86dHxcXFxcdTAwNzQpKD86b3xcXFxcdTAwNltGZl0pKD86cnxcXFxcdTAwNzIpXCJcXHMqOi87XG5cbi8vIFRPRE8odGFpLWt1bik6IGlzU2FmZU1hcEtleSwgaXNTYWZlT2JqZWN0S2V5IFx1MzA5Mlx1MzBBQVx1MzBEN1x1MzBCN1x1MzBFN1x1MzBGM1x1MzA2Qlx1OEZGRFx1NTJBMFxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSnNvbkZvcm1hdHRlciBpbXBsZW1lbnRzIEZvcm1hdHRlciB7XG4gIGNvbnRlbnRUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gIHdzUHJvdG9jb2xzID0gW1wianNvblwiXTtcblxuICBlbmNvZGVTeW5jKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfVxuXG4gIGRlY29kZVN5bmMoZGF0YTogRGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IGpzb24gPSB0b1N0cmluZyhkYXRhKTtcblxuICAgIGlmIChfX1BST1RPX19SRUdFWC50ZXN0KGpzb24pKSB7XG4gICAgICB0aHJvdyBuZXcgSnNvblVuc2FmZU1hcEtleUVycm9yKFwiX19wcm90b19fXCIpO1xuICAgIH1cblxuICAgIGlmIChDT05TVFJVQ1RPUl9SRUdFWC50ZXN0KGpzb24pKSB7XG4gICAgICB0aHJvdyBuZXcgSnNvblVuc2FmZU1hcEtleUVycm9yKFwiY29uc3RydWN0b3JcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvbik7XG4gIH1cblxuICBjbG9uZVN5bmM8VD4oZGF0YTogVCk6IFQge1xuICAgIHN3aXRjaCAodHlwZW9mIGRhdGEpIHtcbiAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgIHJldHVybiBkYXRhO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBzd2l0Y2ggKGRhdGEpIHtcbiAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gY2xvbmVTeW5jKHRoaXMsIGRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9FbmNvZGVkPFREYXRhPihkYXRhOiBURGF0YSk6IEVuY29kZWRKU09OPFREYXRhPiB7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBFbmNvZGVkSlNPTikge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBFbmNvZGVkSlNPTihcbiAgICAgIHtcbiAgICAgICAgZGF0YTogdGhpcy5jbG9uZVN5bmMoZGF0YSksXG4gICAgICB9LFxuICAgICAgZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgICAgfSxcbiAgICAgIC8vIFRPRE8odGFpLWt1bik6IEpTT04gXHUzMEQ1XHUzMEE5XHUzMEZDXHUzMERFXHUzMEMzXHUzMEJGXHUzMEZDXHUzMDZFXHU0RThCXHU1MjREXHUzMEE4XHUzMEYzXHUzMEIzXHUzMEZDXHUzMEM3XHUzMEEzXHUzMEYzXHUzMEIwXHUzMDkyXHU1QjlGXHU4OEM1XHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyBmdW5jdGlvbiB0b1Jhd0pTT04oKSB7XG4gICAgICAvLyAgIHJldHVybiAodGhpcy5qc29uID8/PSBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKTtcbiAgICAgIC8vIH0sXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b1N0cmluZyhkYXRhOiBEYXRhKTogc3RyaW5nIHtcbiAgc3dpdGNoICh0cnVlKSB7XG4gICAgY2FzZSB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiBkYXRhO1xuXG4gICAgY2FzZSBkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSB8fCBpc0FycmF5QnVmZmVyKGRhdGEpOlxuICAgICAgcmV0dXJuIHV0ZjguZGVjb2RlKGRhdGEpO1xuXG4gICAgY2FzZSB0eXBlb2YgQnVmZmVyICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAmJiBBcnJheS5pc0FycmF5KGRhdGEpXG4gICAgICAmJiBkYXRhLmV2ZXJ5KGIgPT4gQnVmZmVyLmlzQnVmZmVyKGIpKTpcbiAgICAgIHJldHVybiB1dGY4LmRlY29kZShCdWZmZXIuY29uY2F0KGRhdGEpKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgU3VycmVhbFR5cGVFcnJvcihcbiAgICAgICAgW1wiU3RyaW5nXCIsIFwiQnVmZmVyXCIsIFwiQXJyYXlCdWZmZXJcIiwgXCJVaW50OEFycmF5XCIsIFwiQnVmZmVyW11cIl0sXG4gICAgICAgIGRhdGEsXG4gICAgICApO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsb0JBR087QUFDUCx1QkFLTztBQUNQLG1CQUFvQztBQUdwQyxJQUFNLGlCQUNKO0FBQ0YsSUFBTSxvQkFDSjtBQUdGLElBQXFCLGlCQUFyQixNQUFxQixlQUFtQztBQUFBLEVBQXhEO0FBQ0UsdUJBQWM7QUFDZCx1QkFBYyxDQUFDLE1BQU07QUFBQTtBQUFBLEVBRXJCLFdBQVcsTUFBdUI7QUFDaEMsV0FBTyxLQUFLLFVBQVUsSUFBSTtBQUFBLEVBQzVCO0FBQUEsRUFFQSxXQUFXLE1BQXFCO0FBQzlCLFVBQU0sT0FBTyxTQUFTLElBQUk7QUFFMUIsUUFBSSxlQUFlLEtBQUssSUFBSSxHQUFHO0FBQzdCLFlBQU0sSUFBSSxvQ0FBc0IsV0FBVztBQUFBLElBQzdDO0FBRUEsUUFBSSxrQkFBa0IsS0FBSyxJQUFJLEdBQUc7QUFDaEMsWUFBTSxJQUFJLG9DQUFzQixhQUFhO0FBQUEsSUFDL0M7QUFFQSxXQUFPLEtBQUssTUFBTSxJQUFJO0FBQUEsRUFDeEI7QUFBQSxFQUVBLFVBQWEsTUFBWTtBQUN2QixZQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ25CLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFDSCxlQUFPO0FBQUEsTUFFVDtBQUNFLGdCQUFRLE1BQU07QUFBQSxVQUNaLEtBQUs7QUFBQSxVQUNMLEtBQUs7QUFDSCxtQkFBTztBQUFBLFVBRVQ7QUFDRSx1QkFBTyw0QkFBVSxNQUFNLElBQUk7QUFBQSxRQUMvQjtBQUFBLElBQ0o7QUFBQSxFQUNGO0FBQUEsRUFFQSxVQUFpQixNQUFpQztBQUNoRCxRQUFJLGdCQUFnQiw4QkFBYTtBQUMvQixhQUFPO0FBQUEsSUFDVDtBQUVBLFdBQU8sSUFBSTtBQUFBLE1BQ1Q7QUFBQSxRQUNFLE1BQU0sS0FBSyxVQUFVLElBQUk7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsZ0NBQVMsU0FBUztBQUNoQixlQUFPLEtBQUs7QUFBQSxNQUNkLEdBRkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBT0Y7QUFBQSxFQUNGO0FBQ0Y7QUEzRHdEO0FBQXhELElBQXFCLGdCQUFyQjtBQTZEQSxTQUFTLFNBQVMsTUFBb0I7QUFDcEMsVUFBUSxNQUFNO0FBQUEsSUFDWixLQUFLLE9BQU8sU0FBUztBQUNuQixhQUFPO0FBQUEsSUFFVCxNQUFLLGdCQUFnQixrQkFBYyw0QkFBYyxJQUFJO0FBQ25ELGFBQU8sa0JBQUssT0FBTyxJQUFJO0FBQUEsSUFFekIsTUFBSyxPQUFPLFdBQVcsZUFDbEIsTUFBTSxRQUFRLElBQUksS0FDbEIsS0FBSyxNQUFNLE9BQUssT0FBTyxTQUFTLENBQUMsQ0FBQztBQUNyQyxhQUFPLGtCQUFLLE9BQU8sT0FBTyxPQUFPLElBQUksQ0FBQztBQUFBLElBRXhDO0FBQ0UsWUFBTSxJQUFJO0FBQUEsUUFDUixDQUFDLFVBQVUsVUFBVSxlQUFlLGNBQWMsVUFBVTtBQUFBLFFBQzVEO0FBQUEsTUFDRjtBQUFBLEVBQ0o7QUFDRjtBQW5CUzsiLAogICJuYW1lcyI6IFtdCn0K