PDPA Features: ✅ Cookie consent banner ✅ Consent logging API ✅ Admin dashboard ✅ Privacy Policy ✅ Terms & Conditions Technical: ✅ Astro 5.x + Tailwind v4 ✅ Docker on port 80 ✅ SQLite database ✅ 15 pages built Ready for Easypanel deployment.
77 lines
2.2 KiB
JavaScript
77 lines
2.2 KiB
JavaScript
"use strict";
|
|
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");
|
|
}
|
|
}
|