/// The MIT License (MIT) /// Copyright (c) 2023 Alex Gleason /// Copyright (c) 2022 Sami Koskimäki /// https://gitlab.com/soapbox-pub/kysely-deno-sqlite import { type DatabaseIntrospector, type Dialect, type DialectAdapter, type Driver, Kysely, type QueryCompiler, SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler, } from 'kysely'; import { DenoSqliteDriver } from './kysely-sqlite-driver.ts'; import type { DenoSqliteDialectConfig } from './deno-sqlite-dialect-config.ts'; class DenoSqliteDialect implements Dialect { readonly #config: DenoSqliteDialectConfig; constructor(config: DenoSqliteDialectConfig) { this.#config = Object.freeze({ ...config }); } createDriver(): Driver { return new DenoSqliteDriver(this.#config); } createQueryCompiler(): QueryCompiler { return new SqliteQueryCompiler(); } createAdapter(): DialectAdapter { return new SqliteAdapter(); } // deno-lint-ignore no-explicit-any createIntrospector(db: Kysely): DatabaseIntrospector { return new SqliteIntrospector(db); } } export { DenoSqliteDialect };