sqlocal
Version:
SQLocal makes it easy to run SQLite3 in the browser, backed by the origin private file system.
29 lines (26 loc) • 936 B
text/typescript
import { SQLocal } from '../index.js';
import type { RawResultData, Sqlite3Method } from '../types.js';
export class SQLocalDrizzle extends SQLocal {
driver = async (
sql: string,
params: unknown[],
method: Sqlite3Method
): Promise<RawResultData> => {
if (
/^begin\b/i.test(sql) &&
typeof globalThis.sessionStorage !== 'undefined' &&
!sessionStorage._sqlocal_sent_drizzle_transaction_warning
) {
console.warn(
"Drizzle's transaction method cannot isolate transactions from outside queries. It is recommended to use the transaction method of SQLocalDrizzle instead (See https://sqlocal.dev/api/transaction#drizzle)."
);
sessionStorage._sqlocal_sent_drizzle_transaction_warning = '1';
}
return this.exec(sql, params, method);
};
batchDriver = async (
queries: { sql: string; params: unknown[]; method: Sqlite3Method }[]
): Promise<RawResultData[]> => {
return this.execBatch(queries);
};
}