@developers-joyride/shortify
Version:
High performance URL shortener library with multi-database support (MongoDB, SQLite, PostgreSQL, MySQL)
28 lines (27 loc) • 949 B
TypeScript
import { EventEmitter } from "events";
import { IDatabaseAdapter, IUrl } from "../interfaces/database.interface";
interface MongoConfig {
mongoUri: string;
maxRetries?: number;
retryDelay?: number;
collectionName?: string;
}
export declare class MongoAdapter extends EventEmitter implements IDatabaseAdapter {
private mongoUri;
private maxRetries;
private retryDelay;
private collectionName;
private retryCount;
private _isConnected;
constructor(config: MongoConfig);
connect(): Promise<boolean>;
private retryConnection;
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>;
}
export {};