Spaces:
Sleeping
Sleeping
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.Batch = exports.Stmt = void 0; | |
| const js_base64_1 = require("js-base64"); | |
| const util_js_1 = require("../util.js"); | |
| function Stmt(w, msg) { | |
| if (msg.sql !== undefined) { | |
| w.string("sql", msg.sql); | |
| } | |
| if (msg.sqlId !== undefined) { | |
| w.number("sql_id", msg.sqlId); | |
| } | |
| w.arrayObjects("args", msg.args, Value); | |
| w.arrayObjects("named_args", msg.namedArgs, NamedArg); | |
| w.boolean("want_rows", msg.wantRows); | |
| } | |
| exports.Stmt = Stmt; | |
| function NamedArg(w, msg) { | |
| w.string("name", msg.name); | |
| w.object("value", msg.value, Value); | |
| } | |
| function Batch(w, msg) { | |
| w.arrayObjects("steps", msg.steps, BatchStep); | |
| } | |
| exports.Batch = Batch; | |
| function BatchStep(w, msg) { | |
| if (msg.condition !== undefined) { | |
| w.object("condition", msg.condition, BatchCond); | |
| } | |
| w.object("stmt", msg.stmt, Stmt); | |
| } | |
| function BatchCond(w, msg) { | |
| w.stringRaw("type", msg.type); | |
| if (msg.type === "ok" || msg.type === "error") { | |
| w.number("step", msg.step); | |
| } | |
| else if (msg.type === "not") { | |
| w.object("cond", msg.cond, BatchCond); | |
| } | |
| else if (msg.type === "and" || msg.type === "or") { | |
| w.arrayObjects("conds", msg.conds, BatchCond); | |
| } | |
| else if (msg.type === "is_autocommit") { | |
| // do nothing | |
| } | |
| else { | |
| throw (0, util_js_1.impossible)(msg, "Impossible type of BatchCond"); | |
| } | |
| } | |
| function Value(w, msg) { | |
| if (msg === null) { | |
| w.stringRaw("type", "null"); | |
| } | |
| else if (typeof msg === "bigint") { | |
| w.stringRaw("type", "integer"); | |
| w.stringRaw("value", "" + msg); | |
| } | |
| else if (typeof msg === "number") { | |
| w.stringRaw("type", "float"); | |
| w.number("value", msg); | |
| } | |
| else if (typeof msg === "string") { | |
| w.stringRaw("type", "text"); | |
| w.string("value", msg); | |
| } | |
| else if (msg instanceof Uint8Array) { | |
| w.stringRaw("type", "blob"); | |
| w.stringRaw("base64", js_base64_1.Base64.fromUint8Array(msg)); | |
| } | |
| else if (msg === undefined) { | |
| // do nothing | |
| } | |
| else { | |
| throw (0, util_js_1.impossible)(msg, "Impossible type of Value"); | |
| } | |
| } | |