@developers-joyride/shortify
Version:
High performance URL shortener library with multi-database support (MongoDB, SQLite, PostgreSQL, MySQL)
19 lines (18 loc) • 781 B
TypeScript
import { EventEmitter } from "events";
import { IDatabaseAdapter, IUrl, PostgresConfig } from "../interfaces/database.interface";
export declare class PostgresAdapter extends EventEmitter implements IDatabaseAdapter {
private pool;
private config;
private tableName;
private isConnectedFlag;
constructor(config: PostgresConfig);
connect(): Promise<boolean>;
createTables(): Promise<void>;
disconnect(): Promise<void>;
isConnected(): boolean;
createUrl(url: Omit<IUrl, "createdAt">): Promise<IUrl>;
findUrlByUrlId(urlId: string): Promise<IUrl | null>;
findUrlByOriginalUrl(originalUrl: string): Promise<IUrl | null>;
updateUrlClicks(urlId: string, clicks: number): Promise<void>;
deleteUrl(urlId: string): Promise<boolean>;
}