@nanggo/social-preview
Version:
Generate beautiful social media preview images from any URL
49 lines (48 loc) • 1.88 kB
TypeScript
/**
* Metadata Extractor Module
* Extracts Open Graph and Twitter Card metadata from URLs
*/
import { ExtractedMetadata, SecurityOptions } from '../types';
/**
* Get statistics about in-flight requests for monitoring/debugging
* @returns Object containing in-flight request statistics
*/
export declare function getInflightRequestStats(): {
count: number;
keys: string[];
maxLimit: number;
utilizationPercent: number;
};
/**
* Clear all in-flight requests (useful for testing or cleanup)
* WARNING: This will cause pending requests to potentially duplicate work
*/
export declare function clearInflightRequests(): void;
/**
* Test helper to access internal inflightRequests map
* WARNING: Only for testing purposes
*/
export declare const __test_inflightRequests: Map<string, Promise<ExtractedMetadata>> | undefined;
/**
* Extract metadata from a given URL
* @param url - The URL to extract metadata from
* @param securityOptions - Security configuration options
* @returns Extracted metadata object
*/
export declare function extractMetadata(url: string, securityOptions?: SecurityOptions): Promise<ExtractedMetadata>;
/**
* Fetch image from URL and return as buffer with size and type validation
* @param imageUrl - URL of the image to fetch
* @param securityOptions - Security configuration options
* @param abortSignal - Optional abort signal for request cancellation
* @returns Image buffer
*/
export declare function fetchImage(imageUrl: string, securityOptions?: SecurityOptions, abortSignal?: AbortSignal): Promise<Buffer>;
/**
* Validate metadata to ensure required fields are present
*/
export declare function validateMetadata(metadata: ExtractedMetadata): boolean;
/**
* Apply fallback values to incomplete metadata
*/
export declare function applyFallbacks(metadata: Partial<ExtractedMetadata>, url: string): ExtractedMetadata;