@pujansrt/data-genie
Version:
High performant ETL engine written in TypeScript
22 lines (21 loc) • 786 B
TypeScript
export interface DataRecord {
[key: string]: any;
}
export interface DataReader {
read(): AsyncIterableIterator<DataRecord>;
}
export interface DataWriter {
write(record: DataRecord): Promise<void>;
writeAll(records: AsyncIterableIterator<DataRecord>): Promise<void>;
close(): Promise<void>;
}
export interface SqlConnection {
/**
* Executes a SQL query with parameters.
* The actual implementation will handle parameter binding to prevent SQL injection.
* @param sql The SQL query string (e.g., "INSERT INTO users (name, age) VALUES ($1, $2)").
* @param params An array of parameters to be bound to the query.
* @returns A Promise that resolves when the query is executed.
*/
query(sql: string, params: any[]): Promise<any>;
}