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 { SingleStoreDatabase } from "../singlestore-core/db.js";8import { SingleStoreDialect } from "../singlestore-core/dialect.js";9import {10 SingleStoreRemoteSession11} from "./session.js";12class SingleStoreRemoteDatabase extends SingleStoreDatabase {13 static [entityKind] = "SingleStoreRemoteDatabase";14}15function drizzle(callback, config = {}) {16 const dialect = new SingleStoreDialect({ casing: config.casing });17 let logger;18 if (config.logger === true) {19 logger = new DefaultLogger();20 } else if (config.logger !== false) {21 logger = config.logger;22 }23 let schema;24 if (config.schema) {25 const tablesConfig = extractTablesRelationalConfig(26 config.schema,27 createTableRelationsHelpers28 );29 schema = {30 fullSchema: config.schema,31 schema: tablesConfig.tables,32 tableNamesMap: tablesConfig.tableNamesMap33 };34 }35 const session = new SingleStoreRemoteSession(callback, dialect, schema, { logger });36 return new SingleStoreRemoteDatabase(dialect, session, schema);37}38export {39 SingleStoreRemoteDatabase,40 drizzle41};42//# sourceMappingURL=driver.js.map