AK-21/Graphite-Industrial-Intelligence
0
1import { entityKind } from "../entity.js";2import { DefaultLogger } from "../logger.js";3import {4 createTableRelationsHelpers,5 extractTablesRelationalConfig6} from "../relations.js";7import { BaseSQLiteDatabase } from "../sqlite-core/db.js";8import { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";9import { OPSQLiteSession } from "./session.js";10class OPSQLiteDatabase extends BaseSQLiteDatabase {11 static [entityKind] = "OPSQLiteDatabase";12}13function drizzle(client, config = {}) {14 const dialect = new SQLiteAsyncDialect({ casing: config.casing });15 let logger;16 if (config.logger === true) {17 logger = new DefaultLogger();18 } else if (config.logger !== false) {19 logger = config.logger;20 }21 let schema;22 if (config.schema) {23 const tablesConfig = extractTablesRelationalConfig(24 config.schema,25 createTableRelationsHelpers26 );27 schema = {28 fullSchema: config.schema,29 schema: tablesConfig.tables,30 tableNamesMap: tablesConfig.tableNamesMap31 };32 }33 const session = new OPSQLiteSession(client, dialect, schema, { logger, cache: config.cache });34 const db = new OPSQLiteDatabase("async", dialect, session, schema);35 db.$client = client;36 db.$cache = config.cache;37 if (db.$cache) {38 db.$cache["invalidate"] = config.cache?.onMutate;39 }40 return db;41}42export {43 OPSQLiteDatabase,44 drizzle45};46//# sourceMappingURL=driver.js.map