driver.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { DefaultLogger } from "../logger.js";
  2. import {
  3. createTableRelationsHelpers,
  4. extractTablesRelationalConfig
  5. } from "../relations.js";
  6. import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
  7. import { SQLiteSyncDialect } from "../sqlite-core/dialect.js";
  8. import { SQLJsSession } from "./session.js";
  9. function drizzle(client, config = {}) {
  10. const dialect = new SQLiteSyncDialect({ casing: config.casing });
  11. let logger;
  12. if (config.logger === true) {
  13. logger = new DefaultLogger();
  14. } else if (config.logger !== false) {
  15. logger = config.logger;
  16. }
  17. let schema;
  18. if (config.schema) {
  19. const tablesConfig = extractTablesRelationalConfig(
  20. config.schema,
  21. createTableRelationsHelpers
  22. );
  23. schema = {
  24. fullSchema: config.schema,
  25. schema: tablesConfig.tables,
  26. tableNamesMap: tablesConfig.tableNamesMap
  27. };
  28. }
  29. const session = new SQLJsSession(client, dialect, schema, { logger });
  30. return new BaseSQLiteDatabase("sync", dialect, session, schema);
  31. }
  32. export {
  33. drizzle
  34. };
  35. //# sourceMappingURL=driver.js.map