{"ast":null,"code":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stmtToProto = exports.Stmt = void 0;\nconst sql_js_1 = require(\"./sql.js\");\nconst value_js_1 = require(\"./value.js\");\n/** A statement that can be evaluated by the database. Besides the SQL text, it also contains the positional\n * and named arguments. */\nclass Stmt {\n /** The SQL statement text. */\n sql;\n /** @private */\n _args;\n /** @private */\n _namedArgs;\n /** Initialize the statement with given SQL text. */\n constructor(sql) {\n this.sql = sql;\n this._args = [];\n this._namedArgs = new Map();\n }\n /** Binds positional parameters from the given `values`. All previous positional bindings are cleared. */\n bindIndexes(values) {\n this._args.length = 0;\n for (const value of values) {\n this._args.push((0, value_js_1.valueToProto)(value));\n }\n return this;\n }\n /** Binds a parameter by a 1-based index. */\n bindIndex(index, value) {\n if (index !== (index | 0) || index <= 0) {\n throw new RangeError(\"Index of a positional argument must be positive integer\");\n }\n while (this._args.length < index) {\n this._args.push(null);\n }\n this._args[index - 1] = (0, value_js_1.valueToProto)(value);\n return this;\n }\n /** Binds a parameter by name. */\n bindName(name, value) {\n this._namedArgs.set(name, (0, value_js_1.valueToProto)(value));\n return this;\n }\n /** Clears all bindings. */\n unbindAll() {\n this._args.length = 0;\n this._namedArgs.clear();\n return this;\n }\n}\nexports.Stmt = Stmt;\nfunction stmtToProto(sqlOwner, stmt, wantRows) {\n let inSql;\n let args = [];\n let namedArgs = [];\n if (stmt instanceof Stmt) {\n inSql = stmt.sql;\n args = stmt._args;\n for (const [name, value] of stmt._namedArgs.entries()) {\n namedArgs.push({\n name,\n value\n });\n }\n } else if (Array.isArray(stmt)) {\n inSql = stmt[0];\n if (Array.isArray(stmt[1])) {\n args = stmt[1].map(arg => (0, value_js_1.valueToProto)(arg));\n } else {\n namedArgs = Object.entries(stmt[1]).map(([name, value]) => {\n return {\n name,\n value: (0, value_js_1.valueToProto)(value)\n };\n });\n }\n } else {\n inSql = stmt;\n }\n const {\n sql,\n sqlId\n } = (0, sql_js_1.sqlToProto)(sqlOwner, inSql);\n return {\n sql,\n sqlId,\n args,\n namedArgs,\n wantRows\n };\n}\nexports.stmtToProto = stmtToProto;","map":{"version":3,"names":["Object","defineProperty","exports","value","stmtToProto","Stmt","sql_js_1","require","value_js_1","sql","_args","_namedArgs","constructor","Map","bindIndexes","values","length","push","valueToProto","bindIndex","index","RangeError","bindName","name","set","unbindAll","clear","sqlOwner","stmt","wantRows","inSql","args","namedArgs","entries","Array","isArray","map","arg","sqlId","sqlToProto"],"sources":["/Users/shoofle/Projects/the-forest/node_modules/@libsql/hrana-client/lib-cjs/stmt.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stmtToProto = exports.Stmt = void 0;\nconst sql_js_1 = require(\"./sql.js\");\nconst value_js_1 = require(\"./value.js\");\n/** A statement that can be evaluated by the database. Besides the SQL text, it also contains the positional\n * and named arguments. */\nclass Stmt {\n /** The SQL statement text. */\n sql;\n /** @private */\n _args;\n /** @private */\n _namedArgs;\n /** Initialize the statement with given SQL text. */\n constructor(sql) {\n this.sql = sql;\n this._args = [];\n this._namedArgs = new Map();\n }\n /** Binds positional parameters from the given `values`. All previous positional bindings are cleared. */\n bindIndexes(values) {\n this._args.length = 0;\n for (const value of values) {\n this._args.push((0, value_js_1.valueToProto)(value));\n }\n return this;\n }\n /** Binds a parameter by a 1-based index. */\n bindIndex(index, value) {\n if (index !== (index | 0) || index <= 0) {\n throw new RangeError(\"Index of a positional argument must be positive integer\");\n }\n while (this._args.length < index) {\n this._args.push(null);\n }\n this._args[index - 1] = (0, value_js_1.valueToProto)(value);\n return this;\n }\n /** Binds a parameter by name. */\n bindName(name, value) {\n this._namedArgs.set(name, (0, value_js_1.valueToProto)(value));\n return this;\n }\n /** Clears all bindings. */\n unbindAll() {\n this._args.length = 0;\n this._namedArgs.clear();\n return this;\n }\n}\nexports.Stmt = Stmt;\nfunction stmtToProto(sqlOwner, stmt, wantRows) {\n let inSql;\n let args = [];\n let namedArgs = [];\n if (stmt instanceof Stmt) {\n inSql = stmt.sql;\n args = stmt._args;\n for (const [name, value] of stmt._namedArgs.entries()) {\n namedArgs.push({ name, value });\n }\n }\n else if (Array.isArray(stmt)) {\n inSql = stmt[0];\n if (Array.isArray(stmt[1])) {\n args = stmt[1].map((arg) => (0, value_js_1.valueToProto)(arg));\n }\n else {\n namedArgs = Object.entries(stmt[1]).map(([name, value]) => {\n return { name, value: (0, value_js_1.valueToProto)(value) };\n });\n }\n }\n else {\n inSql = stmt;\n }\n const { sql, sqlId } = (0, sql_js_1.sqlToProto)(sqlOwner, inSql);\n return { sql, sqlId, args, namedArgs, wantRows };\n}\nexports.stmtToProto = stmtToProto;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}