UNPKG

@developers-joyride/shortify

Version:

High performance URL shortener library with multi-database support (MongoDB, SQLite, PostgreSQL, MySQL)

57 lines (56 loc) 1.82 kB
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;