UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

109 lines (107 loc) 10.4 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; 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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/surreal/surql/create-surql.ts var create_surql_exports = {}; __export(create_surql_exports, { default: () => createSurql }); module.exports = __toCommonJS(create_surql_exports); var import_errors = require("../../errors/index.cjs"); var import_prepared_query = __toESM(require("./prepared-query.cjs"), 1); var import_raw = __toESM(require("./raw.cjs"), 1); var import_slot = __toESM(require("./slot.cjs"), 1); function createSurql(config) { const { formatter, varPrefix = "_jst_" // JavaScript, Tagged Template Literals } = config; function 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 = ""; const vars = {}; const slots = []; for (let i = 0, j, v, len = texts.length, named = []; 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 import_slot.default) { text += "$" + v.name; if (j === i && named.indexOf(v.name) < 0) { if (v.name.startsWith(varPrefix)) { throw new import_errors.SurrealValueError( `a variable name that do not start with "${varPrefix}"`, v.name ); } slots.push(v); named.push(v.name); } } else if (v instanceof import_raw.default) { text += v.toString(); } else { text += "$" + varPrefix + j; if (!(varPrefix + j in vars)) { vars[varPrefix + j] = formatter.toEncoded?.(v) || v; } } } return new import_prepared_query.default(text, vars, slots, { encodedText: formatter.toEncoded?.(text) }); } __name(surql, "surql"); function raw(value) { return new import_raw.default(value); } __name(raw, "raw"); function slot(...args) { return args.length === 1 ? new import_slot.default(args[0], true, { formatter }) : new import_slot.default(args[0], false, { formatter, defaultValue: formatter.toEncoded?.(args[1]) || args[1] }); } __name(slot, "slot"); return Object.assign(surql, { raw, slot }); } __name(createSurql, "createSurql"); //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3N1cnJlYWwvc3VycWwvY3JlYXRlLXN1cnFsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBTdXJyZWFsVmFsdWVFcnJvciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZXJyb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEZvcm1hdHRlciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZm9ybWF0dGVyXCI7XG5pbXBvcnQgUHJlcGFyZWRRdWVyeSBmcm9tIFwiLi9wcmVwYXJlZC1xdWVyeVwiO1xuaW1wb3J0IFJhdywgeyB0eXBlIFJhd1ZhbHVlIH0gZnJvbSBcIi4vcmF3XCI7XG5pbXBvcnQgU2xvdCBmcm9tIFwiLi9zbG90XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VycWwge1xuICA8VFZhbHVlcyBleHRlbmRzIHVua25vd25bXSA9IHVua25vd25bXT4oXG4gICAgdGV4dHM6IHJlYWRvbmx5IHN0cmluZ1tdIHwgVGVtcGxhdGVTdHJpbmdzQXJyYXksXG4gICAgLi4udmFsdWVzOiBUVmFsdWVzXG4gICk6IFByZXBhcmVkUXVlcnk8RXh0cmFjdDxUVmFsdWVzW251bWJlcl0sIFNsb3Q+PjtcbiAgcmF3OiB7XG4gICAgKHZhbHVlOiBSYXdWYWx1ZSk6IFJhdztcbiAgfTtcbiAgc2xvdDoge1xuICAgIDxjb25zdCBUTmFtZSBleHRlbmRzIHN0cmluZywgVFZhbHVlID0gdW5rbm93bj4oXG4gICAgICBuYW1lOiBUTmFtZSxcbiAgICApOiBTbG90PFROYW1lLCB0cnVlLCBUVmFsdWUgfCB1bmRlZmluZWQ+O1xuICAgIDxjb25zdCBUTmFtZSBleHRlbmRzIHN0cmluZywgVFZhbHVlPihcbiAgICAgIG5hbWU6IFROYW1lLFxuICAgICAgZGVmYXVsdFZhbHVlOiBUVmFsdWUsXG4gICAgKTogU2xvdDxUTmFtZSwgZmFsc2UsIFRWYWx1ZT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU3VycWxDb25maWcge1xuICByZWFkb25seSBmb3JtYXR0ZXI6IEZvcm1hdHRlcjtcbiAgcmVhZG9ubHkgdmFyUHJlZml4Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTdXJxbChjb25maWc6IENyZWF0ZVN1cnFsQ29uZmlnKTogU3VycWwge1xuICBjb25zdCB7XG4gICAgZm9ybWF0dGVyLFxuICAgIHZhclByZWZpeCA9IFwiX2pzdF9cIiwgLy8gSmF2YVNjcmlwdCwgVGFnZ2VkIFRlbXBsYXRlIExpdGVyYWxzXG4gIH0gPSBjb25maWc7XG5cbiAgZnVuY3Rpb24gc3VycWwodGV4dHM6IHJlYWRvbmx5IHN0cmluZ1tdLCAuLi52YWx1ZXM6IHVua25vd25bXSkge1xuICAgIGlmICh0ZXh0cy5sZW5ndGggLSB2YWx1ZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgU3VycmVhbFZhbHVlRXJyb3IoXG4gICAgICAgIFwidGVtcGxhdGUgc3RyaW5nXCIsXG4gICAgICAgIGB0ZXh0cy5sZW5ndGg9JHt0ZXh0cy5sZW5ndGh9IGFuZCB2YWx1ZXMubGVuZ3RoPSR7dmFsdWVzLmxlbmd0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgdGV4dCA9IFwiXCI7XG4gICAgY29uc3QgdmFyczogeyBbcDogc3RyaW5nXTogdW5rbm93biB9ID0ge307XG4gICAgY29uc3Qgc2xvdHM6IFNsb3RbXSA9IFtdO1xuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gMCxcbiAgICAgICAgajogbnVtYmVyLFxuICAgICAgICB2LFxuICAgICAgICBsZW4gPSB0ZXh0cy5sZW5ndGgsXG4gICAgICAgIG5hbWVkOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgaSA8IGxlbjtcbiAgICAgIGkrK1xuICAgICkge1xuICAgICAgdGV4dCArPSB0ZXh0c1tpXTtcblxuICAgICAgaWYgKGkgKyAxID09PSBsZW4pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGZvciAoaiA9IDA7IGogPCBpOyBqKyspIHtcbiAgICAgICAgaWYgKE9iamVjdC5pcyh2YWx1ZXNbal0sIHZhbHVlc1tpXSkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2ID0gdmFsdWVzW2pdO1xuXG4gICAgICBpZiAodiBpbnN0YW5jZW9mIFNsb3QpIHtcbiAgICAgICAgdGV4dCArPSBcIiRcIiArIHYubmFtZTtcblxuICAgICAgICBpZiAoaiA9PT0gaSAmJiBuYW1lZC5pbmRleE9mKHYubmFtZSkgPCAwKSB7XG4gICAgICAgICAgaWYgKCh2Lm5hbWUgYXMgc3RyaW5nKS5zdGFydHNXaXRoKHZhclByZWZpeCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTdXJyZWFsVmFsdWVFcnJvcihcbiAgICAgICAgICAgICAgYGEgdmFyaWFibGUgbmFtZSB0aGF0IGRvIG5vdCBzdGFydCB3aXRoIFwiJHt2YXJQcmVmaXh9XCJgLFxuICAgICAgICAgICAgICB2Lm5hbWUsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNsb3RzLnB1c2godik7XG4gICAgICAgICAgbmFtZWQucHVzaCh2Lm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBSYXcpIHtcbiAgICAgICAgdGV4dCArPSB2LnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ZXh0ICs9IFwiJFwiICsgdmFyUHJlZml4ICsgajtcblxuICAgICAgICBpZiAoISgodmFyUHJlZml4ICsgaikgaW4gdmFycykpIHtcbiAgICAgICAgICB2YXJzW3ZhclByZWZpeCArIGpdID0gZm9ybWF0dGVyLnRvRW5jb2RlZD8uKHYpIHx8IHY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByZXBhcmVkUXVlcnkodGV4dCwgdmFycywgc2xvdHMsIHtcbiAgICAgIGVuY29kZWRUZXh0OiBmb3JtYXR0ZXIudG9FbmNvZGVkPy4odGV4dCksXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiByYXcodmFsdWU6IFJhd1ZhbHVlKTogUmF3IHtcbiAgICByZXR1cm4gbmV3IFJhdyh2YWx1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBzbG90KC4uLmFyZ3M6IFtuYW1lOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHVua25vd25dKTogU2xvdCB7XG4gICAgcmV0dXJuIGFyZ3MubGVuZ3RoID09PSAxXG4gICAgICA/IG5ldyBTbG90KGFyZ3NbMF0sIHRydWUsIHsgZm9ybWF0dGVyIH0pXG4gICAgICA6IG5ldyBTbG90KGFyZ3NbMF0sIGZhbHNlLCB7XG4gICAgICAgIGZvcm1hdHRlcixcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBmb3JtYXR0ZXIudG9FbmNvZGVkPy4oYXJnc1sxXSkgfHwgYXJnc1sxXSxcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdXJxbCwgeyByYXcsIHNsb3QgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG9CQUFrQztBQUVsQyw0QkFBMEI7QUFDMUIsaUJBQW1DO0FBQ25DLGtCQUFpQjtBQTBCRixTQUFSLFlBQTZCLFFBQWtDO0FBQ3BFLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQSxZQUFZO0FBQUE7QUFBQSxFQUNkLElBQUk7QUFFSixXQUFTLE1BQU0sVUFBNkIsUUFBbUI7QUFDN0QsUUFBSSxNQUFNLFNBQVMsT0FBTyxXQUFXLEdBQUc7QUFDdEMsWUFBTSxJQUFJO0FBQUEsUUFDUjtBQUFBLFFBQ0EsZ0JBQWdCLE1BQU0sTUFBTSxzQkFBc0IsT0FBTyxNQUFNO0FBQUEsTUFDakU7QUFBQSxJQUNGO0FBRUEsUUFBSSxPQUFPO0FBQ1gsVUFBTSxPQUFpQyxDQUFDO0FBQ3hDLFVBQU0sUUFBZ0IsQ0FBQztBQUV2QixhQUNNLElBQUksR0FDTixHQUNBLEdBQ0EsTUFBTSxNQUFNLFFBQ1osUUFBa0IsQ0FBQyxHQUNyQixJQUFJLEtBQ0osS0FDQTtBQUNBLGNBQVEsTUFBTSxDQUFDO0FBRWYsVUFBSSxJQUFJLE1BQU0sS0FBSztBQUNqQjtBQUFBLE1BQ0Y7QUFFQSxXQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSztBQUN0QixZQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHO0FBQ25DO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxVQUFJLE9BQU8sQ0FBQztBQUVaLFVBQUksYUFBYSxZQUFBQSxTQUFNO0FBQ3JCLGdCQUFRLE1BQU0sRUFBRTtBQUVoQixZQUFJLE1BQU0sS0FBSyxNQUFNLFFBQVEsRUFBRSxJQUFJLElBQUksR0FBRztBQUN4QyxjQUFLLEVBQUUsS0FBZ0IsV0FBVyxTQUFTLEdBQUc7QUFDNUMsa0JBQU0sSUFBSTtBQUFBLGNBQ1IsMkNBQTJDLFNBQVM7QUFBQSxjQUNwRCxFQUFFO0FBQUEsWUFDSjtBQUFBLFVBQ0Y7QUFFQSxnQkFBTSxLQUFLLENBQUM7QUFDWixnQkFBTSxLQUFLLEVBQUUsSUFBSTtBQUFBLFFBQ25CO0FBQUEsTUFDRixXQUFXLGFBQWEsV0FBQUMsU0FBSztBQUMzQixnQkFBUSxFQUFFLFNBQVM7QUFBQSxNQUNyQixPQUFPO0FBQ0wsZ0JBQVEsTUFBTSxZQUFZO0FBRTFCLFlBQUksRUFBRyxZQUFZLEtBQU0sT0FBTztBQUM5QixlQUFLLFlBQVksQ0FBQyxJQUFJLFVBQVUsWUFBWSxDQUFDLEtBQUs7QUFBQSxRQUNwRDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsV0FBTyxJQUFJLHNCQUFBQyxRQUFjLE1BQU0sTUFBTSxPQUFPO0FBQUEsTUFDMUMsYUFBYSxVQUFVLFlBQVksSUFBSTtBQUFBLElBQ3pDLENBQUM7QUFBQSxFQUNIO0FBL0RTO0FBaUVULFdBQVMsSUFBSSxPQUFzQjtBQUNqQyxXQUFPLElBQUksV0FBQUQsUUFBSSxLQUFLO0FBQUEsRUFDdEI7QUFGUztBQUlULFdBQVMsUUFBUSxNQUFvRDtBQUNuRSxXQUFPLEtBQUssV0FBVyxJQUNuQixJQUFJLFlBQUFELFFBQUssS0FBSyxDQUFDLEdBQUcsTUFBTSxFQUFFLFVBQVUsQ0FBQyxJQUNyQyxJQUFJLFlBQUFBLFFBQUssS0FBSyxDQUFDLEdBQUcsT0FBTztBQUFBLE1BQ3pCO0FBQUEsTUFDQSxjQUFjLFVBQVUsWUFBWSxLQUFLLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQztBQUFBLElBQ3hELENBQUM7QUFBQSxFQUNMO0FBUFM7QUFVVCxTQUFPLE9BQU8sT0FBTyxPQUFPLEVBQUUsS0FBSyxLQUFLLENBQUM7QUFDM0M7QUF0RndCOyIsCiAgIm5hbWVzIjogWyJTbG90IiwgIlJhdyIsICJQcmVwYXJlZFF1ZXJ5Il0KfQo=