session.d.cts 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import type { PGlite, Results, Row, Transaction } from '@electric-sql/pglite';
  2. import { entityKind } from "../entity.cjs";
  3. import { type Logger } from "../logger.cjs";
  4. import type { PgDialect } from "../pg-core/dialect.cjs";
  5. import { PgTransaction } from "../pg-core/index.cjs";
  6. import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.cjs";
  7. import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.cjs";
  8. import { PgPreparedQuery, PgSession } from "../pg-core/session.cjs";
  9. import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
  10. import { type Query, type SQL } from "../sql/sql.cjs";
  11. import { type Assume } from "../utils.cjs";
  12. import { type Cache } from "../cache/core/cache.cjs";
  13. import type { WithCacheConfig } from "../cache/core/types.cjs";
  14. export type PgliteClient = PGlite;
  15. export declare class PglitePreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
  16. private client;
  17. private queryString;
  18. private params;
  19. private logger;
  20. private fields;
  21. private _isResponseInArrayMode;
  22. private customResultMapper?;
  23. static readonly [entityKind]: string;
  24. private rawQueryConfig;
  25. private queryConfig;
  26. constructor(client: PgliteClient | Transaction, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
  27. type: 'select' | 'update' | 'delete' | 'insert';
  28. tables: string[];
  29. } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
  30. execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
  31. all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
  32. }
  33. export interface PgliteSessionOptions {
  34. logger?: Logger;
  35. cache?: Cache;
  36. }
  37. export declare class PgliteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<PgliteQueryResultHKT, TFullSchema, TSchema> {
  38. private client;
  39. private schema;
  40. private options;
  41. static readonly [entityKind]: string;
  42. private logger;
  43. private cache;
  44. constructor(client: PgliteClient | Transaction, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgliteSessionOptions);
  45. prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
  46. type: 'select' | 'update' | 'delete' | 'insert';
  47. tables: string[];
  48. }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
  49. transaction<T>(transaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
  50. count(sql: SQL): Promise<number>;
  51. }
  52. export declare class PgliteTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<PgliteQueryResultHKT, TFullSchema, TSchema> {
  53. static readonly [entityKind]: string;
  54. transaction<T>(transaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
  55. }
  56. export interface PgliteQueryResultHKT extends PgQueryResultHKT {
  57. type: Results<Assume<this['row'], Row>>;
  58. }