session.d.ts 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import type { SQLPluginResult, SQLQueryResult } from '@xata.io/client';
  2. import type { Cache } from "../cache/core/index.js";
  3. import type { WithCacheConfig } from "../cache/core/types.js";
  4. import { entityKind } from "../entity.js";
  5. import type { Logger } from "../logger.js";
  6. import type { PgDialect } from "../pg-core/dialect.js";
  7. import { PgTransaction } from "../pg-core/index.js";
  8. import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.js";
  9. import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.js";
  10. import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
  11. import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
  12. import { type Query } from "../sql/sql.js";
  13. export type XataHttpClient = {
  14. sql: SQLPluginResult;
  15. };
  16. export interface QueryResults<ArrayMode extends 'json' | 'array'> {
  17. rowCount: number;
  18. rows: ArrayMode extends 'array' ? any[][] : Record<string, any>[];
  19. rowAsArray: ArrayMode extends 'array' ? true : false;
  20. }
  21. export declare class XataHttpPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
  22. private client;
  23. private logger;
  24. private fields;
  25. private _isResponseInArrayMode;
  26. private customResultMapper?;
  27. static readonly [entityKind]: string;
  28. constructor(client: XataHttpClient, query: Query, logger: Logger, cache: Cache, queryMetadata: {
  29. type: 'select' | 'update' | 'delete' | 'insert';
  30. tables: string[];
  31. } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
  32. execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
  33. all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
  34. values(placeholderValues?: Record<string, unknown> | undefined): Promise<T['values']>;
  35. }
  36. export interface XataHttpSessionOptions {
  37. logger?: Logger;
  38. cache?: Cache;
  39. }
  40. export declare class XataHttpSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<XataHttpQueryResultHKT, TFullSchema, TSchema> {
  41. private client;
  42. private schema;
  43. private options;
  44. static readonly [entityKind]: string;
  45. private logger;
  46. private cache;
  47. constructor(client: XataHttpClient, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: XataHttpSessionOptions);
  48. prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
  49. type: 'select' | 'update' | 'delete' | 'insert';
  50. tables: string[];
  51. }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
  52. query(query: string, params: unknown[]): Promise<QueryResults<'array'>>;
  53. queryObjects(query: string, params: unknown[]): Promise<QueryResults<'json'>>;
  54. transaction<T>(_transaction: (tx: XataTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: PgTransactionConfig): Promise<T>;
  55. }
  56. export declare class XataTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<XataHttpQueryResultHKT, TFullSchema, TSchema> {
  57. static readonly [entityKind]: string;
  58. transaction<T>(_transaction: (tx: XataTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
  59. }
  60. export interface XataHttpQueryResultHKT extends PgQueryResultHKT {
  61. type: SQLQueryResult<this['row']>;
  62. }