← Files RivetARCHIVED FILE

node_modules/drizzle-orm/node-sqlite/session.cjs

2.94 KB · Nov 5, 2026 · 12:09 UTC

↓ Download file

Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
let __entity_ts = require("../entity.cjs");
let __sql_sql_ts = require("../sql/sql.cjs");
let __errors_ts = require("../errors.cjs");
let __logger_ts = require("../logger.cjs");
let __sqlite_core_async_session_ts = require("../sqlite-core/async/session.cjs");

//#region src/node-sqlite/session.ts
var NodeSQLiteSession = class extends __sqlite_core_async_session_ts.SQLiteAsyncSession {
	static [__entity_ts.entityKind] = "SQLJsSession";
	logger;
	constructor(client, dialect, relations, options = {}) {
		super(dialect, "sync");
		this.client = client;
		this.relations = relations;
		this.options = options;
		this.logger = options.logger ?? new __logger_ts.NoopLogger();
	}
	prepareQuery(query, mode, _prepare, executeMethod, mapper, queryMetadata) {
		let stmt;
		try {
			stmt = this.client.prepare(query.sql);
		} catch (e) {
			throw new __errors_ts.DrizzleQueryError(query.sql, query.params, e);
		}
		return new __sqlite_core_async_session_ts.SQLiteAsyncPreparedQuery("sync", executeMethod, {
			all: (params) => {
				stmt.setReturnArrays(mode === "arrays");
				const res = stmt.all(...params);
				if (mode === "objects") return res.map((row) => ({ ...row }));
				return res;
			},
			get: (params) => {
				stmt.setReturnArrays(mode === "arrays");
				const res = stmt.get(...params);
				if (res && mode === "objects") return { ...res };
				return res;
			},
			run: (params) => {
				stmt.setReturnArrays(false);
				return stmt.run(...params);
			},
			values: (params) => {
				stmt.setReturnArrays(true);
				return stmt.all(...params);
			}
		}, query, mapper, mode, this.logger, void 0, queryMetadata, void 0);
	}
	transaction(transaction, config = {}) {
		const tx = new NodeSQLiteTransaction("sync", this.dialect, this, this.relations);
		this.run(__sql_sql_ts.sql.raw(`begin${config.behavior ? ` ${config.behavior}` : ""}`));
		try {
			const result = transaction(tx);
			this.run(__sql_sql_ts.sql`commit`);
			return result;
		} catch (err) {
			this.run(__sql_sql_ts.sql`rollback`);
			throw err;
		}
	}
};
var NodeSQLiteTransaction = class NodeSQLiteTransaction extends __sqlite_core_async_session_ts.SQLiteAsyncTransaction {
	static [__entity_ts.entityKind] = "SQLJsTransaction";
	transaction(transaction) {
		const savepointName = `sp${this.nestedIndex + 1}`;
		const tx = new NodeSQLiteTransaction("sync", this.dialect, this.session, this._.relations, this.nestedIndex + 1);
		tx.run(__sql_sql_ts.sql.raw(`savepoint ${savepointName}`));
		try {
			const result = transaction(tx);
			tx.run(__sql_sql_ts.sql.raw(`release savepoint ${savepointName}`));
			return result;
		} catch (err) {
			tx.run(__sql_sql_ts.sql.raw(`rollback to savepoint ${savepointName}`));
			throw err;
		}
	}
};

//#endregion
exports.NodeSQLiteSession = NodeSQLiteSession;
exports.NodeSQLiteTransaction = NodeSQLiteTransaction;
//# sourceMappingURL=session.cjs.map

SHA-256: 852e017f5a1f6867161972cb51e6d2e8d07e966714d3c7944ae67d79ef0c4e3b