drizzle-edge-pg-proxy-client
Version:
PostgreSQL HTTP client compatible with Neon's interface for edge environments
60 lines (53 loc) • 1.27 kB
text/typescript
/**
* Common types used throughout the package
*/
/**
* Options for creating a PostgreSQL HTTP client
*/
export interface PgHttpClientOptions {
/**
* URL of the PostgreSQL HTTP proxy server
*/
proxyUrl: string;
/**
* Optional authentication token for the proxy server
*/
authToken?: string;
/**
* Optional fetch implementation (uses globalThis.fetch by default)
*/
fetch?: typeof globalThis.fetch;
}
/**
* Options for creating a Drizzle ORM client
*/
export interface DrizzleClientOptions<TSchema extends Record<string, unknown>> extends PgHttpClientOptions {
/**
* Drizzle schema definition
*/
schema: TSchema;
}
/**
* SQL query parameters
*/
export interface QueryParams {
text: string;
values: unknown[];
}
/**
* Result of a SQL template literal
*/
export interface SqlQueryResult {
query: string;
params: unknown[];
execute: () => Promise<any[]>;
}
/**
* PostgreSQL HTTP client interface
*/
export interface PgHttpClient {
execute: (query: string, params?: unknown[]) => Promise<any[]>;
sql: (strings: TemplateStringsArray, ...values: unknown[]) => SqlQueryResult;
transaction: (queries: QueryParams[]) => Promise<any[]>;
query: (query: string, params?: unknown[]) => Promise<any[]>;
}