import { Driver } from '../../driver/driver.js' ; import { Kysely } from '../../kysely.js' ; import { QueryCompiler } from '../../query-compiler/query-compiler.js' ; import { Dialect } from '../dialect.js' ; import { DatabaseIntrospector } from '../database-introspector.js' ; import { SqliteDriver } from './sqlite-driver.js' ; import { SqliteQueryCompiler } from './sqlite-query-compiler.js' ; import { SqliteIntrospector } from './sqlite-introspector.js' ; import { DialectAdapter } from '../dialect-adapter.js' ; import { SqliteAdapter } from './sqlite-adapter.js' ; import { SqliteDialectConfig } from './sqlite-dialect-config.js' ; import { freeze } from '../../util/object-utils.js' ; /**
 * SQLite dialect that uses the [better-sqlite3](https://github.com/JoshuaWise/better-sqlite3) library.
 *
 * The  SqliteDialectConfig is used to construct an instance of
 * [Database](https://github.com/JoshuaWise/better-sqlite3/blob/master/docs/api.md#new-databasepath-options)
 * class. The configuration values are passed directly to the `Database` constructor.
  export class SqliteDialect implements Dialect { readonly #config : SqliteDialectConfig ; constructor ( config ) { this . #config = freeze ( { ... config } ) ; } createDriver ( ) { return new SqliteDriver ( this . #config ) ; } createQueryCompiler ( ) { return new SqliteQueryCompiler ( ) ; } createAdapter ( ) { return new SqliteAdapter ( ) ; } createIntrospector ( db ) { return new SqliteIntrospector ( db ) ; } }