@@ -26,10 +26,11 @@ import {createLibSqlPersister} from 'tinybase/persisters/persister-libsql';
2626import { createPglitePersister } from 'tinybase/persisters/persister-pglite' ;
2727import { createPostgresPersister } from 'tinybase/persisters/persister-postgres' ;
2828import { createPowerSyncPersister } from 'tinybase/persisters/persister-powersync' ;
29+ import { createSqliteBunPersister } from 'tinybase/persisters/persister-sqlite-bun' ;
2930import { createSqliteWasmPersister } from 'tinybase/persisters/persister-sqlite-wasm' ;
3031import { createSqlite3Persister } from 'tinybase/persisters/persister-sqlite3' ;
3132import tmp from 'tmp' ;
32- import { pause , suppressWarnings } from '../../common/other.ts' ;
33+ import { isBun , pause , suppressWarnings } from '../../common/other.ts' ;
3334
3435tmp . setGracefulCleanup ( ) ;
3536const statementMutex = new Mutex ( ) ;
@@ -423,6 +424,40 @@ export const NODE_POSTGRESQL_VARIANTS: Variants = {
423424 ] ,
424425} ;
425426
427+ export const BUN_MERGEABLE_VARIANTS : Variants = {
428+ sqlite3 : [
429+ async ( ) => {
430+ const { Database} = await import ( 'bun:sqlite' ) ;
431+ return new Database ( ':memory:' ) ;
432+ } ,
433+ [ 'getDb' , ( db : typeof Database ) => db ] ,
434+ (
435+ store : Store ,
436+ db : typeof Database ,
437+ storeTableOrConfig ?: string | DatabasePersisterConfig ,
438+ onSqlCommand ?: ( sql : string , args ?: any [ ] ) => void ,
439+ onIgnoredError ?: ( error : any ) => void ,
440+ ) =>
441+ ( createSqliteBunPersister as any ) (
442+ store ,
443+ db ,
444+ storeTableOrConfig ,
445+ onSqlCommand ,
446+ onIgnoredError ,
447+ ) ,
448+ async (
449+ db : any ,
450+ sql : string ,
451+ args : any [ ] = [ ] ,
452+ ) : Promise < { [ id : string ] : any } [ ] > => db . query ( sql ) . all ( args ) ,
453+ async ( db : any ) => db . close ( ) ,
454+ 20 ,
455+ undefined ,
456+ undefined ,
457+ true ,
458+ ] ,
459+ } ;
460+
426461export const NODE_SQLITE_VARIANTS : Variants = {
427462 ...NODE_SQLITE_MERGEABLE_VARIANTS ,
428463 ...NODE_SQLITE_NON_MERGEABLE_VARIANTS ,
@@ -438,21 +473,15 @@ export const ALL_NODE_VARIANTS: Variants = {
438473 ...NODE_POSTGRESQL_VARIANTS ,
439474} ;
440475
441- export const BUN_MERGEABLE_VARIANTS : Variants = {
442- //sqlite3: NODE_SQLITE_MERGEABLE_VARIANTS.sqlite3,
443- } ;
444-
445476export const ALL_BUN_VARIANTS : Variants = {
446477 ...BUN_MERGEABLE_VARIANTS ,
447478} ;
448479
449- export const MERGEABLE_VARIANTS = process . versions . bun
480+ export const MERGEABLE_VARIANTS = isBun
450481 ? BUN_MERGEABLE_VARIANTS
451482 : NODE_MERGEABLE_VARIANTS ;
452483
453- export const ALL_VARIANTS = process . versions . bun
454- ? ALL_BUN_VARIANTS
455- : ALL_NODE_VARIANTS ;
484+ export const ALL_VARIANTS = isBun ? ALL_BUN_VARIANTS : ALL_NODE_VARIANTS ;
456485
457486export const ADHOC_VARIANT : Variants = {
458487 adhoc : NODE_SQLITE_NON_MERGEABLE_VARIANTS . powerSync ,
0 commit comments