UNPKG

kysely-bun-worker

Version:
61 lines (54 loc) 1.72 kB
'use strict'; var Database = require('bun:sqlite'); var kyselyGenericSqlite = require('kysely-generic-sqlite'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var Database__default = /*#__PURE__*/_interopDefault(Database); // src/normal.ts function createSqliteExecutor(db, cache) { const fn = cache ? "query" : "prepare"; const getStmt = (sql, parameters) => db[fn](sql, parameters); return { db, query: (_, sql, parameters) => { const stmt = getStmt(sql, parameters); if (stmt.columnNames.length > 0) { return { rows: stmt.all() }; } else { const { changes, lastInsertRowid } = stmt.run(); return { numAffectedRows: kyselyGenericSqlite.parseBigInt(changes), insertId: kyselyGenericSqlite.parseBigInt(lastInsertRowid), rows: [] }; } }, close: () => db.close(), iterator: (_, sql, parameters) => iterateData(getStmt(sql), parameters) }; } async function* iterateData(stmt, parameters) { if (!("iterate" in stmt)) { throw new Error("Streaming not supported, please upgrade to Bun@1.1.31 or later"); } for (const row of stmt.iterate(...parameters || [])) { yield row; } } // src/normal.ts var BunSqliteDialect = class extends kyselyGenericSqlite.GenericSqliteDialect { constructor(config) { const { url = ":memory:", cacheStatment = false, onCreateConnection, dbOptions = { create: true } } = config || {}; super( () => createSqliteExecutor(new Database__default.default(url, dbOptions), cacheStatment), onCreateConnection ); } }; exports.BunSqliteDialect = BunSqliteDialect;