CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
driver.js77 linesDownload Raw Back to bun-sql
1import { SQL } from "bun";2import { entityKind } from "../entity.js";3import { DefaultLogger } from "../logger.js";4import { PgDatabase } from "../pg-core/db.js";5import { PgDialect } from "../pg-core/dialect.js";6import {7  createTableRelationsHelpers,8  extractTablesRelationalConfig9} from "../relations.js";10import { isConfig } from "../utils.js";11import { BunSQLSession } from "./session.js";12class BunSQLDatabase extends PgDatabase {13  static [entityKind] = "BunSQLDatabase";14}15function construct(client, config = {}) {16  const dialect = new PgDialect({ 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 BunSQLSession(client, dialect, schema, { logger, cache: config.cache });36  const db = new BunSQLDatabase(dialect, session, schema);37  db.$client = client;38  db.$cache = config.cache;39  if (db.$cache) {40    db.$cache["invalidate"] = config.cache?.onMutate;41  }42  return db;43}44function drizzle(...params) {45  if (typeof params[0] === "string") {46    const instance = new SQL(params[0]);47    return construct(instance, params[1]);48  }49  if (isConfig(params[0])) {50    const { connection, client, ...drizzleConfig } = params[0];51    if (client) return construct(client, drizzleConfig);52    if (typeof connection === "object" && connection.url !== void 0) {53      const { url, ...config } = connection;54      const instance2 = new SQL({ url, ...config });55      return construct(instance2, drizzleConfig);56    }57    const instance = new SQL(connection);58    return construct(instance, drizzleConfig);59  }60  return construct(params[0], params[1]);61}62((drizzle2) => {63  function mock(config) {64    return construct({65      options: {66        parsers: {},67        serializers: {}68      }69    }, config);70  }71  drizzle2.mock = mock;72})(drizzle || (drizzle = {}));73export {74  BunSQLDatabase,75  drizzle76};77//# sourceMappingURL=driver.js.map