@developers-joyride/shortify
Version:
High performance URL shortener library with multi-database support (MongoDB, SQLite, PostgreSQL, MySQL)
57 lines (56 loc) • 1.82 kB
TypeScript
import { ShortifyOptions, ShortifyResult } from "./services/shortener.service";
import { IUrl, DatabaseConfig } from "./interfaces/database.interface";
export declare class Shortify {
private shortenerService;
private dbAdapter;
private isConnected;
/**
* Create a new Shortify instance
* @param baseUrl - Base URL for shortened links
* @param dbConfig - Database configuration
*/
constructor(baseUrl: string, dbConfig: DatabaseConfig);
/**
* Create a new Shortify instance with MongoDB (backward compatibility)
* @param baseUrl - Base URL for shortened links
* @param mongoUri - MongoDB connection URI
* @param options - Additional options for MongoDB connection
*/
static createWithMongo(baseUrl: string, mongoUri: string, options?: {
maxRetries?: number;
retryDelay?: number;
collectionName?: string;
}): Shortify;
/**
* Connect to database
*/
connect(): Promise<boolean>;
/**
* Disconnect from database
*/
disconnect(): Promise<void>;
/**
* Check connection status
*/
isReady(): boolean;
/**
* Shorten a URL
*/
shorten(url: string, options?: Partial<ShortifyOptions>): Promise<ShortifyResult>;
/**
* Resolve a short URL ID to its original URL
*/
resolve(urlId: string): Promise<string | null>;
/**
* Get statistics for a shortened URL
*/
getStats(urlId: string): Promise<Partial<IUrl> | null>;
/**
* Delete a shortened URL
*/
delete(urlId: string): Promise<boolean>;
}
export { ShortifyOptions, ShortifyResult, IUrl };
export { DatabaseConfig, IDatabaseAdapter, } from "./interfaces/database.interface";
export { DatabaseFactory } from "./factories/database.factory";
export default Shortify;