@cardog/corgi
Version:
Fast, offline VIN decoding for Node.js, browsers, and Cloudflare Workers. Powered by the NHTSA VPIC database.
45 lines (41 loc) • 1.2 kB
TypeScript
import { D1Database } from '@cloudflare/workers-types';
/**
* Common interface for database operations across different environments
*/
interface DatabaseAdapter {
/**
* Execute a SQL query with parameters and return the results
*
* @param query - SQL query to execute
* @param params - Optional array of parameters to bind to the query
* @returns Array of query results
*/
exec(query: string, params?: any[]): Promise<QueryResult[]>;
/**
* Close the database connection
*/
close(): Promise<void>;
}
/**
* Result from a database query
*/
interface QueryResult {
/**
* Array of column names in the result set
*/
columns: string[];
/**
* Two-dimensional array of values:
* - First dimension: rows
* - Second dimension: column values for each row
*/
values: any[][];
}
declare class CloudflareD1Adapter implements DatabaseAdapter {
private db;
constructor(db: D1Database);
exec(query: string, params?: any[]): Promise<QueryResult[]>;
close(): Promise<void>;
}
declare function createD1Adapter(db: D1Database): DatabaseAdapter;
export { CloudflareD1Adapter, createD1Adapter };