driver.d.cts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { type Client, type ConnectOptions } from 'gel';
  2. import type { Cache } from "../cache/core/index.cjs";
  3. import { entityKind } from "../entity.cjs";
  4. import { GelDatabase } from "../gel-core/db.cjs";
  5. import { GelDialect } from "../gel-core/dialect.cjs";
  6. import type { GelQueryResultHKT } from "../gel-core/session.cjs";
  7. import type { Logger } from "../logger.cjs";
  8. import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.cjs";
  9. import { type DrizzleConfig } from "../utils.cjs";
  10. import type { GelClient } from "./session.cjs";
  11. import { GelDbSession } from "./session.cjs";
  12. export interface GelDriverOptions {
  13. logger?: Logger;
  14. cache?: Cache;
  15. }
  16. export declare class GelDriver {
  17. private client;
  18. private dialect;
  19. private options;
  20. static readonly [entityKind]: string;
  21. constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions);
  22. createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): GelDbSession<Record<string, unknown>, TablesRelationalConfig>;
  23. }
  24. export declare class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends GelDatabase<GelQueryResultHKT, TSchema> {
  25. static readonly [entityKind]: string;
  26. }
  27. export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema>] | [
  28. DrizzleConfig<TSchema> & ({
  29. connection: string | ConnectOptions;
  30. } | {
  31. client: TClient;
  32. })
  33. ]): GelJsDatabase<TSchema> & {
  34. $client: GelClient extends TClient ? Client : TClient;
  35. };
  36. export declare namespace drizzle {
  37. function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): GelJsDatabase<TSchema> & {
  38. $client: '$client is not available on drizzle.mock()';
  39. };
  40. }